<?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>204936</bug_id>
          
          <creation_ts>2019-12-05 23:00:23 -0800</creation_ts>
          <short_desc>Smooth-scroll animations should run in the UI process on iOS</short_desc>
          <delta_ts>2021-10-11 10:53:12 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=231271</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>204882</dependson>
          <blocked>188043</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="cathiechen">cathiechen</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>annulen</cc>
    
    <cc>berto</cc>
    
    <cc>bugzilla</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jamesr</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>rik</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tommyw</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1596170</commentid>
    <comment_count>0</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-05 23:00:23 -0800</bug_when>
    <thetext>This is the second implement part of scroll behavior in bug 188043.
This patch contains the implement of scroll behavior that relies on native scroll interfaces on iOS platform.
On other platforms, the behavior isn&apos;t changed. I.g. The smooth scroll will be performed by an instant scroll instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596176</commentid>
    <comment_count>1</comment_count>
      <attachid>384994</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-06 00:33:58 -0800</bug_when>
    <thetext>Created attachment 384994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596801</commentid>
    <comment_count>2</comment_count>
      <attachid>385146</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-09 06:02:46 -0800</bug_when>
    <thetext>Created attachment 385146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596840</commentid>
    <comment_count>3</comment_count>
      <attachid>385155</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-09 08:51:55 -0800</bug_when>
    <thetext>Created attachment 385155
UI-scroll-animation-for-review

This patch only contains change for UI scroll.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597540</commentid>
    <comment_count>4</comment_count>
      <attachid>385361</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-11 00:45:55 -0800</bug_when>
    <thetext>Created attachment 385361
native-animation-for-ews(including parsing + non_native_animation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597541</commentid>
    <comment_count>5</comment_count>
      <attachid>385362</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-11 00:46:38 -0800</bug_when>
    <thetext>Created attachment 385362
native-animation-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597546</commentid>
    <comment_count>6</comment_count>
      <attachid>385362</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-12-11 01:45:33 -0800</bug_when>
    <thetext>Comment on attachment 385362
native-animation-for-review

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

&gt; LayoutTests/ChangeLog:12
&gt; +        copy scroll-behavior test to fast/scrolling/ios/

why not move them into fast/scrolling/ios/cssom-view?

&gt; LayoutTests/ChangeLog:14
&gt; +        * fast/scrolling/ios/resources/scroll-behavior.js: Added.

I think this is copied from  LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/support/scroll-behavior.js ; any reason why you decided to move it to the shared ios/resources/ ?

&gt; Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:255
&gt; +    // The scroll position of animated scrolling will be set from the the UI process. So it shouldn&apos;t be set now.

the the =&gt; by the?

&gt; Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:-266
&gt; -

unneeded whitespace change

&gt; Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp:226
&gt; +    }

This is a bit weird, why not

#if PLATFORM(IOS_FAMILY)
    if (requestScrollWithAnimation())
       return;
#endif

?

&gt; Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:215
&gt; +#endif

Do we really need to add IOS conditionals for this and other APIs?

I think we can add the instantScrollDidStopAnimation parameter on all platforms with a default value and ignore it on non-iOS ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597566</commentid>
    <comment_count>7</comment_count>
      <attachid>385362</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-11 03:33:37 -0800</bug_when>
    <thetext>Comment on attachment 385362
native-animation-for-review

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

Hi Fred,
Thanks for the review:)

&gt;&gt; Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:255
&gt;&gt; +    // The scroll position of animated scrolling will be set from the the UI process. So it shouldn&apos;t be set now.
&gt; 
&gt; the the =&gt; by the?

Done

&gt;&gt; Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:-266
&gt;&gt; -
&gt; 
&gt; unneeded whitespace change

done

&gt;&gt; Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp:226
&gt;&gt; +    }
&gt; 
&gt; This is a bit weird, why not
&gt; 
&gt; #if PLATFORM(IOS_FAMILY)
&gt;     if (requestScrollWithAnimation())
&gt;        return;
&gt; #endif
&gt; 
&gt; ?

Done

&gt;&gt; Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:215
&gt;&gt; +#endif
&gt; 
&gt; Do we really need to add IOS conditionals for this and other APIs?
&gt; 
&gt; I think we can add the instantScrollDidStopAnimation parameter on all platforms with a default value and ignore it on non-iOS ones.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597567</commentid>
    <comment_count>8</comment_count>
      <attachid>385374</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-11 03:35:07 -0800</bug_when>
    <thetext>Created attachment 385374
native-animation-for-ews(including parsing + non_native_animation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597568</commentid>
    <comment_count>9</comment_count>
      <attachid>385375</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-11 03:35:25 -0800</bug_when>
    <thetext>Created attachment 385375
native-animation-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597612</commentid>
    <comment_count>10</comment_count>
      <attachid>385388</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-11 07:24:45 -0800</bug_when>
    <thetext>Created attachment 385388
native-animation-for-ews(including parsing + non_native_animation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597613</commentid>
    <comment_count>11</comment_count>
      <attachid>385389</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-11 07:25:06 -0800</bug_when>
    <thetext>Created attachment 385389
native-animation-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597644</commentid>
    <comment_count>12</comment_count>
      <attachid>385399</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-11 09:06:23 -0800</bug_when>
    <thetext>Created attachment 385399
native-animation-for-ews(including parsing + non_native_animation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597645</commentid>
    <comment_count>13</comment_count>
      <attachid>385400</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-11 09:06:42 -0800</bug_when>
    <thetext>Created attachment 385400
native-animation-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597652</commentid>
    <comment_count>14</comment_count>
      <attachid>385402</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-11 09:25:36 -0800</bug_when>
    <thetext>Created attachment 385402
native-animation-for-ews(including parsing + non_native_animation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597653</commentid>
    <comment_count>15</comment_count>
      <attachid>385403</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-11 09:25:57 -0800</bug_when>
    <thetext>Created attachment 385403
native-animation-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598286</commentid>
    <comment_count>16</comment_count>
      <attachid>385403</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-12-13 01:23:59 -0800</bug_when>
    <thetext>Comment on attachment 385403
native-animation-for-review

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

&gt; LayoutTests/ChangeLog:12
&gt; +        copy scroll-behavior test to fast/scrolling/ios/

I guess this is only needed because AsyncOverflowScrollingEnabled is not fully supported on non-iOS platforms? Maybe explain this?

&gt; Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:277
&gt; +#endif

Maybe you can do only one call stateNode-&gt;setRequestedScrollPosition (see below).

bool animated = false
#if PLATFORM(IOS_FAMILY)
...
#endif
stateNode-&gt;setRequestedScrollPosition(scrollPosition, inProgrammaticScroll, animated);

&gt; Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp:240
&gt; +#endif

I think this #if #else can be merged in one function definition using the UNUSED_PARAM(requestedWithAnimation) on non-iOS platform?

&gt; Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h:119
&gt; +#endif

setRequestedScrollPosition can be have a single declaration outside the #if ; maybe you can remove the default value for requestedWithAnimation you end up always being explicit.

&gt; Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp:168
&gt; +#endif

You don&apos;t need PLATFORM(IOS_FAMILY) here, just use UNUSED_PARAM(needSyncScrollPosition) on non-iOS platforms.

&gt; Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:273
&gt; +#endif

Again, you can probably do only one node.setRequestedScrollPosition call ouside the #if

&gt; Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:231
&gt; +#endif

Ditto?

&gt; Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:111
&gt; +#endif

Can probably merge this in one m_scrollingCoordinatorProxy.scrollingTreeNodeDidScroll call and do the #if to calculate the last parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598292</commentid>
    <comment_count>17</comment_count>
      <attachid>385403</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-13 02:15:31 -0800</bug_when>
    <thetext>Comment on attachment 385403
native-animation-for-review

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

Hi Fred,
Thanks for the review:)

&gt;&gt; LayoutTests/ChangeLog:12
&gt;&gt; +        copy scroll-behavior test to fast/scrolling/ios/
&gt; 
&gt; I guess this is only needed because AsyncOverflowScrollingEnabled is not fully supported on non-iOS platforms? Maybe explain this?

done

&gt;&gt; Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp:240
&gt;&gt; +#endif
&gt; 
&gt; I think this #if #else can be merged in one function definition using the UNUSED_PARAM(requestedWithAnimation) on non-iOS platform?

Done, thanks:)

&gt;&gt; Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h:119
&gt;&gt; +#endif
&gt; 
&gt; setRequestedScrollPosition can be have a single declaration outside the #if ; maybe you can remove the default value for requestedWithAnimation you end up always being explicit.

Done

&gt;&gt; Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp:168
&gt;&gt; +#endif
&gt; 
&gt; You don&apos;t need PLATFORM(IOS_FAMILY) here, just use UNUSED_PARAM(needSyncScrollPosition) on non-iOS platforms.

Done

&gt;&gt; Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:273
&gt;&gt; +#endif
&gt; 
&gt; Again, you can probably do only one node.setRequestedScrollPosition call ouside the #if

Done

&gt;&gt; Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:231
&gt;&gt; +#endif
&gt; 
&gt; Ditto?

done

&gt;&gt; Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:111
&gt;&gt; +#endif
&gt; 
&gt; Can probably merge this in one m_scrollingCoordinatorProxy.scrollingTreeNodeDidScroll call and do the #if to calculate the last parameter.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598305</commentid>
    <comment_count>18</comment_count>
      <attachid>385591</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-13 04:32:57 -0800</bug_when>
    <thetext>Created attachment 385591
native-animation-for-ews(including parsing + non_native_animation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598306</commentid>
    <comment_count>19</comment_count>
      <attachid>385592</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-13 04:33:18 -0800</bug_when>
    <thetext>Created attachment 385592
native-animation-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598312</commentid>
    <comment_count>20</comment_count>
      <attachid>385596</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-13 05:53:30 -0800</bug_when>
    <thetext>Created attachment 385596
native-animation-for-ews(including parsing + non_native_animation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598313</commentid>
    <comment_count>21</comment_count>
      <attachid>385597</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-13 06:18:59 -0800</bug_when>
    <thetext>Created attachment 385597
native-animation-for-ews(including parsing + non_native_animation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598319</commentid>
    <comment_count>22</comment_count>
      <attachid>385600</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-13 07:07:10 -0800</bug_when>
    <thetext>Created attachment 385600
native-animation-for-ews(including parsing + non_native_animation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598331</commentid>
    <comment_count>23</comment_count>
      <attachid>385602</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-13 07:53:20 -0800</bug_when>
    <thetext>Created attachment 385602
native-animation-for-ews(including parsing + non_native_animation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598736</commentid>
    <comment_count>24</comment_count>
      <attachid>385716</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-15 07:08:04 -0800</bug_when>
    <thetext>Created attachment 385716
native-animation-for-ews(including parsing + non_native_animation)

Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598737</commentid>
    <comment_count>25</comment_count>
      <attachid>385717</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-15 07:08:31 -0800</bug_when>
    <thetext>Created attachment 385717
native-animation-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598750</commentid>
    <comment_count>26</comment_count>
      <attachid>385722</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-15 09:13:55 -0800</bug_when>
    <thetext>Created attachment 385722
native-animation-for-ews(including parsing + non_native_animation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598751</commentid>
    <comment_count>27</comment_count>
      <attachid>385723</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2019-12-15 09:14:16 -0800</bug_when>
    <thetext>Created attachment 385723
native-animation-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608624</commentid>
    <comment_count>28</comment_count>
      <attachid>388201</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-01-19 22:22:57 -0800</bug_when>
    <thetext>Created attachment 388201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617899</commentid>
    <comment_count>29</comment_count>
      <attachid>390497</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-02-12 01:43:46 -0800</bug_when>
    <thetext>Created attachment 390497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618450</commentid>
    <comment_count>30</comment_count>
      <attachid>390497</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-02-13 05:17:17 -0800</bug_when>
    <thetext>Comment on attachment 390497
Patch

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

&gt; Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:307
&gt; +void AsyncScrollingCoordinator::setScrollAnimationInProgress(ScrollingNodeID nodeID, bool isScrollAnimationInProgress)

This function does nothing if isScrollAnimationInProgress is true. Should it be called interruptScrollAnimation()?

&gt; Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:110
&gt; +    setScrollAnimationInProgress(nodeID, isScrollAnimationInProgress);

This could be
if (!isScrollAnimationInProgress)
  interruptScrollAnimation(nodeID);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620064</commentid>
    <comment_count>31</comment_count>
      <attachid>390497</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-02-17 21:37:44 -0800</bug_when>
    <thetext>Comment on attachment 390497
Patch

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

&gt;&gt; Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:307
&gt;&gt; +void AsyncScrollingCoordinator::setScrollAnimationInProgress(ScrollingNodeID nodeID, bool isScrollAnimationInProgress)
&gt; 
&gt; This function does nothing if isScrollAnimationInProgress is true. Should it be called interruptScrollAnimation()?

isScrollAnimationInProgress is always false currently. This function is used to indicate that native animated scroll is end.
I changed the name to nativeScrollAnimationStopped, WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620065</commentid>
    <comment_count>32</comment_count>
      <attachid>391029</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-02-17 21:40:34 -0800</bug_when>
    <thetext>Created attachment 391029
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706912</commentid>
    <comment_count>33</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-12 10:12:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/71331742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800900</commentid>
    <comment_count>34</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-05 17:34:19 -0700</bug_when>
    <thetext>I&apos;ll take this over, if that&apos;s OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800994</commentid>
    <comment_count>35</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-10-06 01:29:32 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #34)
&gt; I&apos;ll take this over, if that&apos;s OK.

Sure, no problem, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802466</commentid>
    <comment_count>36</comment_count>
      <attachid>440729</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-10 10:36:55 -0700</bug_when>
    <thetext>Created attachment 440729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802468</commentid>
    <comment_count>37</comment_count>
      <attachid>440730</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-10 10:49:32 -0700</bug_when>
    <thetext>Created attachment 440730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802469</commentid>
    <comment_count>38</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-10-10 10:50:44 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802470</commentid>
    <comment_count>39</comment_count>
      <attachid>440731</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-10 11:01:20 -0700</bug_when>
    <thetext>Created attachment 440731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802694</commentid>
    <comment_count>40</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-11 10:53:04 -0700</bug_when>
    <thetext>Committed r283911 (242782@main): &lt;https://commits.webkit.org/242782@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440731.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384994</attachid>
            <date>2019-12-06 00:33:58 -0800</date>
            <delta_ts>2019-12-09 06:02:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204936-20191206163354.patch</filename>
            <type>text/plain</type>
            <size>249772</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA5ZjEyNDFlM2MzZTBm
YTY3MmY4ODM0MTY3NGU3M2JkYzcxZTg0NS4uOWFmOWRhNGMyZmUzOTZlNGNlMDIwNDEzNjk4ODJh
OTgxOGU2YmE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3MyBAQAorMjAxOS0xMi0wNSAgQ2F0
aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZv
ciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgcHJvZ3JhbW1hdGljIHNtb290aCBzY3JvbGxpbmcgaW4g
V2ViS2l0IGZyb20gdGhlIENTU09NIFZpZXcKKyAgICAgICAgc3BlY2lmaWNhdGlvbiBbMV0uIFRv
IHVzZSB0aGlzIGVmZmVjdCwgd2ViIGRldmVsb3BlcnMgY2FuIHBhc3MgYSBiZWhhdmlvciBwYXJh
bWV0ZXIgKGF1dG8sCisgICAgICAgIHNtb290aCwgb3IgaW5zdGFudCkgdG8gRWxlbWVudC5zY3Jv
bGwsIEVsZW1lbnQuc2Nyb2xsVG8sIEVsZW1lbnQuc2Nyb2xsQnksCisgICAgICAgIEVsZW1lbnQu
c2Nyb2xsSW50b1ZpZXcsIFdpbmRvdy5zY3JvbGwsIFdpbmRvdy5zY3JvbGxUbyBvciBXaW5kb3cu
c2Nyb2xsQnkgWzJdLiBXaGVuIGJlaGF2aW9yCisgICAgICAgIGlzIGF1dG8sIHRoZSBpbnN0YW50
L3Ntb290aCBjaGFyYWN0ZXJpc3RpYyBpcyBhY3R1YWxseSB0YWtlbiBmcm9tIHRoZSB2YWx1ZSBv
ZiBhIG5ldyBDU1MKKyAgICAgICAgc2Nyb2xsLWJlaGF2aW9yIHByb3BlcnR5IFszXS4gQm90aCB0
aGUgbmV3IENTUyBhbmQgRE9NIGJlaGF2aW9yIGFyZSBwcm90ZWN0ZWQgYnkgYSBydW50aW1lCisg
ICAgICAgIGZsYWcuIFRoaXMgcGF0Y2ggaXMgcGFydCBzY3JvbGwgYmVoYXZpb3IsIG9ubHkgc3Vw
cG9ydCBpT1MgcGxhdGZvcm0uIEl0IHJlbGllcyBvbiBVSVNjcm9sbFZpZXcncworICAgICAgICBu
YXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBwb3J0IGFuZCBpcyBleGVjdXRlZCBpbiB0aGUgVUkg
cHJvY2Vzcy4KKworICAgICAgICBbMV0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZp
ZXcKKyAgICAgICAgWzJdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNkaWN0
ZGVmLXNjcm9sbG9wdGlvbnMKKyAgICAgICAgWzNdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvcgorCisgICAgICAgIFRlc3RzOiBmYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0
aW9ucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZCBJREwgZmlsZXMgZm9yIFNjcm9sbE9wdGlvbnMgYW5kIFNjcm9sbEJlaGF2
aW9yLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERpdHRvLgorICAgICAgICAqIEhl
YWRlcnMuY21ha2U6IEFkZCBoZWFkZXJzIGZvciBTY3JvbGxCZWhhdm9yIGFuZCBTY3JvbGxPcHRp
b25zLgorICAgICAgICAqIFNvdXJjZXMudHh0OiBBZGQgU2Nyb2xsQmVoYXZvciBhbmQgU2Nyb2xs
T3B0aW9ucyBpbXBsZW1lbnRhdGlvbi4gQWxzbyBidWlsZAorICAgICAgICBTY3JvbGxBbmltYXRp
b25TbW9vdGguY3BwIG9uIGFsbCBwbGF0Zm9ybXMuCisgICAgICAgICogU291cmNlc0dUSy50eHQ6
IFJlbW92ZSBTY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIHNpbmNlIGl0IGlzIGJ1aWx0IG9uIGFs
bCBwbGF0Zm9ybXMgbm93LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogQWRkIGZpbGVzIHRvIHRoZSBidWlsZCBzeXN0ZW0uCisgICAgICAgICogY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6IEhhbmRsZSBzY3JvbGwtYmVoYXZpb3IuCisgICAg
ICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5T
dHlsZSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjogQWRkIHNjcm9sbC1iZWhh
dmlvci4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogQWRkIGtleXdvcmRzIGZv
ciBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0
LmNwcDogQWRkIHJ1bnRpbWUgY29uZmlnIGZvciBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChX
ZWJDb3JlOjpDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4
dC5oOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHRIYXNoOjpoYXNo
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHA6IFJlbW92ZSBz
Y3JvbGwtYmVoYXZpb3IgdGVtcGxhdGVzLiBJdCBpcyBoYW5kbGVkIGluIHRoZQorICAgICAgICBz
bG93IHBhdGggc2luY2UgcHJvcGVydHkgY2FuIGJlIGRpc2FibGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyRmFzdFBhdGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlE
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnN1bWVTY3JvbGxCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZSk6IFBhcnNlIHNjcm9sbC1iZWhhdmlvciAo
b25seSBpZiBlbmFibGVkKS4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlldyk6IFBhc3Mgc2Nyb2xsIGJlaGF2aW9yLCBp
ZiBhbnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxCeSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxUbyk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBi
ZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRTY3JvbGxM
ZWZ0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNjcm9sbFRvcCk6IEhhbmRsZSB0aGUgY2FzZSB3
aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzY3JvbGxCeSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9sbFRvIGNvbnN0KTogSGFuZGxlIHRoZSBjYXNl
IHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgVGhlIG9wdGltaXphdGlv
biBvZiBjYW5jZWwgKDAsIDApIHNjcm9sbGluZyBpcyBza2lwcGVkIGlmIGFuIGFuaW1hdGVkIHNj
cm9sbCBpcyBpbiBwcm9ncmVzcy4KKyAgICAgICAgT3RoZXJ3aXNlLCB0aGUgcHJldmlvdXMgc2Ny
b2xsIHdvbid0IGJlIHN0b3BwZWQgYnkgYSBmb2xsb3ctdXAgc2Nyb2xsLgorICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xs
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24pOiBTdGFydCBhbiBhbmltYXRlZCBzY3JvbGwgZm9yIGlPUyBwbGF0Zm9ybS4g
SW4gbm9uLWlPUyBwbGF0Zm9ybXMsIGl0J3MgYW4gaW5zdGFsbCBzY3JvbGwuCisgICAgICAgICog
cGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjp1c2VTbW9vdGhTY3JvbGxpbmcpOiBIZWxwZXIgZnVuY2l0
b24gdG8gZGV0ZXJtaW5lIHRoZSBzY3JvbGwgYmVoYXZpb3IgdG8gYXBwbHkgdG8KKyAgICAgICAg
YW4gZWxlbWVudCBmcm9tIHRoZSBDU1MgYW5kIERPTSBiZWhhdmlvci4KKyAgICAgICAgKiBwYWdl
L1Njcm9sbEJlaGF2aW9yLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3Iu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOiBNYWtl
IHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb24uIEFsc28gcmVtb3ZlIHVubmVj
ZXNzYXJ5IGZvcndhcmQgZGVjbGFyYXRpb24uCisgICAgICAgICogcGFnZS9TY3JvbGxJbnRvVmll
d09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb24u
CisgICAgICAgICogcGFnZS9TY3JvbGxPcHRpb25zLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uv
U2Nyb2xsT3B0aW9ucy5pZGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRpb25z
Lmg6IE1ha2UgdGhpcyBzdHJ1Y3QgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb25zLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVG9PcHRpb25zOjpTY3JvbGxUb09wdGlvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6bm9ybWFsaXplTm9uRmluaXRlQ29vcmRpbmF0ZXNPckZhbGxCYWNrVG8pOiBDb3B5
IHRoZSBjdXJyZW50IFNjcm9sbFRvT3B0aW9ucyBzbyB0aGF0IHRoZSBzY3JvbGwgYmVoYXZpb3Ig
aXMgcHJlc2VydmVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbDogTWFrZSB0
aGlzIGNsYXNzIGluaGVyaXQgZnJvbSBTY3JvbGxPcHRpb25zLgorICAgICAgICAqIHBhZ2UvU2V0
dGluZ3MueWFtbDogTmV3IHNldHRpbmcgZm9yIENTU09NIFZpZXcgc21vb3RoIHNjcm9sbGluZy4K
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZSk6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBh
bmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk6IFVwZGF0ZSB0aGUgc2Ny
b2xsIGFuaW1hdGlvbiBzdGF0dXMgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlKTogQWRkIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIHRvIGluZGlj
YXRlIGl0J3MgYW5pbWF0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzIGNvbnN0
KTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBBZGQgd2l0
aEFuaW1hdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1Ry
ZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogVXBkYXRlIHRoZSBz
Y3JvbGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTogQWRkIGEgZmxhZyB0byBp
bmRpY2F0ZSB0aGUgc2Nyb2xsIGlzIGFuaW1hdGVkIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyk6IElmIG5lZWRTeW5jU2Nyb2xs
UG9zaXRpb24gaXMgdHJ1ZSwgc2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJv
Y2VzcywgZXZlbiBpZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGRvZXNuJ3QgY2hhbmdlLgorICAgICAg
ICBNYWludGFpbiB0aGUgc3RhdHVzIG9mIG1fc3RvcFNjcm9sbEFuaW1hdGlvbiBhbmQgbV9yZXF1
ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKTogQW5pbWF0ZWQgc2Ny
b2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGltbWVkaWF0ZWx5LCBzbyBkb24n
dCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZvIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbik6IG1f
cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24gaW5kaWNhdGVzIHRoYXQgdGhpcyBpcyBhbiBhbmlt
YXRlZCBzY3JvbGwgcmVxdWVzdC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24pOiBJ
ZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHByZXZpb3Vz
IHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlv
biBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRkIFNj
cm9sbEJlaGF2aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQgb3Igc21vb3RoIHNjcm9s
bC4KKyAgICAgICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGluZGljYXRlIHRoZSBzdGF0
dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBGb2xsb3cgdGhl
IENTU09NIFZpZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdl
IGludGVycnVwdCBpdCBhbmQgY29udGludWUgdGhlIHNjcm9sbCBjYWxsIChldmVuIHdoZW4gd2Ug
YXJlIGF0IHRoZSBmaW5hbAorICAgICAgICBwb3NpdGlvbikuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxW
aWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OlNjcm9sbGFibGVBcmVhKTogQWRkIG1fY3VycmVudFNj
cm9sbEJlaGF2aW9yVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppc1Nj
cm9sbEluUHJvZ3Jlc3MpOiBIZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgd2hldGhlciBzY3JvbGwK
KyAgICAgICAgYW5pbWF0aW9uIGlzIGluIHByb2dyZXNzIG9uIHRoZSBhbmltYXRvci4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppc1dlYlNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MpOiBDaGVjayBpZiB0aGUgbV9zY3JvbGxBbmltYXRvciBvZgorICAgICAgICB0aGUgV2ViIHBy
b2Nlc3MgaXMgcGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9u
KTogVG8gYXZvaWQgaXRlcmF0ZSBjYWxsaW5nLAorICAgICAgICBtb3ZlIHRoZSByZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUocG9zaXRpb24pIGNoZWNraW5nIG91dCBvZiBzZXRTY3JvbGxPZmZz
ZXRGcm9tQW5pbWF0aW9uKCkuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjdXJyZW50U2Nyb2xsQmVoYXZpb3JT
dGF0dXMgY29uc3QpOiBNYWludGFpbiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5
cGUgY29uc3QpOiBNYWludGFpbiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94OjpzZXRTY3JvbGxMZWZ0KTogQWRkIGZsYWcgdG8gaW5kaWNhdGUgYW5pbWF0ZWQgb3Ig
bm90LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRTY3JvbGxUb3ApOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9u
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9ZUG9zaXRp
b24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb1Bvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldCk6IEZv
bGxvdyB0aGUgQ1NTT00gVmlldyBzcGVjOiBJZiBhIHNjcm9sbCBpcyBpbgorICAgICAgICBwcm9n
cmVzcywgd2UgaW50ZXJydXB0IGl0IGFuZCBjb250aW51ZSB0aGUgc2Nyb2xsIGNhbGwgKGV2ZW4g
d2hlbiB3ZSBhcmUgYXQgdGhlIGZpbmFsCisgICAgICAgIHBvc2l0aW9uKS4gSXQncyBTY3JvbGxC
ZWhhdmlvclR5cGU6Okluc3RhbnQgc2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKTogRGl0dG8uIFRoaXMgaXMgc2lt
aWxhciB0byBzY3JvbGxUb09mZnNldAorICAgICAgICBidXQgYW5pbWF0ZXMgdGhlIHNjcm9sbCBv
biBpT1MgcGxhdGZvcm0uIEl0J3MgU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGggc2Nyb2xsLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKTogVXNlIHNjcm9sbFRvUG9zaXRp
b24gdG8gaGFuZGxlIGluc3RhbnQgb3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaDogQWRkIHNjcm9sbCBiZWhhdmlvciB0byBTY3JvbGxUZWN0VG9WaXNp
YmxlT3B0aW9ucy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KTogQWRkIGFuaW1hdGVk
IGZsYWcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3ApOiBE
aXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6IEhhbmRsZSAnc21vb3RoIHNjcm9sbGlu
ZycgYm9vbGVhbiBkYXRhLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnVzZVNtb290
aFNjcm9sbGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0VXNl
U21vb3RoU2Nyb2xsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjppbml0aWFs
VXNlU21vb3RoU2Nyb2xsaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOiBEaXR0
by4KKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U21vb3RoU2Nyb2xsaW5nKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OnVuY29uc3RyYWluZWRTY3JvbGxUbyk6CisKIDIwMTktMTItMDQgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIGEgR1BVIHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMGI5MmM3NDYzNTRiZTFlNjIwYTg2ZGQwOTEyZTZhNmZmZGZjNjdm
My4uZGUxY2VkNGJlM2E2NjhiZGU2ZTMwM2ZhYThmZDEzNDc4ZmMyMmI2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2MSBAQAorMjAxOS0xMi0wNSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMg
b24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBi
eSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcg
YXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuIE9uIGlvcyBwbGF0Zm9ybSwgdXNlIG5hdGl2ZSBh
bmltYXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaW50ZXJmYWNlcyB0byBwZXJmb3JtYW5jZSBzbW9v
dGggc2Nyb2xsIGFuZCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNz
LgorCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uLmNwcDogRGVhbCB3aXRoIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
V2l0aEFuaW1hdGlvbiBlbmNvZGUgYW5kIGRlY29kZS4KKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKToKKyAgICAgICAgKEFyZ3VtZW50
Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKToKKyAgICAgICAgKFdl
YktpdDo6ZHVtcCk6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChwb2ludHNF
cXVhbEluUm91bmRUb0RldmljZVBpeGVsKTogSGVscCBmdW5jdGlvbiB0byBjaGVjayBpZiB0d28g
ZmxvYXQgcG9pbnRzIGFyZSBub3QgZXF1YWwgYnV0IGluIHRoZSBzYW1lIGRldmljZSBwaXhlbC4K
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3Jv
bGxPcmlnaW46YW5pbWF0ZWQ6XSk6IEFkZCBhbmltYXRlZCBmbGFnIHRvIHN0YXJ0IGEgYW5pbWF0
ZWQgc2Nyb2xsIGlmIG5lZWRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRF
bmRTY3JvbGxpbmdBbmltYXRpb246XSk6IFNlbmQgc3JvbGwgZW5kIG1lc3NhZ2UgdG8gdGhlIFdl
YiBwcm9jZXNzLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBv
c2l0aW9uOnNjcm9sbE9yaWdpbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6cmVxdWVzdFNjcm9sbFdpdGhBbmlt
YXRpb24pOiBQcm92aWRlIGludGVyZmFjZSBmb3IgYW5pbWF0ZWQgc2Nyb2xsaW5nLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6Y29tbWl0TGF5ZXJUcmVlKTogQWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgICogVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xs
aW5nVHJlZU5vZGVEaWRTY3JvbGwpOiBTeW5jIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdl
YiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogQWRkIGFuaW1hdGVkIHNjcm9s
bGluZyBpbmZvIHRvIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBTeW5jIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4gSXQncyBzcGVjaWZpYyB0byB0aGUgcm9vdCBub2Rl
LgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKTogQWRkIGFuaW1hdGVkIGluZm8uCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVz
dHNTY3JvbGwpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6
c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBE
aXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5t
bToKKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZp
ZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246XSk6IFNlbmQgc2NvbGwgZW5kIGluZm8gdG8gdGhl
IFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4pOiBJZiB0aGUgc2Nyb2xsIHBv
c2l0aW9uIG9mIHRoZSBXZWIgcHJvY2VzcyBpc24ndCBlcXVhbCB0byB0aGUgVUkgcHJvY2VzcywK
KyAgICAgICAgdGhlIHNjcm9sbCBwb3NpdGlvbiBzaG91bGQgYmUgc3luY2hyb25pemVkLCBldmVu
IHRoZXJlJ3Mgbm8gc2Nyb2xsaW5nIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAg
ICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3Np
dGlvblNjcm9sbGluZ0xheWVycyk6IENhbGxpbmcgdGhlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxp
bmcgaW50ZXJmYWNlIGZvciBzbW9vdGggc2Nyb2xsLgorICAgICAgICBJZiB0aGVyZSdzIGEgc2Ny
b2xsIGFuaW1hdGlvbiBwZXJmb3JtaW5nLCBpdCBzaG91bGQgYmUgc3RvcHBlZCBmaXJzdCwgdGhl
biBzdGFydCBhIG5ldyBzY3JvbGxpbmcuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRp
b24pOiBTeW5jIHNjcm9sbCBlbmQgaW5mbyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cmVxdWVzdFNjcm9sbCk6IFRvIGNhbGwgZGlmZmVyZW50IGZ1bmN0aW9ucyBmb3Igc21vb3Ro
IGFuZCBpbnN0YW50IHNjcm9sbC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0NoYW5nZWRGb3JOb2RlKToKKwogMjAxOS0xMi0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgYSBHUFUgcHJvY2VzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGE4Yzc3MjM0MmJhNWZjYjVmNDBkMWY5YmRlMDk0
NTI4NjBjYmQzNWEuLjBkYWJmNTE4YjFmMmRhZjNlNjMxMTViNThjMjA2ZDBiNjRhYzE3YzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMi0wNSAg
Q2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2Vz
IGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAg
ICAgQWRkIHJ1biB0aW1lIGZsYWcgZm9yIENTU09NVmlld1Ntb290aFNjcm9sbGluZy4KKworICAg
ICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEhhbmRsZSBDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmcgYnkuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bToKKyAgICAgICAgKFtXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IERpc2FibGUgQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nIGJ5IGRlZmF1bHQuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2Vz
IENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRdKTogR2V0dGVyLgorICAgICAgICAoLVtX
ZWJQcmVmZXJlbmNlcyBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOl0pOiBTZXR0
ZXIuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hh
bmdlZDpdKToKKwogMjAxOS0xMi0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgYSBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCmluZGV4IDlhNWEwMmExMWM4NTRjY2ZiZTVmOTVhZWNkNzIxYmU5ZDMzYWJjZjku
LjA4OTBhMjgyZDFlZGFlNDI4Njc4MDQ2OGFhNzIwNDg0OGExY2JhY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0xMi0wNSAgQ2F0aGllIENoZW4g
IDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9s
bCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxh
dGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJh
c2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgKiBJbnRlcmZh
Y2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsOiBIYW5kbGUgc21vb3RoIHNjcm9sbGluZyBv
cHRpb24uCisgICAgICAgICogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IERpdHRvLgorICAg
ICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJQcmVmZXJlbmNl
czo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncyk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNl
czo6c2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJl
ZmVyZW5jZXMuaDogRGl0dG8uCisgICAgICAgICogV2ViVmlldy5jcHA6IERpdHRvLgorICAgICAg
ICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAxOS0xMi0wMyAgQW50
b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9u
c10gQWRkIGEgcnVudGltZSBmbGFnIGZvciBXZWIgQW5pbWF0aW9ucyBjb21wb3NpdGUgb3BlcmF0
aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0MGYzZGQ5ZTg1MTEwNmM3NzYwNTBhYzg3M2Vi
NGFkZjQzMWZjMzU2Li5jZTViMzA3Y2RkNmQzOWY4ZTllYTFjZWM3YTgxMjk0MTUwOGUxYmM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTY0LDggKzk2NCwxMCBAQCBzZXQoV2ViQ29yZV9OT05f
U1ZHX0lETF9GSUxFUwogICAgIHBhZ2UvUmVzaXplT2JzZXJ2ZXJDYWxsYmFjay5pZGwKICAgICBw
YWdlL1Jlc2l6ZU9ic2VydmVyRW50cnkuaWRsCiAgICAgcGFnZS9TY3JlZW4uaWRsCisgICAgcGFn
ZS9TY3JvbGxCZWhhdmlvci5pZGwKICAgICBwYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwK
ICAgICBwYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwKKyAgICBwYWdlL1Njcm9sbE9wdGlv
bnMuaWRsCiAgICAgcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsCiAgICAgcGFnZS9TaGFyZURhdGEu
aWRsCiAgICAgcGFnZS9VbmRvSXRlbS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDg4M2NhMzk4YTVlNThkZDQ5NTkxMDFmYjIwZTkzMWZhOThhMmJkMDIuLjRjMzAwYTU4MzVm
MjMzNGZkNDdlNGRkM2MyYmJiZTY2OWU3Y2ZmMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtOTE1LDggKzkxNSwxMCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL3Bh
Z2UvUmVzaXplT2JzZXJ2ZXJFbnRyeS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JlZW4u
aWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsIFwKICAgICAkKFdl
YkNvcmUpL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9w
YWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TY3Jv
bGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9TaGFyZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL3Bh
Z2UvVW5kb0l0ZW0uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGNiNGZlMWFjZWRkODc3NzNk
OGE1ZDBmZjJjYWU1NDM2NDJlOTg3MmYuLjcxMzFiMmZiZWI5NGI0ZTQ4NTg3NmFlZWI2NGNhN2Ew
ZjAxYjg4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtODE4LDggKzgxOCwxMCBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9SZW1vdGVGcmFtZS5oCiAg
ICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAogICAgIHBhZ2UvUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oCisgICAgcGFnZS9TY3JvbGxCZWhhdmlvci5oCiAgICAgcGFnZS9TY3JvbGxJ
bnRvVmlld09wdGlvbnMuaAogICAgIHBhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmgKKyAgICBw
YWdlL1Njcm9sbE9wdGlvbnMuaAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmgKICAgICBwYWdl
L1NlY3VyaXR5T3JpZ2luLmgKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDFjZGM4YTQxZmM5MDRhOGI2ZGQ2NmZhZTljYTkwNzJjMzkwMjEwZmYuLjZhM2M5
M2YyNzdlZDgxMDhjOGYyMzM1ZWRkY2M1MmJkNWExNjhkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0x
NjQ2LDYgKzE2NDYsNyBAQCBwYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcAogcGFnZS9SZXNv
dXJjZVVzYWdlVGhyZWFkLmNwcAogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAogcGFn
ZS9TY3JlZW4uY3BwCitwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcAogcGFnZS9TZWN1cml0eU9yaWdp
bi5jcHAKIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAogcGFnZS9TZWN1cml0eVBvbGljeS5j
cHAKQEAgLTE3NTEsNiArMTc1Miw3IEBAIHBsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5j
cHAKIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKIHBsYXRmb3JtL1NTTEtl
eUdlbmVyYXRvci5jcHAKIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKIHBsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApAQCAtMzM3Niw4ICsz
Mzc4LDEwIEBAIEpTU1ZHWm9vbUFuZFBhbi5jcHAKIEpTU1ZHWm9vbUV2ZW50LmNwcAogSlNTY3Jl
ZW4uY3BwCiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCitKU1Njcm9sbEJlaGF2aW9yLmNwcAog
SlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwCiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAK
K0pTU2Nyb2xsT3B0aW9ucy5jcHAKIEpTU2Nyb2xsVG9PcHRpb25zLmNwcAogSlNTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50LmNwcAogSlNTZXJ2aWNlV29ya2VyLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RL
LnR4dAppbmRleCBjMmMyNzA5Yjg3OWE4Mzg2OTI4OWZlMjg3MTM1N2NkZTYyNmExYWE0Li41NGI1
MzZlZDljMGJmMGNkZjVlZWFhYzY3N2U5YmY2MWMzN2VkYWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4
dApAQCAtNjMsNyArNjMsNiBAQCBwYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVT
dGlja3lOb2RlLmNwcAogcGFnZS9zY3JvbGxpbmcvZ2VuZXJpYy9TY3JvbGxpbmdUaHJlYWRHZW5l
cmljLmNwcAogCiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25LaW5ldGljLmNwcAotcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0vVXNlckFnZW50UXVpcmtzLmNwcAog
CiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjZWVhNDUy
NmViOWM2ZGIwOTA5MjNhZTFkYzBmZGIwNjVlMWQzNDlhLi40N2JlZmE4MzVhNGRjZTdkODM0Mzdm
NzllY2VmMGE2MGM4NGI4ZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzg5LDYgKzIzODksOCBAQAogCQk4MzQwN0ZDMTFF
OEQ5QzE3MDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0MDdGQzAxRThEOUMxMjAwRTA0OEQz
IC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQjAgLyogSlNTY3Jv
bGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExvZ2ljYWxQb3Np
dGlvbi5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQzEgLyogSlNTY3JvbGxJbnRv
Vmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5o
ICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyogSlNTY3JvbGxCZWhhdmlvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDEx
REE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLzsgfTsKKwkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1QTUxRTAwRkZFOEU1IC8qIEpT
U2Nyb2xsT3B0aW9ucy5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFRDIgLyogSlNT
Y3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oICov
OyB9OwogCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQ4QkZBQTFCODU3
Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggKi87IH07CiAJCTgzNERGQUQwMUY3REFF
NUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRERkFDQzFGN0RBRTU2MDBDMjcyNUIgLyogU2hhcmVk
U3RyaW5nSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0yNDQzLDYgKzI0NDUsOCBAQAogCQk4M0M0NUI4RTFEQzJCNjhBMDA4ODcxQkEgLyog
VmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0M1Nzk1
RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFEQTU5QjYyMDAzNTU0
MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMwMTAwNkY5Qzk3IC8qIFNjcm9s
bEludG9WaWV3T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3T3B0aW9u
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTgz
QzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDI0
IC8qIFNjcm9sbEJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNTBDM0U3
MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMwMTAwNkZBQ0E4IC8q
IFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRDM1QUVD
MUM3MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBG
NzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFD
NzE4RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBG
NzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CkBAIC0xMDE0NSw5
ICsxMDE0OSwxNCBAQAogCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5n
SGFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRTdHJp
bmdIYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1MEMzRTcxREE1OUI2
MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3T3B0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxJbnRvVmlld09w
dGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAw
MzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzNTBD
M0U3MURBNTlCNjIwMDM1NjQzNCAvKiBTY3JvbGxCZWhhdmlvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsT3B0aW9ucy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xs
VG9PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbFRvT3B0
aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAz
NTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xs
QmVoYXZpb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTgxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbE9wdGlvbnMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0
NDYgLyogU2Nyb2xsVG9PcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxU
b09wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUyMEM3RDFBNzFC
RkNDMDA2QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDU1NGb250RmFtaWx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
NTY1N0M2MUVDQUIwRTgwMENERTcyRCAvKiBKU0RPTU1hdHJpeEluaXQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXRyaXhJbml0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjY5LDkgKzEwMjc4LDEzIEBACiAJCTgzRTk1OUUxMUI4
QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNh
bFBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1
QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEQ0IC8qIEpT
U2Nyb2xsQmVoYXZpb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNTY3JvbGxCZWhhdmlvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlC
MzAwMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9P
cHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xs
VG9PcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDExREE1
QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbElu
dG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9s
bEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0U5QjMw
MTFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JvbGxPcHRpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Nj
cm9sbFRvT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9s
bFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTk4QjFGNTA5
NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4M0VFNTk4QzFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDczMCwxMCArMjA3NDMsMTUgQEAKIAkJCQlCQ0VD
MDFCQTBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmNwcCAqLywKIAkJCQlCQ0VDMDFCQjBDMjc0
REFDMDA5RjRFQzkgLyogU2NyZWVuLmggKi8sCiAJCQkJQkNFQzAxQkMwQzI3NERBQzAwOUY0RUM5
IC8qIFNjcmVlbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM0IC8qIFNjcm9s
bEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xs
QmVoYXZpb3IuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVo
YXZpb3IuaWRsICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NTQzNSAvKiBTY3JvbGxJbnRv
Vmlld09wdGlvbnMuaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xs
SW50b1ZpZXdPcHRpb25zLmlkbCAqLywKIAkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTU0MjQgLyog
U2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCiAJCQkJODM1MEMzRTgxREE1OUI2MjAwMzU1NDI0
IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2MjAw
MzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0
MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwgKi8sCiAJCQkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2
IC8qIFNjcm9sbFRvT3B0aW9ucy5oICovLAogCQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQ0NiAv
KiBTY3JvbGxUb09wdGlvbnMuaWRsICovLAogCQkJCUJDRDBFMEY3MEU5NzJDMzUwMDI2NURFQSAv
KiBTZWN1cml0eU9yaWdpbi5jcHAgKi8sCkBAIC0yNTUyMSwxMCArMjU1MzksMTQgQEAKIAkJCQk1
OEIyRkEwMjIyMzJENjBBMDA5MzhENjMgLyogSlNSZXNpemVPYnNlcnZlckVudHJ5LmggKi8sCiAJ
CQkJQkNFQzAxQzAwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmNwcCAqLywKIAkJCQlCQ0VD
MDFDMTBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCAqLywKKwkJCQk4M0U5QjMwMDFEQTVB
NTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAgKi8sCisJCQkJODNFOUIzMDExREE1
QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLywKIAkJCQk4M0U5QjMwMDFEQTVB
NTFFMDBGRkQ4RTUgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwICovLAogCQkJCTgzRTlC
MzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oICovLAogCQkJ
CTgzRTlCMzAwMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAg
Ki8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmggKi8sCisJCQkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9u
cy5jcHAgKi8sCisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9u
cy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9u
cy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRp
b25zLmggKi8sCiAJCQkJN0M3M0ZCMEYxOTFFRjZGNDAwN0RFMDYxIC8qIEpTVXNlck1lc3NhZ2VI
YW5kbGVyLmNwcCAqLywKQEAgLTMwODY5LDggKzMwODkxLDEwIEBACiAJCQkJNUUyQzQzNkMxQkNG
MDcxRTAwMDFFMkJDIC8qIEpTUlRDVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNF
QzAxQzMwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
REExNUVDRTEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9jZXNzb3JOb2RlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyogSlNTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYxREE1QkM1RTAwMkI1RUMxIC8qIEpTU2Ny
b2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzQ0NzZFRjFEQTVCQzVF
MDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVDMSAvKiBKU1Njcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VEMDZBRDExQzc3NzU0ODAwRkRGQUYxIC8qIEpTU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4MkMyNTYxRjMx
NDNDRDAwNTlCQTdDIC8qIEpTU2VydmljZVdvcmtlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjA3
Myw2ICszMjA5Nyw3IEBACiAJCQkJNDRDOTkxODYwRjNEMUVCRTAwNTg2NjcwIC8qIFNjcm9sbGJh
clRoZW1lSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCODUzRTBFN0M3RjExMDBBQjY5ODQg
LyogU2Nyb2xsYmFyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTcxNDA2MTQyMTcw
QjgwMERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTgz
QzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFBODRGMDUxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9sbENvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNjA1QUVEMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25z
dHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNjJFRTgxNERBMjJBNzAwNDE1NTZDIC8q
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTA5LDYgKzMyMTM0
LDcgQEAKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyogU2Nyb2xsSW50b1ZpZXdPcHRp
b25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUFGRThEMDE5Q0I4NjcyMDAwRjU2RDggLyogU2Ny
b2xsTGF0Y2hpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNTc5NUQxREE1QzMwMTAw
NkY5Qzg2IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJODND
NTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUY0Nzg3NTU0MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ2NzI5MjgxRTBERTY4NTAwQUNDM0Q4IC8qIFNjcm9sbFNu
YXBPZmZzZXRzSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZB
Q0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDFjNGUzNmYx
NDk2YjgxYmNmZjI0ZjVhNGM0YTI3YWQ5YThjMTE5M2UuLmQ0YWJmMjNiNzhkZjUzNmQ1Yzk1OTA5
YzM2YjA3MTBjYWNmYmYxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMzkzLDYgKzMzOTMsMTAgQEAgUmVmUHRyPENT
U1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShj
b25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwogICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVUb3VjaCk7CiAjZW5kaWYKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2aW9yOgorICAgICAgICAgICAgaWYgKCFz
dHlsZS51c2VTbW9vdGhTY3JvbGxpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFs
dWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOworICAgICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVTbW9vdGgp
OwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGVyc3BlY3RpdmU6CiAgICAgICAgICAgICBpZiAo
IXN0eWxlLmhhc1BlcnNwZWN0aXZlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydGllcy5qc29uCmluZGV4IDQxNTc4YTk0ZWQwZGM1ZjVmNGU4NGM4MDVjYjliYTAx
NzVlYmRkNWQuLmY5ODJkM2Y1ZWJhNTU4NTMxNWIyZDUxNTQ2MzVhOGIzMDk0YmJjNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzU1Nyw2ICszNTU3LDE2IEBACiAg
ICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvU1ZHL3NoYXBlcy5o
dG1sIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Nyb2xsLWJlaGF2aW9y
IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiYXV0byIsCisg
ICAgICAgICAgICAgICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3Bl
Y2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiY3Nzb20tdmlldyIs
CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20t
dmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0s
CiAgICAgICAgICJzaGFwZS1yZW5kZXJpbmciOiB7CiAgICAgICAgICAgICAiaW5oZXJpdGVkIjog
dHJ1ZSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCkBAIC02NDg5LDYgKzY0OTksMjIgQEAKICAg
ICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdWktNC8jcHJv
cGRlZi11c2VyLXNlbGVjdCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgInNj
cm9sbC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAgICAg
ICAgImF1dG8iLAorICAgICAgICAgICAgICAgICJzbW9vdGgiCisgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAiY29udmVy
dGVyIjogIlNtb290aFNjcm9sbGluZyIsCisgICAgICAgICAgICAgICAgIm5hbWUtZm9yLW1ldGhv
ZHMiOiAiVXNlU21vb3RoU2Nyb2xsaW5nIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJz
dGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJleHBlcmltZW50YWwiCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAg
ICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1z
Y3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICAgICJzY3Jv
bGwtcGFkZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAg
ICAgICAgICAgICAgImVuYWJsZS1pZiI6ICJFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQIiwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNWQ3ZjQwODFhMDMzNTZhYmM1MDdl
MjAwZWNiYjBhOTRhYmQyZjc1Ny4uYjU5NzM0ZGU4ZTBjYjhiYmVjMmEwZjQwZmFiYmZiYzNkNzdl
ODZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTEzODcsNiAr
MTM4NywxMCBAQCBwYW4teQogcGluY2gtem9vbQogI2VuZGlmCiAKKy8vIHNjcm9sbC1iZWhhdmlv
cgorLy8gYXV0bworc21vb3RoCisKIC8vIGhhbmdpbmctcHVuY3R1YXRpb24KIGFsbG93LWVuZAog
Zmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3Bw
CmluZGV4IDc1MzcxODhjYjkzZDMwMWM4MjRhNzg4ZDUzOTUzZWFlYzAzNDk3MWIuLjcxZjlhYTYy
YzRjYjIxOGYzNTNiYWEzNDQ2N2JkZjRmZjNmZWE1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcApAQCAtNzUsNiArNzUsNyBAQCBDU1NQYXJz
ZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgVVJMJiBzaGVldEJhcwogICAgIGF0dGFjaG1lbnRFbmFibGVkID0gUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQoKTsKICNl
bmRpZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCku
ZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CisgICAgc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0g
ZG9jdW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCk7CiAg
ICAgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IGRvY3VtZW50LnBhZ2UoKSA/IGRvY3VtZW50LnBhZ2Uo
KS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpIDogZmFsc2U7CiB9CiAKQEAgLTk5LDYgKzEwMCw3IEBA
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQYXJz
ZXJDb250ZXh0JiBiKQogICAgICAgICAmJiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIuYXR0YWNo
bWVudEVuYWJsZWQKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxl
ZCA9PSBiLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAorICAgICAgICAmJiBhLnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCA9PSBiLnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLmhhc0Rv
Y3VtZW50U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luCiAgICAg
ICAgICYmIGEudXNlU3lzdGVtQXBwZWFyYW5jZSA9PSBiLnVzZVN5c3RlbUFwcGVhcmFuY2U7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmluZGV4IDg2
NTI1ZmQ3MGM0MmU5MTNkYWFiYjlkOWIwYTJhMGYzZDEwY2VkZmEuLmM3NGRjOTRjMjViZjI5MWQz
YjMwZTI5MDBlZjBmY2U4ZWEzODYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyQ29udGV4dC5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBib29sIGF0
dGFjaG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRDU1NQ
YXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxlZCB7
IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0IGdl
dE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4geyBm
YWxzZSB9OwpAQCAtMTE2LDcgKzExNyw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFzaCB7
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAgICAgICYga2V5LmF0dGFj
aG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYKLSAgICAg
ICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8
IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2aW9y
RW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDEyCisgICAgICAgICAgICAmIGtleS5tb2Rl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0aGlz
IGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJpdHMpOwogICAgICAgICByZXR1
cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckZhc3RQYXRocy5jcHAKaW5kZXggMzFkMTJhYjlhYjYxOWZmNWFlMDE2ZjdjNjYzNDI0Y2IwYzlh
YTQzNS4uNDIxMjg4OWVkMGUzMzIwYzU1ZmE5Y2FhZTMwZjRiOTliYTU2OTU5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtNjM2
LDEwICs2MzYsNiBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9w
ZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZAogICAgICAgICAgICAgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVN0aWNreSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0U3RpY2t5
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6IC8vIG5vbmUgfCBib3RoIHwgaG9yaXpvbnRh
bCB8IHZlcnRpY2FsIHwgYXV0bwogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5v
bmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJvdGggfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUhvcml6
b250YWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVZlcnRpY2FsIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvOwotICAgIC8vIEZJWE1FLU5FV1BBUlNFUjogSW52ZXN0aWdhdGUgdGhpcyBwcm9wZXJ0
eS4KLSAgICAvLyBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsQmVoYXZpb3I6IC8vIGF1dG8gfCBzbW9v
dGgKLSAgICAvLyAgICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmNzc29tU21vb3Ro
U2Nyb2xsRW5hYmxlZCgpKTsKLSAgICAvLyAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0
byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU21vb3RoOwogICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFw
ZVJlbmRlcmluZzoKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDcmlz
cGVkZ2VzIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVHZW9tZXRyaWNQcmVjaXNpb247CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVqb2luOgpAQCAtOTM5LDcgKzkzNSw2IEBAIGJvb2wgQ1NT
UGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJZCkKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5Rm9udEtlcm5pbmc6CiAgICAgLy8gY2FzZSBD
U1NQcm9wZXJ0eUh5cGhlbnM6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93QW5jaG9y
OgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKICAgICAvLyBjYXNlIENT
U1Byb3BlcnR5U2Nyb2xsU25hcFR5cGU6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGln
bkxhc3Q6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRDb21iaW5lVXByaWdodDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggZWJk
MGVhZjVmNjc2N2RmYzJkOTQ2ZTRlOGMxYTAzN2E5YzczODEzMS4uNjNmNWFiNTJmNzMwMzI1NjFk
OGQ5ZGRjZDZkOGM3NjIwOWE0OGE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTIzMjcsNiArMjMyNywxNCBAQCBzdGF0aWMgUmVm
UHRyPENTU1ZhbHVlTGlzdD4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFu
Z2UmIHJhbmdlKQogCiAjZW5kaWYKIAorc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
Y29uc3VtZVNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAg
IGF1dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5pZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENT
U1ZhbHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlU21vb3RoKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3RhdGljIFJl
ZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChy
YW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTM5MjcsNiAr
MzkzNSwxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmds
ZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlT
Y3JvbGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxTbmFwVHlwZShtX3Jh
bmdlKTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKKyAgICAg
ICAgaWYgKCFtX2NvbnRleHQuc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5n
ZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVybiBjb25zdW1lQ2xp
cChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGM5NDYzYjFmZDdjZjYzZjAxNTRkNjIyM2MwYjAzMzQx
Y2NiNmVjYzQuLmJjNThmNGQ2MTdiMmRiYzU4Yzg4MDQwZDEyZWU5NzM4OGMwNTIzNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTgzMiw3ICs4MzIsNiBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9s
bEludG9WaWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4m
JiBhcgogICAgIGJvb2wgaW5zaWRlRml4ZWQ7CiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJvdW5k
cyA9IHJlbmRlcmVyKCktPmFic29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwogCi0gICAg
Ly8gRklYTUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCiAg
ICAgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIG9wdGlvbnM7CiAgICAgaWYgKGFyZykgewogICAgICAg
ICBhdXRvIHZhbHVlID0gYXJnLnZhbHVlKCk7CkBAIC04NTEsNyArODUwLDggQEAgdm9pZCBFbGVt
ZW50OjpzY3JvbGxJbnRvVmlldyhPcHRpb25hbDxWYXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3
T3B0aW9ucz4+JiYgYXIKICAgICAgICAgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLAogICAg
ICAgICBpc0hvcml6b250YWwgPyBhbGlnblggOiBhbGlnblksCiAgICAgICAgIGlzSG9yaXpvbnRh
bCA/IGFsaWduWSA6IGFsaWduWCwKLSAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9s
bGluZzo6Tm8KKyAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8sCisg
ICAgICAgIG9wdGlvbnMuYmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0bykKICAg
ICB9OwogICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYWJzb2x1dGVCb3VuZHMs
IGluc2lkZUZpeGVkLCB2aXNpYmxlT3B0aW9ucyk7CiB9CkBAIC05MTIsNyArOTEyLDcgQEAgdm9p
ZCBFbGVtZW50OjpzY3JvbGxCeShjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMpCiAKIHZv
aWQgRWxlbWVudDo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIHNjcm9sbEJ5
KHsgeCwgeSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMoeCwgeSkpOwogfQogCiB2
b2lkIEVsZW1lbnQ6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Ny
b2xsQ2xhbXBpbmcgY2xhbXBpbmcpCkBAIC05NDgsMTMgKzk0OCwxNyBAQCB2b2lkIEVsZW1lbnQ6
OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcg
Y2xhbXBpbmcpCiAgICAgICAgIGFkanVzdEZvckFic29sdXRlWm9vbShyZW5kZXJlci0+c2Nyb2xs
TGVmdCgpLCAqcmVuZGVyZXIpLAogICAgICAgICBhZGp1c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVy
ZXItPnNjcm9sbFRvcCgpLCAqcmVuZGVyZXIpCiAgICAgKTsKLSAgICByZW5kZXJlci0+c2V0U2Ny
b2xsTGVmdChjbGFtcFRvSW50ZWdlcihzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVu
ZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGlj
LCBjbGFtcGluZyk7Ci0gICAgcmVuZGVyZXItPnNldFNjcm9sbFRvcChjbGFtcFRvSW50ZWdlcihz
Y3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVa
b29tKCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKKyAgICBJbnRQb2lu
dCBzY3JvbGxQb3NpdGlvbigKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25z
LmxlZnQudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksCisgICAg
ICAgIGNsYW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVy
LT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSkKKyAgICApOworICAgIGJvb2wgYW5pbWF0ZWQgPSB1
c2VTbW9vdGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xs
QmVoYXZpb3I6OkF1dG8pLCAqdGhpcyk7CisgICAgcmVuZGVyZXItPnNldFNjcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkLCBjbGFt
cGluZyk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5KQog
ewotICAgIHNjcm9sbFRvKHsgeCwgeSB9KTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMo
eCwgeSkpOwogfQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5VW5pdHMoaW50IHVuaXRzLCBTY3Jv
bGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTEyODgsMTMgKzEyOTIsMTkgQEAgdm9pZCBF
bGVtZW50OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0KQogICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5z
Y3JvbGxpbmdFbGVtZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBk
b2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygp
LT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBm
cmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFt
ZS0+dmlldygpLT5zY3JvbGxZKCkpKTsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1l
bnRGcmFtZVdpdGhOb25OdWxsVmlldygpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxk
IHdlIHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAvLyBT
ZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzI5NzcKKyAgICAg
ICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpICYmIHVz
ZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvcjo6QXV0bywgKmRvY3VtZW50KCkuZG9jdW1l
bnRFbGVtZW50KCkpOworICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xsUG9zaXRp
b24oSW50UG9pbnQoc3RhdGljX2Nhc3Q8aW50PihuZXdMZWZ0ICogZnJhbWUtPnBhZ2Vab29tRmFj
dG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSwgZnJhbWUtPnZpZXcoKS0+c2Nyb2xs
WSgpKSwgYW5pbWF0ZWQpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBpZiAoYXV0byogcmVuZGVyZXIgPSByZW5kZXJCb3goKSkgewotICAgICAgICByZW5kZXJlci0+
c2V0U2Nyb2xsTGVmdChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiByZW5kZXJlci0+c3R5bGUo
KS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOworICAgICAgICBp
bnQgZWZmZWN0aXZlTGVmdCA9IGNsYW1wVG9JbnRlZ2VyKG5ld0xlZnQgKiByZW5kZXJlci0+c3R5
bGUoKS5lZmZlY3RpdmVab29tKCkpOworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3Ro
U2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVy
LT5zZXRTY3JvbGxMZWZ0KGVmZmVjdGl2ZUxlZnQsIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
YW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICAgICAgaWYgKGF1dG8qIHNj
cm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVyKCkpCiAgICAgICAgICAgICBzY3JvbGxhYmxl
QXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUodHJ1ZSk7CiAgICAgfQpAQCAt
MTMwNSwxMyArMTMxNSwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9w
KQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkgPT0gdGhpcykgewotICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0g
ICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChmcmFt
ZS0+dmlldygpLT5zY3JvbGxYKCksIHN0YXRpY19jYXN0PGludD4obmV3VG9wICogZnJhbWUtPnBh
Z2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSkpOworICAgICAgICBp
ZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpIHsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1l
bnQoKT8KKyAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRy
YWZ0cy9pc3N1ZXMvMjk3NworICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9IGRvY3VtZW50KCku
ZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpB
dXRvLCAqZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAgICAgICAgICBmcmFtZS0+
dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChmcmFtZS0+dmlldygpLT5zY3JvbGxY
KCksIHN0YXRpY19jYXN0PGludD4obmV3VG9wICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBm
cmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSksIGFuaW1hdGVkKTsKKyAgICAgICAgfQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcmVuZGVyQm94KCkp
IHsKLSAgICAgICAgcmVuZGVyZXItPnNldFNjcm9sbFRvcChzdGF0aWNfY2FzdDxpbnQ+KG5ld1Rv
cCAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYyk7CisgICAgICAgIGludCBlZmZlY3RpdmVUb3AgPSBjbGFtcFRvSW50ZWdlcihuZXdU
b3AgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOworICAgICAgICBib29sIGFu
aW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqdGhpcyk7
CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3AoZWZmZWN0aXZlVG9wLCBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAgICAg
ICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IHJlbmRlcmVyLT5sYXllcigpKQogICAgICAg
ICAgICAgc2Nyb2xsYWJsZUFyZWEtPnNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKHRy
dWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAwNTY4YjA2OWRjZDNi
YTUxY2E3MWU4MTc4YTJiZGVmNWU3ZmY0NDViLi40MWY1YjY0OWVhNWFkZDE2NzI5NGUwNWM1MDQ0
YTEzMTdmNzJhNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNTk1LDcgKzE1
OTUsNyBAQCBkb3VibGUgRE9NV2luZG93OjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIAogdm9p
ZCBET01XaW5kb3c6OnNjcm9sbEJ5KGRvdWJsZSB4LCBkb3VibGUgeSkgY29uc3QKIHsKLSAgICBz
Y3JvbGxCeSh7IHgsIHkgfSk7CisgICAgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKHgsIHkpKTsK
IH0KIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0
aW9ucykgY29uc3QKQEAgLTE2MTcsMTAgKzE2MTcsMTAgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9s
bEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QKIAogdm9pZCBET01XaW5k
b3c6OnNjcm9sbFRvKGRvdWJsZSB4LCBkb3VibGUgeSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcp
IGNvbnN0CiB7Ci0gICAgc2Nyb2xsVG8oeyB4LCB5IH0sIGNsYW1waW5nKTsKKyAgICBzY3JvbGxU
byhTY3JvbGxUb09wdGlvbnMoeCwgeSksIGNsYW1waW5nKTsKIH0KIAotdm9pZCBET01XaW5kb3c6
OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcp
IGNvbnN0Cit2b2lkIERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBv
cHRpb25zLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykgY29uc3QKIHsKICAgICBpZiAoIWlzQ3Vy
cmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNjMzLDEyICsx
NjMzLDIwIEBAIHZvaWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMm
IG9wdGlvbnMsIFNjcm9sbENsYW1waW5nKSBjb25zdAogICAgICAgICB2aWV3LT5jb250ZW50c1Nj
cm9sbFBvc2l0aW9uKCkueCgpLCB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkueSgpCiAg
ICAgKTsKIAotICAgIGlmICghc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Nyb2xs
VG9PcHRpb25zLnRvcC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKSA9
PSBJbnRQb2ludCgwLCAwKSkKKyAgICBpZiAoIXZpZXctPmlzU2Nyb2xsSW5Qcm9ncmVzcygpICYm
ICFzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICYmICFzY3JvbGxUb09wdGlvbnMudG9wLnZh
bHVlKCkgJiYgdmlldy0+Y29udGVudHNTY3JvbGxQb3NpdGlvbigpID09IEludFBvaW50KDAsIDAp
KQogICAgICAgICByZXR1cm47CiAKICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIEludFBvaW50IGxheW91dFBvcyh2aWV3LT5tYXBG
cm9tQ1NTVG9MYXlvdXRVbml0cyhzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpKSwgdmlldy0+
bWFwRnJvbUNTU1RvTGF5b3V0VW5pdHMoc2Nyb2xsVG9PcHRpb25zLnRvcC52YWx1ZSgpKSk7CisK
KyAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50
KCk/CisgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vl
cy8yOTc3CisgICAgaWYgKGRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpICYmIHVzZVNtb290
aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlv
cjo6QXV0byksICpkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSkpIHsKKyAgICAgICAgdmll
dy0+c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGxheW91dFBvcywgU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBjbGFtcGluZyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB2aWV3
LT5zZXRDb250ZW50c1Njcm9sbFBvc2l0aW9uKGxheW91dFBvcyk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCAwNDAxMmY5ZWZmNjRmYjlhNDEyMTg3ZDA0NmUyMjVjNDk1ZTk0
ZGRiLi5lNTQyMTFmYjA5NTRiYTkyNTJkNWZmMTM1Zjg0ZjhiZjNkYmIwMjc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMjc5LDcgKzIyNzksNyBAQCB2b2lkIEZyYW1lVmlldzo6
c2Nyb2xsRWxlbWVudFRvUmVjdChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRSZWN0
JiByZWN0KQogICAgIHNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGJvdW5kcy54KCkgLSBjZW50
ZXJpbmdPZmZzZXRYIC0gcmVjdC54KCksIGJvdW5kcy55KCkgLSBjZW50ZXJpbmdPZmZzZXRZIC0g
cmVjdC55KCkpKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0
IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgRnJhbWVWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgYW5p
bWF0ZWQpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJGcmFt
ZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24gPDwgIiAsIGNsZWFy
aW5nIGFuY2hvciIpOwogCkBAIC0yMjkyLDggKzIyOTIsMTAgQEAgdm9pZCBGcmFtZVZpZXc6OnNl
dFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKICAg
ICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+aXNN
b25pdG9yaW5nV2hlZWxFdmVudHMoKSkKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5zZXRXaGVl
bEV2ZW50VGVzdE1vbml0b3IocGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwotICAgIFNj
cm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKLQorICAgIGlmIChh
bmltYXRlZCkKKyAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKHNjcm9sbE9mZnNl
dEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiksIGN1cnJlbnRTY3JvbGxUeXBlKCkpOworICAg
IGVsc2UKKyAgICAgICAgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRp
b24pOwogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKG9sZFNjcm9sbFR5cGUpOwogfQogCkBAIC0z
NjYwLDYgKzM2NjIsMjMgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiBuZXdQb3NpdGlvbikKICAgICBkaWRDaGFuZ2VTY3JvbGxPZmZzZXQoKTsKIH0KIAor
dm9pZCBGcmFtZVZpZXc6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBTY3JvbGxP
ZmZzZXQmIG9mZnNldCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3sK
KyAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CisgICAg
c2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhh
dmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGgpOworICAgIGlmIChyZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKSB7Cisg
ICAgICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKKyAgICBpZiAob2Zmc2V0ICE9IHRoaXMtPnNjcm9sbE9m
ZnNldCgpKQorICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5p
bWF0aW9uKG9mZnNldCk7CisgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxU
eXBlKTsKK30KKwogZmxvYXQgRnJhbWVWaWV3OjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250
ZW50KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoZ3JhbnVsYXJpdHkgIT0gU2Nyb2xs
QnlQYWdlIHx8IG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaAppbmRleCBlMzZmOTk2ODA0NjA4Yzc0MDIzOThlN2FkODgzNDQyMGI5YjI4OTIw
Li5iMzdmMDYwZTM5NDMzNWFmNTRmMTE2MTY0Zjc0MTMwMmVjOTRlMzU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKQEAgLTIyMyw3ICsyMjMsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rml4ZWRWaXNpYmxlQ29u
dGVudFJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9z
aXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2UpIGZpbmFsOwogICAgIHZvaWQgcmVzdG9yZVNj
cm9sbGJhcigpOwogICAgIHZvaWQgc2NoZWR1bGVTY3JvbGxUb0ZvY3VzZWRFbGVtZW50KFNlbGVj
dGlvblJldmVhbE1vZGUpOwogICAgIHZvaWQgc2Nyb2xsVG9Gb2N1c2VkRWxlbWVudEltbWVkaWF0
ZWx5SWZOZWVkZWQoKTsKQEAgLTY1OSw2ICs2NTksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJl
bmRlckxheWVyRGlkU2Nyb2xsKGNvbnN0IFJlbmRlckxheWVyJik7CiAKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQm
LCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9
IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKwogcHJvdGVjdGVkOgogICAgIGJvb2wgc2Nyb2xs
Q29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVj
dCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkgZmluYWw7CiAgICAgdm9p
ZCBzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZWQyOWNi
NDJiZjM4YmRiOTBlOGY4MDA5Njg1YzFkOWI1MDgwMjQzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3IuaCIKKworI2luY2x1ZGUgIkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIK
KyNpbmNsdWRlICJTZXR0aW5ncy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgdXNl
U21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yLCBFbGVtZW50JiBhc3NvY2lh
dGVkRWxlbWVudCkKK3sKKyAgICBpZiAoIWFzc29jaWF0ZWRFbGVtZW50LmRvY3VtZW50KCkuc2V0
dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCkgfHwgIWFzc29jaWF0ZWRF
bGVtZW50LnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIGh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmcKKyAgICBzd2l0Y2ggKGJl
aGF2aW9yKSB7CisgICAgY2FzZSBTY3JvbGxCZWhhdmlvcjo6QXV0bzoKKyAgICAgICAgcmV0dXJu
IGFzc29jaWF0ZWRFbGVtZW50LnJlbmRlcmVyKCktPnN0eWxlKCkudXNlU21vb3RoU2Nyb2xsaW5n
KCk7CisgICAgY2FzZSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudDoKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OlNtb290aDoKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JvbGxCZWhhdmlvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFiYWVmODgxZTgwODg1MjRkMDg5OTNiMDljY2IzMjI3YzdiMGZlNTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmgK
QEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFbGVt
ZW50OworCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2aW9yIDogdWludDhfdCB7CisgICAgQXV0byA9
IDAsCisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgKK307CisKK2Jvb2wgdXNlU21vb3RoU2Nyb2xs
aW5nKFNjcm9sbEJlaGF2aW9yLCBFbGVtZW50JiBhc3NvY2lhdGVkRWxlbWVudCk7CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xs
QmVoYXZpb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODk3MWFlOTM3YWFmOGUyOTUyZjdkZjI2MGM3ZWY0ZjRlNjE0ZGYxZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsCkBAIC0w
LDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworZW51bSBTY3JvbGxCZWhhdmlvciB7ICJhdXRvIiwgImluc3RhbnQiLCAic21vb3RoIiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmgKaW5kZXggOTM5Y2Q3
MzQyNWFjN2MzMjkwYzQyZDI1ZDVlOTlkMDhhYTE0YzAwYi4uZjI3NWYyZmJkMWEzZmM4MDFlYmMw
YWU4NmNkYTkxOTk2ODlmNDUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3Jv
bGxJbnRvVmlld09wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9W
aWV3T3B0aW9ucy5oCkBAIC0yMCwxMiArMjAsMTEgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmgiCisjaW5jbHVkZSAiU2Nyb2xsT3B0aW9ucy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEVsZW1lbnQ7Ci0KLXN0cnVjdCBTY3JvbGxJ
bnRvVmlld09wdGlvbnMgeworc3RydWN0IFNjcm9sbEludG9WaWV3T3B0aW9ucyA6IFNjcm9sbE9w
dGlvbnMgewogICAgIE9wdGlvbmFsPFNjcm9sbExvZ2ljYWxQb3NpdGlvbj4gYmxvY2tQb3NpdGlv
biB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6U3RhcnQgfTsKICAgICBPcHRpb25hbDxTY3JvbGxM
b2dpY2FsUG9zaXRpb24+IGlubGluZVBvc2l0aW9uIHsgU2Nyb2xsTG9naWNhbFBvc2l0aW9uOjpO
ZWFyZXN0IH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRv
Vmlld09wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlv
bnMuaWRsCmluZGV4IGNmOWQxZmQ3Njc4NzQzMzk4YTcyYjliN2NhMWVmZmVkOWIxYTJkOTAuLjFi
MjRjNjg2ZmM3MGEwYzNkNDNkZWFlODlkMjA5ZjI0OGE3OWI0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKQEAgLTE3LDggKzE3LDcgQEAKICAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLS8vIEZJWE1FKHdlYmtpdC5vcmcv
Yi8xODgwNDMpOiBTdXBwb3J0IFNjcm9sbEJlaGF2aW9yLgotZGljdGlvbmFyeSBTY3JvbGxJbnRv
Vmlld09wdGlvbnMgeworZGljdGlvbmFyeSBTY3JvbGxJbnRvVmlld09wdGlvbnMgOiBTY3JvbGxP
cHRpb25zIHsKICAgICBbSW1wbGVtZW50ZWRBcz1ibG9ja1Bvc2l0aW9uXSBTY3JvbGxMb2dpY2Fs
UG9zaXRpb24gYmxvY2sgPSAic3RhcnQiOwogICAgIFtJbXBsZW1lbnRlZEFzPWlubGluZVBvc2l0
aW9uXSBTY3JvbGxMb2dpY2FsUG9zaXRpb24gaW5saW5lID0gIm5lYXJlc3QiOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TY3JvbGxPcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE4NjdjNjAxNTBhNTU0MTFjYzBm
MWE3YTA0OWUyYmMxZGMxM2Q5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2Nyb2xsT3B0aW9ucy5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTY3Jv
bGxCZWhhdmlvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTY3JvbGxPcHRp
b25zIHsKKyAgICBPcHRpb25hbDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IgeyBTY3JvbGxCZWhh
dmlvcjo6QXV0byB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2Nyb2xsT3B0aW9ucy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI5ZDZmZjEwODYzZDZmNzU0Mzg4ZTkx
MmY5NDdhOWIyNTZiZjIwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2Nyb2xsT3B0aW9ucy5pZGwKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitkaWN0aW9uYXJ5IFNjcm9sbE9wdGlvbnMgeworICAg
IFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yID0gImF1dG8iOworfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nj
cm9sbFRvT3B0aW9ucy5oCmluZGV4IGNlMWNiYTFjN2MwMTA0MDNiZGIzZTk5NDQ2ZjY1NmY2MDQ0
MTZkN2YuLmY1Nzc0ZDQ0YWVmMDRhODVlYjE0NzIxN2U3ZmFhYjg3MmYyNDNkOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaApAQCAtMjgsMTQgKzI4LDIxIEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSAiU2Nyb2xsT3B0aW9ucy5oIgogI2luY2x1ZGUgPGNtYXRoPgog
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVj
dCBTY3JvbGxUb09wdGlvbnMgeworc3RydWN0IFNjcm9sbFRvT3B0aW9ucyA6IFNjcm9sbE9wdGlv
bnMgewogICAgIE9wdGlvbmFsPGRvdWJsZT4gbGVmdDsKICAgICBPcHRpb25hbDxkb3VibGU+IHRv
cDsKKworICAgIFNjcm9sbFRvT3B0aW9ucygpID0gZGVmYXVsdDsKKyAgICBTY3JvbGxUb09wdGlv
bnMoZG91YmxlIHgsIGRvdWJsZSB5KQorICAgICAgICA6IGxlZnQoeCkKKyAgICAgICAgLCB0b3Ao
eSkKKyAgICB7IH0KIH07CiAKIGlubGluZSBkb3VibGUgbm9ybWFsaXplTm9uRmluaXRlVmFsdWVP
ckZhbGxCYWNrVG8oT3B0aW9uYWw8ZG91YmxlPiB2YWx1ZSwgZG91YmxlIGZhbGxiYWNrVmFsdWUp
CkBAIC00Nyw3ICs1NCw3IEBAIGlubGluZSBkb3VibGUgbm9ybWFsaXplTm9uRmluaXRlVmFsdWVP
ckZhbGxCYWNrVG8oT3B0aW9uYWw8ZG91YmxlPiB2YWx1ZSwgZG91YmxlCiAvLyBGSVhNRShodHRw
czovL3dlYmtpdC5vcmcvYi84ODMzOSk6IENvbnNpZGVyIHVzaW5nIEZsb2F0UG9pbnQgb3IgRG91
YmxlUG9pbnQgZm9yIGZhbGxiYWNrIGFuZCByZXR1cm4gdmFsdWVzLgogaW5saW5lIFNjcm9sbFRv
T3B0aW9ucyBub3JtYWxpemVOb25GaW5pdGVDb29yZGluYXRlc09yRmFsbEJhY2tUbyhjb25zdCBT
Y3JvbGxUb09wdGlvbnMmIHZhbHVlLCBkb3VibGUgeCwgZG91YmxlIHkpCiB7Ci0gICAgU2Nyb2xs
VG9PcHRpb25zIG9wdGlvbnM7CisgICAgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMgPSB2YWx1ZTsK
ICAgICBvcHRpb25zLmxlZnQgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tUbyh2
YWx1ZS5sZWZ0LCB4KTsKICAgICBvcHRpb25zLnRvcCA9IG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVl
T3JGYWxsQmFja1RvKHZhbHVlLnRvcCwgeSk7CiAgICAgcmV0dXJuIG9wdGlvbnM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKaW5kZXggNTEwYmMwNzFhNjgxZGNmMGM1Zjgz
OTdlMzJmYzdmZWQ1OGRkMTZjZi4uMmI5YjU1NDEyMmFhN2U5MmI4ZTFkNGQ1MjM1MjZjNDg1NTZm
YWMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbApAQCAtMjYsOCAr
MjYsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQz
KTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsVG9PcHRpb25zIHsK
K2RpY3Rpb25hcnkgU2Nyb2xsVG9PcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7CiAgICAgdW5yZXN0
cmljdGVkIGRvdWJsZSBsZWZ0OwogICAgIHVucmVzdHJpY3RlZCBkb3VibGUgdG9wOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCA2MTIyODgyOTVjMjdmY2IyNzQ0MDc5MDgxOTBh
OTZhOTc0MjRiY2EzLi5iMGYwMTFlNDJiMmIyZDJhYmNiMzlmMDNlZGM3NTg0YzAwNTgwZTQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC02MTgsNiArNjE4LDkgQEAgc3ludGhldGlj
RWRpdGluZ0NvbW1hbmRzRW5hYmxlZDoKIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAg
IGluaXRpYWw6IGZhbHNlCiAKK0NTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6CisgIGlu
aXRpYWw6IGZhbHNlCisKIGlucHV0RXZlbnRzRW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDQyOWVlZTlhOTY1M2ZkYzRmZjdlMDk4ODNiYzRhMDg4
ZmQxY2NlZmUuLjFhYmJhMTlkNjU0ZWY2MDBkNGNlNzdjNWNiMmIzYzZhMjUyOTgzNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0yNDgsNyArMjQ4LDE0IEBAIGJvb2wgQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVh
JiBzY3JvCiAKICAgICBib29sIGluQmFja0ZvcndhcmRDYWNoZSA9IGZyYW1lVmlldy0+ZnJhbWUo
KS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5C
YWNrRm9yd2FyZENhY2hlOwogICAgIGJvb2wgaW5Qcm9ncmFtbWF0aWNTY3JvbGwgPSBzY3JvbGxh
YmxlQXJlYS5jdXJyZW50U2Nyb2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYzsK
LSAgICBpZiAoaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5CYWNrRm9yd2FyZENhY2hlKQorICAg
IGJvb2wgYW5pbWF0ZWQgPSBmYWxzZTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
YW5pbWF0ZWQgPSBzY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKCkgPT0g
U2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGg7CisjZW5kaWYKKworICAgIC8vIFRoZSBzY3JvbGwg
cG9zaXRpb24gb2YgYW5pbWF0ZWQgc2Nyb2xsaW5nIHdpbGwgYmUgc2V0IGZyb20gdGhlIHRoZSBV
SSBwcm9jZXNzLiBTbyBpdCBzaG91bGRuJ3QgYmUgc2V0IG5vdy4KKyAgICBpZiAoIWFuaW1hdGVk
ICYmIChpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGUpKQogICAgICAg
ICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlELCBz
Y3JvbGxQb3NpdGlvbiwgeyB9LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiAKICAgICAvLyBJZiB0aGlzIGZyYW1lIHZpZXcncyBk
b2N1bWVudCBpcyBiZWluZyBwdXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB3ZSBkb24n
dCB3YW50IHRvIHVwZGF0ZSBvdXIKQEAgLTI2MCw3ICsyNjcsMTQgQEAgYm9vbCBBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFy
ZWEmIHNjcm8KICAgICBpZiAoIXN0YXRlTm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgc3RhdGVOb2RlLT5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwg
aW5Qcm9ncmFtbWF0aWNTY3JvbGwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYg
KGFuaW1hdGVkKQorICAgICAgICBzY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1
cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5VSU5hdGl2ZUFuaW1hdGlvbik7CisgICAgZWxzZQor
ICAgICAgICBzY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhh
dmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworI2VuZGlmCisKKyAgICBzdGF0ZU5vZGUtPnNl
dFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Nj
cm9sbCwgYW5pbWF0ZWQpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yOTEsNiArMzA1LDMy
IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2NoZWR1bGVVcGRhdGVTY3JvbGxQ
b3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2NyCiAgICAgbV91cGRhdGVOb2RlU2Nyb2xsUG9zaXRp
b25UaW1lci5zdGFydE9uZVNob3QoMF9zKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Cit2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmICghbV9wYWdl
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBmcmFtZVZpZXcgPSBmcmFtZVZpZXdGb3JT
Y3JvbGxpbmdOb2RlKG5vZGVJRCk7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChub2RlSUQgPT0gZnJhbWVWaWV3LT5zY3JvbGxpbmdOb2RlSUQoKSkgewor
ICAgICAgICBpZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAgICAgICAgIGZy
YW1lVmlldy0+c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5v
dEluQW5pbWF0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIE92ZXJmbG93
LXNjcm9sbCBhcmVhLgorICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IGZyYW1lVmlldy0+
c2Nyb2xsYWJsZUFyZWFGb3JTY3JvbGxMYXllcklEKG5vZGVJRCkpIHsKKyAgICAgICAgaWYgKCFp
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCisgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+
c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0
aW9uKTsKKyAgICB9Cit9CisjZW5kaWYKKwogdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Ojp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGxUaW1lckZpcmVkKCkKIHsKICAg
ICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwobV9zY2hlZHVsZWRTY3JvbGxV
cGRhdGUubm9kZUlELCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5zY3JvbGxQb3NpdGlvbiwgbV9z
Y2hlZHVsZWRTY3JvbGxVcGRhdGUubGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbFR5cGU6OlVz
ZXIsIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLnVwZGF0ZUxheWVyUG9zaXRpb25BY3Rpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5oCmluZGV4IDliZTY5YWFmYjFlMjg1ZjhhNTUzOTI4OTVjZGU2MzRiY2Mx
NmY3MTEuLjNkZTAxY2MyODk2YTUwZDRlNjQ4NWNhYTFkMmRjYzc3ZDFkYzA2MTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmgKQEAgLTUyLDYgKzUyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5n
U3RhdGVUcmVlUHJvcGVydGllc0NoYW5nZWQoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2NoZWR1bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91
dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MoU2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzcyk7CisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNp
Z25lZCBob3Jpem9udGFsSW5kZXgsIHVuc2lnbmVkIHZlcnRpY2FsSW5kZXgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZS5jcHAKaW5kZXggNzE3YmZjMmE1NWNjMThjYjM4Y2RiNDRlZGIwZWY1NDM1ODdm
MmFlMC4uNjI4NjhiNDdkMWE5YmZjNzBhMzExOTM3YzA5ZTFkMDUxNzZjM2E0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGUuY3BwCkBAIC01Niw2ICs1Niw3IEBAIFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRl
U2NyCiAjZW5kaWYKICAgICAsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKHN0YXRlTm9kZS5z
Y3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoKSkKICAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKHN0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSkKKyAgICAsIG1fcmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKHN0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbldpdGhBbmltYXRpb24oKSkKICAgICAsIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMoc3Rh
dGVOb2RlLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7CiAgICAgaWYgKGhhc0NoYW5nZWRQ
cm9wZXJ0eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0yMTksMTAgKzIyMCwxMSBAQCB2b2lk
IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJz
KGNvbnN0IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3JvbGxhYmxlQXJl
YVBhcmFtcyk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlvbikKIHsKICAgICBtX3JlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsOworICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5p
bWF0aW9uID0gcmVxdWVzdGVkV2l0aEFuaW1hdGlvbjsKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQo
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQogCkBAIC0zMTQsNiArMzE2LDkgQEAgdm9pZCBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRz
LCBTY3JvbGxpbmdTdGF0ZVQKICAgICBpZiAobV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVz
dGVkIHNjcm9sbCBwb3NpdGlvbiByZXByZXNlbnRzIHByb2dyYW1tYXRpYyBzY3JvbGwiLCBtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiAKKyAg
ICBpZiAobV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisgICAgICAgIHRz
LmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB3aXRoIGFuaW1hdGlvbiIs
IG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKTsKKwogICAgIGlmICghbV9w
YXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgdHMuZHVtcFBy
b3BlcnR5KCJwYXJlbnQgcmVsYXRpdmUgc2Nyb2xsYWJsZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2
ZVNjcm9sbGFibGVSZWN0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAppbmRleCA0OTY3YTZjZTgx
MmYyYmEzYjJmYmYwZDkxMmEwMzU3MTc4ZThmMTcxLi5hZDU2ZDI5ZDAzZjZlMTZhNWI2ZTMxNjli
ODlkZmRhNjY1NjcwZjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaApAQCAtMTExLDcgKzExMSw4
IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsgfQogICAgIGJv
b2wgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkg
Y29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGw7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwpOworICAgIGJvb2wgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb247IH0K
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgcmVx
dWVzdGVkV2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKIAogICAgIGJvb2wgaXNNb25pdG9yaW5nV2hl
ZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzOyB9CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJc01vbml0b3JpbmdXaGVlbEV2ZW50cyhib29sKTsK
QEAgLTE3MSw2ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVy
cyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKIAogICAgIGJvb2wgbV9yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24geyBmYWxzZSB9OwogICAg
IGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggMTUxYWMyOWY4
YTUzY2RkMzg3YzkzYzQ3NWE1ZGVkMzZjYzZkMWM0Zi4uYWU1OWYyZDU3ZjU1MGYyZDVjMjIyYzIz
MmIwYWY1MGJmM2Y1ZDI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaApAQCAtODMsNyArODMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYs
IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uOjpTeW5jKSA9IDA7CiAKICAgICAvLyBDYWxsZWQgZm9yIHJlcXVlc3RlZCBzY3JvbGwgcG9z
aXRpb24gdXBkYXRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0
c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9zaXRp
b24qLywgYm9vbCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLykgeyB9CisgICAgdmly
dHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlE
LCBjb25zdCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsKi8sIGJvb2wgLyp3aXRoQW5pbWF0aW9uKi8pIHsgfQorCisgICAg
Ly8gQ2FsbGVkIGZvciBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cyB1cGRhdGVzLgorICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENo
YW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgLyppc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MqLykgeyB9CiAKICAgICAvLyBEZWxlZ2F0ZWQgc2Nyb2xsaW5nL3pvb21pbmcgaGFz
IGNhdXNlZCB0aGUgdmlld3BvcnQgdG8gY2hhbmdlLCBzbyB1cGRhdGUgdmlld3BvcnQtY29uc3Ry
YWluZWQgbGF5ZXJzCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYWluRnJhbWVWaWV3cG9ydENo
YW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQsIGRvdWJsZSBzY2Fs
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggNzNkY2EyOGVmMWUzYzJkNTVhOTUzZmM1
ZTQwNjc2YzM3MWFlZDllNi4uMzM2OWU3ZTEwY2RmZGZlNWMwOWI3NDRiMzRmNjg4NjNmODY3Y2Jk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBT
Y3JvbGxpbmdTdGF0ZU5vCiB7CiAgICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
JiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU+KHN0YXRlTm9kZSk7CiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bikpCi0gICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbGlu
Z1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxpbmdTdGF0ZU5vZGUu
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCksIHNj
cm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSk7
CiAKICAgICBtX2lzRmlyc3RDb21taXQgPSBmYWxzZTsKIH0KQEAgLTE1NywxMSArMTU3LDIwIEBA
IHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6
ZSYgZGVsdGEsIFNjcm9sbFBvc2l0aW9uCiAgICAgc2Nyb2xsVG8oY3VycmVudFNjcm9sbFBvc2l0
aW9uKCkgKyBkZWx0YSwgU2Nyb2xsVHlwZTo6VXNlciwgY2xhbXApOwogfQogCi12b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
biwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wKQordm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYg
cG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcCBjbGFt
cCwgYm9vbCBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQogewotICAgIGlmIChwb3NpdGlvbiA9PSBt
X2N1cnJlbnRTY3JvbGxQb3NpdGlvbikKKyAgICBpZiAocG9zaXRpb24gPT0gbV9jdXJyZW50U2Ny
b2xsUG9zaXRpb24pIHsKKyAgICAgICAgLy8gU2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRo
ZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgaWYgKHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKCkg
JiYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbikKKyAgICAgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5z
Y3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcywgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFj
dGlvbjo6U3luYyk7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZUlz
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShzY3JvbGxpbmdOb2RlSUQoKSwgZmFs
c2UpOworICAgICAgICBzZXRSZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihmYWxzZSk7CiAgICAg
ICAgIHJldHVybjsKKyAgICB9CiAKKyAgICAvLyBJZiBkdXJpbmcgYSBzY3JvbGwgYW5pbWF0aW9u
LCBuZWVkIHRvIHN0b3AgaXQgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9uZS4KKyAgICBpZiAoc2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpKQorICAgICAgICBzZXROZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uKHRydWUpOwogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJv
Z3JhbW1hdGljU2Nyb2xsKHNjcm9sbFR5cGUgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsK
ICAgICAKICAgICBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IGFkanVzdGVkU2Nyb2xsUG9zaXRp
b24ocG9zaXRpb24sIGNsYW1wKTsKQEAgLTE3MSw2ICsxODAsOCBAQCB2b2lkIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Ny
b2xsVHlwZQogICAgIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CiAg
ICAgY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogCisgICAgc2V0TmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbihmYWxzZSk7CisgICAgc2V0UmVxdWVzdFNjcm9sbFdpdGhBbmlt
YXRpb24oZmFsc2UpOwogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1h
dGljU2Nyb2xsKGZhbHNlKTsKIH0KIApAQCAtMTc5LDggKzE5MCwxMCBAQCB2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKICAgICBy
ZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCk7CiAgICAgcmVwb3NpdGlvblJlbGF0ZWRMYXllcnMo
KTsKIAotICAgIHNjcm9sbGluZ1RyZWUoKS5ub3RpZnlSZWxhdGVkTm9kZXNBZnRlclNjcm9sbFBv
c2l0aW9uQ2hhbmdlKCp0aGlzKTsKLSAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5v
ZGVEaWRTY3JvbGwoKnRoaXMpOworICAgIGlmICghcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24o
KSkgeworICAgICAgICBzY3JvbGxpbmdUcmVlKCkubm90aWZ5UmVsYXRlZE5vZGVzQWZ0ZXJTY3Jv
bGxQb3NpdGlvbkNoYW5nZSgqdGhpcyk7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcyk7CisgICAgfQogfQogCiBib29sIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxQb3NpdGlvbkFuZExheW91dFZpZXdwb3J0TWF0Y2goY29u
c3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UmVjdD4pCkBAIC0yNjYsNiAr
Mjc5LDM1IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVz
KFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAgdHMuZHVtcFByb3BlcnR5KCJz
Y3JvbGxhYmxlIGFyZWEgcGFyYW1ldGVycyIsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKTsK
IH0KIAordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdFNjcm9sbFdp
dGhBbmltYXRpb24oYm9vbCB3aXRoQW5pbWF0aW9uKQoreworICAgIG1fcmVxdWVzdFNjcm9sbFdp
dGhBbmltYXRpb24gPSB3aXRoQW5pbWF0aW9uOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb247Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9vbCBpblByb2dy
ZXNzKQoreworICAgIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGluUHJvZ3Jlc3M7Cit9
CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3M7
Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJl
bnRTY3JvbGxBbmltYXRpb24oYm9vbCBzdG9wKQoreworICAgIG1fbmVlZHNTdG9wQ3VycmVudFNj
cm9sbEFuaW1hdGlvbiA9IHN0b3A7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdAoreworICAgIHJldHVy
biBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb247Cit9CiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmgKaW5kZXggNGNiZjRkMWFmMGRjZjQ3MDEzNGY0YjcyNjRmMjBkYjdiOTVlYzlkZC4uOGRm
MWRkNjUxNDZiZTY3ZDY4YjgwMTM0YWJiOTk5MzhhZmJjYWFiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICBGbG9hdFNpemUgc2Nyb2xsRGVsdGFT
aW5jZUxhc3RDb21taXQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbiAt
IG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBUaGVzZSBhcmUgaW1w
ZXJhdGl2ZTsgdGhleSBhZGp1c3QgdGhlIHNjcm9sbGluZyBsYXllcnMuCi0gICAgdm9pZCBzY3Jv
bGxUbyhjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNj
cm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcyk7
CisgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9s
bFR5cGU6OlVzZXIsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpU
b0NvbnRlbnRFZGdlcywgYm9vbCBuZWVkU3luY1Njcm9sbFBvc2l0aW9uID0gZmFsc2UpOwogICAg
IHZvaWQgc2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNj
cm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzKTsKIAogICAgIHZvaWQgd2FzU2Nyb2xs
ZWRCeURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgT3B0aW9u
YWw8RmxvYXRSZWN0PiBvdmVycmlkZUxheW91dFZpZXdwb3J0ID0geyB9LCBTY3JvbGxpbmdMYXll
clBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYyk7CkBA
IC05MSw2ICs5MSwxMyBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYg
c2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvbnRhaW5lckxh
eWVyOyB9CiAgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgc2Nyb2xsZWRDb250ZW50c0xh
eWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXI7IH0KIAorICAgIHZv
aWQgc2V0UmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oYm9vbCk7CisgICAgYm9vbCByZXF1ZXN0
U2Nyb2xsV2l0aEFuaW1hdGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzcyhib29sKTsKKyAgICBib29sIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSBj
b25zdDsKKyAgICB2b2lkIHNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oYm9vbCk7
CisgICAgYm9vbCBuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKCkgY29uc3Q7CisKIHBy
b3RlY3RlZDoKICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdUcmVlJiwg
U2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKQEAgLTE0Nyw2ICsxNTQsOSBA
QCBwcml2YXRlOgogI2VuZGlmCiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xs
YWJsZUFyZWFQYXJhbWV0ZXJzOwogICAgIGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9Owor
ICAgIGJvb2wgbV9yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbiB7IGZhbHNlIH07CisgICAgYm9v
bCBtX3Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9uZWVk
c1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uIHsgZmFsc2UgfTsKIAogICAgIExheWVyUmVwcmVz
ZW50YXRpb24gbV9zY3JvbGxDb250YWluZXJMYXllcjsKICAgICBMYXllclJlcHJlc2VudGF0aW9u
IG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVz
LmgKaW5kZXggODkxMTQ5MTAzZDM2Y2UzYWE2MzQ0NTAxMjhiYzg5YzQ0MDJmYmE4Yy4uNzE0NzY5
NjQ0MjlmNDk2NjQ3YzFiMDczMTYxZjVkZDAyZTJmMzAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxUeXBlcy5oCkBAIC01NCw2ICs1NCwyMSBAQCBlbnVtIGNsYXNzIFNjcm9sbFBvc2l0
aW9uQ2xhbXAgOiB1aW50OF90IHsKICAgICBUb0NvbnRlbnRFZGdlcywKIH07CiAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorZW51bSBjbGFzcyBT
Y3JvbGxCZWhhdmlvclR5cGUgOiB1aW50OF90IHsKKyAgICBJbnN0YW50LAorICAgIFNtb290aCwK
K307CisjZW5kaWYKKworZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvclN0YXR1cyA6IHVpbnQ4X3Qg
eworICAgIE5vdEluQW5pbWF0aW9uLAorICAgIFdlYkFuaW1hdGlvblRpbWVyU3RhcnRlZCwKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIElu
VUlOYXRpdmVBbmltYXRpb24sCisjZW5kaWYKK307CisKIGlubGluZSBTY3JvbGxEaXJlY3Rpb24g
bG9naWNhbFRvUGh5c2ljYWwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wg
aXNWZXJ0aWNhbCwgYm9vbCBpc0ZsaXBwZWQpCiB7CiAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggYjEyNmE5YzJiNzA2YTEx
NzM0NmM1NzQwNzg1MWUzODU1ODJjYzk2OC4uNmMxNTgyMGEyNDhkOTIzMDRlYWQ5NjAwOGYwMzNj
MDY5ZWNjNTY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTQ2
MSwxMCArNDYxLDE0IEBAIHZvaWQgU2Nyb2xsVmlldzo6Y29tcGxldGVVcGRhdGVzQWZ0ZXJTY3Jv
bGxUbyhjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICB1cGRhdGVDb21wb3NpdGluZ0xh
eWVyc0FmdGVyU2Nyb2xsaW5nKCk7CiB9CiAKLXZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uKQordm9pZCBTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRp
b24sIGJvb2wvKiBhbmltYXRlZCovKQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcs
IHN0cmVhbSA8PCAiU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24gIiA8PCBzY3JvbGxQb3Np
dGlvbik7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBl
OjpJbnN0YW50KTsKKyNlbmRpZgorCiAgICAgaWYgKHByb2hpYml0c1Njcm9sbGluZygpKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTQ3NSwxMyArNDc5LDE0IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0
U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uKQogCiAg
ICAgU2Nyb2xsUG9zaXRpb24gbmV3U2Nyb2xsUG9zaXRpb24gPSAhZGVsZWdhdGVzU2Nyb2xsaW5n
KCkgPyBhZGp1c3RTY3JvbGxQb3NpdGlvbldpdGhpblJhbmdlKHNjcm9sbFBvc2l0aW9uKSA6IHNj
cm9sbFBvc2l0aW9uOwogCi0gICAgaWYgKCghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgfHwgY3VycmVu
dFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKSAmJiBuZXdTY3JvbGxQb3NpdGlvbiA9
PSB0aGlzLT5zY3JvbGxQb3NpdGlvbigpKQorICAgIGlmICgoIWRlbGVnYXRlc1Njcm9sbGluZygp
IHx8IGN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6VXNlcikgJiYgIWlzU2Nyb2xs
SW5Qcm9ncmVzcygpICYmIG5ld1Njcm9sbFBvc2l0aW9uID09IHRoaXMtPnNjcm9sbFBvc2l0aW9u
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRh
dGUobmV3U2Nyb2xsUG9zaXRpb24pKQogICAgICAgICByZXR1cm47CiAKICAgICB1cGRhdGVTY3Jv
bGxiYXJzKG5ld1Njcm9sbFBvc2l0aW9uKTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhT
Y3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwogfQogCiBib29sIFNjcm9sbFZp
ZXc6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBn
cmFudWxhcml0eSkKQEAgLTUzOCw3ICs1NDMsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNj
cm9sbGJhcnMoY29uc3QgU2Nyb2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICAKICAg
ICBpZiAoIW1hbmFnZXNTY3JvbGxiYXJzKCkpIHsKICAgICAgICAgaWYgKHNjcm9sbE9yaWdpbkNo
YW5nZWQoKSkgewotICAgICAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0
aG91dEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oZGVzaXJlZFBvc2l0aW9uKSk7
CisgICAgICAgICAgICBpZiAoIXJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShkZXNpcmVkUG9z
aXRpb24pKQorICAgICAgICAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdp
dGhvdXRBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikp
OwogICAgICAgICAgICAgcmVzZXRTY3JvbGxPcmlnaW5DaGFuZ2VkKCk7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDQzMDE2
MGQ2YWUyZmRkZjc1MGQwOWRiYTVkNDBhNWU3ZjcwN2U1ZDQuLjUzOTgxMDgzOThlODVjZTQ3ZDQ3
Nzk1YzgzZDIzNTE5OWY3ZGUzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgK
QEAgLTI2MCw3ICsyNjAsNyBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsUG9zaXRpb24gY2FjaGVkU2Ny
b2xsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNjcm9sbFBvc2l0aW9uOyB9CiAK
ICAgICAvLyBGdW5jdGlvbnMgZm9yIHNjcm9sbGluZyB0aGUgdmlldy4KLSAgICB2aXJ0dWFsIHZv
aWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1h
dGVkID0gZmFsc2UpOwogICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYgcykgeyByZXR1
cm4gc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24oKSArIHMpOyB9CiAKICAgICAvLyBU
aGlzIGZ1bmN0aW9uIHNjcm9sbHMgYnkgbGluZXMsIHBhZ2VzIG9yIHBpeGVscy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCA5NmQwZjMwMGIzNDE4ZTYw
ODIxZGEyZGEyYTY0MTg5YzRkZWUwYjNjLi5jZjM5ZGFmYmFhOTlmOTFiOTY5MTQxMDcyMTdiZDdj
YjU4MGE3YjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3Bw
CkBAIC03MSw2ICs3MSw5IEBAIFNjcm9sbGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSgpCiAgICAg
LCBtX3Njcm9sbE9yaWdpbkNoYW5nZWQoZmFsc2UpCiAgICAgLCBtX2N1cnJlbnRTY3JvbGxUeXBl
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihTY3JvbGxUeXBlOjpVc2VyKSkKICAgICAsIG1fc2Nyb2xs
U2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoZmFsc2UpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICAsIG1fY3VycmVudFNjcm9sbEJlaGF2aW9y
VHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KSkK
KyNlbmRpZgogewogfQogCkBAIC0xMDQsNiArMTA3LDExIEBAIGZsb2F0IFNjcm9sbGFibGVBcmVh
OjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250ZW50KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9y
aWVuCiAgICAgcmV0dXJuIHN0ZXA7CiB9CiAKK2Jvb2wgU2Nyb2xsYWJsZUFyZWE6OmlzU2Nyb2xs
SW5Qcm9ncmVzcygpCit7CisgICAgcmV0dXJuIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVz
ICE9IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbjsKK30KKwogYm9vbCBTY3Jv
bGxhYmxlQXJlYTo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyKQogewogICAgIFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uOwpAQCAtMjIxLDE2ICsyMjksMTUgQEAgYm9vbCBTY3JvbGxh
YmxlQXJlYTo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIHRvdWNo
RXZlbnQpCiAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIEludGVybmFscyBmb3IgdGVzdGluZy4K
IHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21JbnRlcm5hbHMoY29uc3Qg
U2Nyb2xsT2Zmc2V0JiBvZmZzZXQpCiB7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVw
ZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpCisgICAgICAgIHJldHVybjsK
KwogICAgIHNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24ob2Zmc2V0KTsKIH0KIAogdm9pZCBT
Y3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUFuaW1hdGlvbihjb25zdCBTY3JvbGxP
ZmZzZXQmIG9mZnNldCkKIHsKLSAgICBTY3JvbGxQb3NpdGlvbiBwb3NpdGlvbiA9IHNjcm9sbFBv
c2l0aW9uRnJvbU9mZnNldChvZmZzZXQpOwotICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25V
cGRhdGUocG9zaXRpb24pKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzY3JvbGxQb3NpdGlvbkNo
YW5nZWQocG9zaXRpb24pOworICAgIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZChzY3JvbGxQb3NpdGlv
bkZyb21PZmZzZXQob2Zmc2V0KSk7CiB9CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OndpbGxTdGFy
dExpdmVSZXNpemUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5k
ZXggZDc0MzhjMTVjZDUxZDY2NjBjMGY3MzhhYzJlOTdmYWJmNWFiZGMyMy4uMTRiNjEwYmVhODM5
NTk3YWU1MDdjYTA3NDU2OTY5NWVjZWI4ZDZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5oCkBAIC02Miw2ICs2MiwxMCBAQCBpbmxpbmUgaW50IG9mZnNldEZvck9y
aWVudGF0aW9uKFNjcm9sbE9mZnNldCBvZmZzZXQsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVu
dAogCiBjbGFzcyBTY3JvbGxhYmxlQXJlYSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTY3JvbGxh
YmxlQXJlYT4gewogcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTY3JvbGxJblBy
b2dyZXNzKCk7CisgICAgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgY3VycmVudFNjcm9sbEJlaGF2aW9y
U3RhdHVzKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXM7IH0K
KyAgICB2b2lkIHNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzIHN0
YXR1cykgeyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyA9IHN0YXR1czsgfQorCiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxh
cml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Ny
b2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFt
cGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0
V2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwgZmxvYXQgb2Zmc2V0KTsKQEAg
LTI0Miw2ICsyNDYsMTEgQEAgcHVibGljOgogICAgIFNjcm9sbFR5cGUgY3VycmVudFNjcm9sbFR5
cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTY3JvbGxUeXBlPihtX2N1cnJlbnRTY3Jv
bGxUeXBlKTsgfQogICAgIHZvaWQgc2V0Q3VycmVudFNjcm9sbFR5cGUoU2Nyb2xsVHlwZSBzY3Jv
bGxUeXBlKSB7IG1fY3VycmVudFNjcm9sbFR5cGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Ny
b2xsVHlwZSk7IH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpCisgICAgU2Nyb2xsQmVoYXZpb3JUeXBlIGN1cnJlbnRTY3JvbGxCZWhhdmlvclR5
cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTY3JvbGxCZWhhdmlvclR5cGU+KG1fY3Vy
cmVudFNjcm9sbEJlaGF2aW9yVHlwZSk7IH0KKyAgICB2b2lkIHNldEN1cnJlbnRTY3JvbGxCZWhh
dmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlIHNjcm9sbEJlaGF2aW9yVHlwZSkgeyBtX2N1cnJl
bnRTY3JvbGxCZWhhdmlvclR5cGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Nyb2xsQmVoYXZp
b3JUeXBlKTsgfQorI2VuZGlmCisKICAgICBib29sIHNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZTsgfQog
ICAgIHZvaWQgc2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoYm9vbCBzaG91bGRDbGVh
cikgeyBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlID0gc2hvdWxkQ2xlYXI7IH0KIApA
QCAtMzc4LDYgKzM4Nyw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jdXJyZW50VmVydGlj
YWxTbmFwUG9pbnRJbmRleCB7IDAgfTsKICNlbmRpZgogCisgICAgU2Nyb2xsQmVoYXZpb3JTdGF0
dXMgbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMgeyBTY3JvbGxCZWhhdmlvclN0YXR1czo6
Tm90SW5BbmltYXRpb24gfTsKKwogICAgIC8vIFRoZXJlIGFyZSA4IHBvc3NpYmxlIGNvbWJpbmF0
aW9ucyBvZiB3cml0aW5nIG1vZGUgYW5kIGRpcmVjdGlvbi4gU2Nyb2xsIG9yaWdpbiB3aWxsIGJl
IG5vbi16ZXJvIGluIHRoZSB4IG9yIHkgYXhpcwogICAgIC8vIGlmIHRoZXJlIGlzIGFueSByZXZl
cnNlZCBkaXJlY3Rpb24gb3Igd3JpdGluZy1tb2RlLiBUaGUgY29tYmluYXRpb25zIGFyZToKICAg
ICAvLyB3cml0aW5nLW1vZGUgLyBkaXJlY3Rpb24gICAgIHNjcm9sbE9yaWdpbi54KCkgc2V0ICAg
IHNjcm9sbE9yaWdpbi55KCkgc2V0CkBAIC00MDMsNiArNDE0LDkgQEAgcHJpdmF0ZToKICAgICB1
bnNpZ25lZCBtX3Njcm9sbE9yaWdpbkNoYW5nZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fY3VycmVu
dFNjcm9sbFR5cGUgOiAxOyAvLyBTY3JvbGxUeXBlCiAgICAgdW5zaWduZWQgbV9zY3JvbGxTaG91
bGRDbGVhckxhdGNoZWRTdGF0ZSA6IDE7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKKyAgICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlv
clR5cGUgOiAxOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGY4ZDNhNDkyNWFkOTAxMmMxNWIzMGNi
YzM2MDI3ODkzY2ZmMmVkMDguLjZkMWY4NTdjODg1ZWRjMjFiNmE0M2YyNjJiOWU4ODBmMjM1NzFm
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC01ODEsMjAgKzU4
MSwyOCBAQCBzdGF0aWMgdm9pZCBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKFJlbmRlckxheWVyJiBs
YXllcikKICAgICBsYXllci5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRv
cihwYWdlLndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNl
dFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVm
dCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBj
bGFtcGluZykKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAg
ICAgICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAg
bGF5ZXIoKS0+c2Nyb2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcp
OworICAgIGxheWVyKCktPnNjcm9sbFRvWFBvc2l0aW9uKG5ld0xlZnQsIHNjcm9sbFR5cGUsIGFu
aW1hdGVkLCBjbGFtcGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3AoaW50
IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykK
K3ZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3Jv
bGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBp
ZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAgICAgICByZXR1cm47CiAgICAg
c2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Nyb2xsVG9Z
UG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgbGF5ZXIoKS0+c2Ny
b2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwor
fQorCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRp
b24mIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9s
bENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkgfHwgIWxh
eWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKCpsYXll
cigpKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBl
LCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCiB2b2lkIFJlbmRlckJveDo6YWJzb2x1dGVSZWN0
cyhWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRP
ZmZzZXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggNDk1NDgx
NDA1NGE2MDE3MTA4ZDY1NDkxOTUyYTM1YWY4YzJlMzAyYi4uMjIxOTI4MDU0YmViOWJlMTRkMTZi
MDEzYmM4ZGJhZDcyNjRmYWQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApA
QCAtMjQ3LDggKzI0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBzY3JvbGxUb3AoKSBj
b25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwg
aW50IHNjcm9sbEhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0
KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3Jv
bGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3Jv
bGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRl
ZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAog
ICAgIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9tYXJn
aW5Cb3gudG9wKCk7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94LmJvdHRvbSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA1ODg0OThjZGU1NjE4NTU0OTkyZDVkOWU3OTdmOTI5
YmQxNTkzMDI4Li4yMTY1YTkwYTE3MTAyMzA2MDdkZTBkYTlhOTFjNDcxZTY2ZjAyNjQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI1NzYsMTYgKzI1NzYs
MjQgQEAgdm9pZCBSZW5kZXJMYXllcjo6YXBwbHlQb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb25JZk5l
ZWRlZCgpCiAgICAgbV9wb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb24gPSBXVEY6Om51bGxvcHQ7CiB9
CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBl
IHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5kZXJMYXllcjo6
c2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmlt
YXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgU2Nyb2xsUG9zaXRpb24gcG9z
aXRpb24oeCwgbV9zY3JvbGxQb3NpdGlvbi55KCkpOwotICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9s
bE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAg
ICBzY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBp
bmcpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Ny
b2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVy
TGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJv
b2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIFNjcm9sbFBvc2l0
aW9uIHBvc2l0aW9uKG1fc2Nyb2xsUG9zaXRpb24ueCgpLCB5KTsKLSAgICBzY3JvbGxUb09mZnNl
dChzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGlu
Zyk7CisgICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgYW5pbWF0ZWQs
IGNsYW1waW5nKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBh
bmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgaWYgKGFuaW1hdGVkKQor
ICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0
aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIGVsc2UKKyAgICAgICAg
c2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xs
VHlwZSwgY2xhbXBpbmcpOwogfQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Ny
b2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjU5
NSwyMyArMjYwMyw2MiBAQCBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zm
c2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjbwogCiB2b2lkIFJlbmRlckxh
eWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Ny
b2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJl
bnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRp
ZgorCiAgICAgU2Nyb2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBT
Y3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCkg
OiBzY3JvbGxPZmZzZXQ7Ci0gICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Ny
b2xsT2Zmc2V0KCkpCisgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xs
T2Zmc2V0KCkpIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQorICAgICAgICAvLyBJZiBVSVNjcm9sbFZpZXcgaXMgcGVyZm9ybWluZyBhIHNjcm9s
bCBhbmltYXRpb24sIHRoZSBzY3JvbGwgb2Zmc2V0IG9mIHRoZSBXZWIgcHJvY2VzcyBtaWdodCBi
ZSBvdmVycmlkZGVuLgorICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGNhbGwgcmVxdWVzdFNjcm9s
bFBvc2l0aW9uVXBkYXRlIGhlcmUgYW5kIGxldCBpdCBiZSBjaGVja2VkIG9uIHRoZSBVSSBwcm9j
ZXNzLgorICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIG9mZnNldCBvbiB0aGUgVUkgcHJvY2VzcyBp
cyBkaWZmZXJlbnQsIHRoZSBjb3JyZWN0IHNjcm9sbCBvZmZzZXQgbmVlZHMgdG8gc3luYyBiYWNr
IHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0
YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJblVJTmF0aXZlQW5pbWF0aW9uKQorICAg
ICAgICAgICAgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9m
ZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAg
IH0KIAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsK
ICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKIAogICAgIGJvb2wgaGFuZGxl
ZCA9IGZhbHNlOwogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAgaWYgKFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5zY3JvbGxpbmdDb29y
ZGluYXRvcigpKQotICAgICAgICBoYW5kbGVkID0gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlcXVl
c3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNs
YW1wZWRTY3JvbGxPZmZzZXQpKTsKKyAgICBoYW5kbGVkID0gcmVxdWVzdFNjcm9sbFBvc2l0aW9u
VXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CiAj
ZW5kaWYKIAogICAgIGlmICghaGFuZGxlZCkKICAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0
QW5pbWF0aW9uKGNsYW1wZWRTY3JvbGxPZmZzZXQsIGNsYW1waW5nKTsKIAogICAgIHNldEN1cnJl
bnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CisgICAgc2V0U2Nyb2xsQmVoYXZpb3JT
dGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKK30KKworYm9vbCBS
ZW5kZXJMYXllcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0
aW9uJiBwb3NpdGlvbikKK3sKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIGlmIChT
Y3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlKCkuc2Nyb2xs
aW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5y
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKnRoaXMsIHBvc2l0aW9uKTsKKyNlbmRpZgorICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXRXaXRo
QW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGxUeXBlIHNjcm9sbFR5
cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGF1dG8gcHJldmlvdXNTY3JvbGxU
eXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3Jv
bGxUeXBlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JP
TExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5
cGU6OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQ
b3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0Q3VycmVudFNjcm9sbFR5
cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgor
ICAgIFNjcm9sbE9mZnNldCBuZXdTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFt
cGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KG9mZnNldCkgOiBvZmZzZXQ7CisgICAg
aWYgKG5ld1Njcm9sbE9mZnNldCAhPSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICAgICAgU2Ny
b2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihuZXdTY3JvbGxPZmZz
ZXQpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CiB9CiAK
IHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlv
bikKQEAgLTI2NDYsNyArMjY5Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGNvbnN0
IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKICNlbmRpZgogICAgIH0KICAgICAKLSAgICBpZiAo
bV9zY3JvbGxQb3NpdGlvbiA9PSBuZXdQb3NpdGlvbikgeworICAgIGlmIChtX3Njcm9sbFBvc2l0
aW9uID09IG5ld1Bvc2l0aW9uICYmICFpc1Njcm9sbEluUHJvZ3Jlc3MoKSkgewogICAgICAgICAv
LyBGSVhNRTogTm90aGluZyBndWFyYW50ZWVzIHdlIGdldCBhIHNjcm9sbFRvKCkgd2l0aCBhbiB1
bmNoYW5nZWQgcG9zaXRpb24gYXQgdGhlIGVuZCBvZiBhIHVzZXIgZ2VzdHVyZS4KICAgICAgICAg
Ly8gVGhlIFNjcm9sbGluZ0Nvb3JkaW5hdG9yIHByb2JhYmx5IG5lZWRzIHRvIG1lc3NhZ2UgdGhl
IG1haW4gdGhyZWFkIHdoZW4gYSBnZXN0dXJlIGVuZHMuCiAgICAgICAgIGlmIChyZXF1aXJlc1Nj
cm9sbFBvc2l0aW9uUmVjb25jaWxpYXRpb24oKSkgewpAQCAtMjc5MSwxMCArMjgzOCwxMSBAQCB2
b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFi
c29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICBMYXlvdXRSZWN0IHJldmVhbFJlY3QgPSBn
ZXRSZWN0VG9FeHBvc2UobGF5ZXJCb3VuZHMsIGxvY2FsRXhwb3NlUmVjdCwgaW5zaWRlRml4ZWQs
IG9wdGlvbnMuYWxpZ25YLCBvcHRpb25zLmFsaWduWSk7CiAKICAgICAgICAgU2Nyb2xsT2Zmc2V0
IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQoKSAr
IHRvSW50U2l6ZShyb3VuZGVkSW50UmVjdChyZXZlYWxSZWN0KS5sb2NhdGlvbigpKSk7Ci0gICAg
ICAgIGlmIChjbGFtcGVkU2Nyb2xsT2Zmc2V0ICE9IHNjcm9sbE9mZnNldCgpKSB7CisgICAgICAg
IGlmIChpc1Njcm9sbEluUHJvZ3Jlc3MoKSB8fCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ICE9IHNjcm9s
bE9mZnNldCgpKSB7CiAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgb2xkU2Nyb2xsT2Zmc2V0ID0g
c2Nyb2xsT2Zmc2V0KCk7Ci0gICAgICAgICAgICBzY3JvbGxUb09mZnNldChjbGFtcGVkU2Nyb2xs
T2Zmc2V0KTsKLSAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSA9IHNj
cm9sbE9mZnNldCgpIC0gb2xkU2Nyb2xsT2Zmc2V0OworICAgICAgICAgICAgYm9vbCBhbmltYXRl
ZCA9IChib3gtPmVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlv
ciwgKmJveC0+ZWxlbWVudCgpKSk7CisgICAgICAgICAgICBzY3JvbGxUb1Bvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwgU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBhbmltYXRlZCk7CisgICAgICAgICAgICBJbnRTaXplIHNjcm9sbE9mZnNldERp
ZmZlcmVuY2UgPSBjbGFtcGVkU2Nyb2xsT2Zmc2V0IC0gb2xkU2Nyb2xsT2Zmc2V0OwogICAgICAg
ICAgICAgbG9jYWxFeHBvc2VSZWN0Lm1vdmUoLXNjcm9sbE9mZnNldERpZmZlcmVuY2UpOwogICAg
ICAgICAgICAgbmV3UmVjdCA9IExheW91dFJlY3QoYm94LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZs
b2F0UXVhZChGbG9hdFJlY3QobG9jYWxFeHBvc2VSZWN0KSksIFVzZVRyYW5zZm9ybXMpLmJvdW5k
aW5nQm94KCkpOwogICAgICAgICB9CkBAIC0yODE0LDEwICsyODYyLDEzIEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0
LCBib29sIGluc2lkCiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCB2aWV3UmVjdCA9IGZyYW1l
Vmlldy52aXNpYmxlQ29udGVudFJlY3QoTGVnYWN5SU9TRG9jdW1lbnRWaXNpYmxlUmVjdCk7CiAg
ICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBleHBvc2VSZWN0ID0gZ2V0UmVjdFRvRXhwb3NlKHZp
ZXdSZWN0LCBhYnNvbHV0ZVJlY3QsIGluc2lkZUZpeGVkLCBvcHRpb25zLmFsaWduWCwgb3B0aW9u
cy5hbGlnblkpOwogCi0gICAgICAgICAgICAgICAgSW50UG9pbnQgc2Nyb2xsT2Zmc2V0KHJvdW5k
ZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICBJbnRQ
b2ludCBzY3JvbGxQb3NpdGlvbihyb3VuZGVkSW50UG9pbnQoZXhwb3NlUmVjdC5sb2NhdGlvbigp
KSk7CiAgICAgICAgICAgICAgICAgLy8gQWRqdXN0IG9mZnNldHMgaWYgdGhleSdyZSBvdXRzaWRl
IG9mIHRoZSBhbGxvd2FibGUgcmFuZ2UuCi0gICAgICAgICAgICAgICAgc2Nyb2xsT2Zmc2V0ID0g
c2Nyb2xsT2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2ludCgpLCBJbnRQb2ludChmcmFt
ZVZpZXcuY29udGVudHNTaXplKCkpKTsKLSAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Ny
b2xsUG9zaXRpb24oc2Nyb2xsT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBzY3JvbGxQb3NpdGlv
biA9IHNjcm9sbFBvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2ludCgpLCBJbnRQb2lu
dChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTog
U2hvdWxkIHdlIHVzZSBjb250ZW50RG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgpPworICAg
ICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9p
c3N1ZXMvMjk3NworICAgICAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBvd25lckVsZW1lbnQt
PmNvbnRlbnREb2N1bWVudCgpICYmIG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCktPmRv
Y3VtZW50RWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCAq
b3duZXJFbGVtZW50LT5jb250ZW50RG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkpOworICAg
ICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwg
YW5pbWF0ZWQpOwogCiAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2hvdWxkQWxsb3dDcm9z
c09yaWdpblNjcm9sbGluZyA9PSBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMg
fHwgZnJhbWVWaWV3LnNhZmVUb1Byb3BhZ2F0ZVNjcm9sbFRvUGFyZW50KCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgcGFyZW50TGF5ZXIgPSBvd25lckVsZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xv
c2luZ0xheWVyKCk7CkBAIC0yODU2LDcgKzI5MDcsMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Ny
b2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5z
aWQKICAgICAgICAgICAgIC8vIEF2b2lkIHNjcm9sbGluZyB0byB0aGUgcm91bmRlZCB2YWx1ZSBv
ZiByZXZlYWxSZWN0LmxvY2F0aW9uKCkgaWYgd2UgZG9uJ3QgYWN0dWFsbHkgbmVlZCB0byBzY3Jv
bGwKICAgICAgICAgICAgIGlmIChyZXZlYWxSZWN0ICE9IHZpZXdSZWN0KSB7CiAgICAgICAgICAg
ICAgICAgU2Nyb2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxQb3NpdGlvbiA9IHJvdW5kZWRJbnRQb2lu
dChyZXZlYWxSZWN0LmxvY2F0aW9uKCkpLmNvbnN0cmFpbmVkQmV0d2VlbihtaW5TY3JvbGxQb3Np
dGlvbiwgbWF4U2Nyb2xsUG9zaXRpb24pOwotICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRT
Y3JvbGxQb3NpdGlvbihjbGFtcGVkU2Nyb2xsUG9zaXRpb24pOworICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAg
ICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMv
aXNzdWVzLzI5NzcKKyAgICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gcmVuZGVyZXIoKS5k
b2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25z
LmJlaGF2aW9yLCAqcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAg
ICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBv
c2l0aW9uLCBhbmltYXRlZCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMg
aXMgdGhlIG91dGVybW9zdCB2aWV3IG9mIGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0
aGlzIHZpZXcgd2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNmNh
NDIyYjdiMmIxYWNhMzUwZGViYzAyNGM1MzllZGJkZTE3YTQzYi4uOGM5Nzc4Mzc0ZTJlMzE5NzIx
Y2Q1YTI0OTI2MTg2NzcxNTE0ZDQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRl
ICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKKyNpbmNsdWRlICJTY3JvbGxC
ZWhhdmlvci5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8bWVtb3J5
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC0xMzQsNiArMTM1LDcgQEAgc3RydWN0IFNj
cm9sbFJlY3RUb1Zpc2libGVPcHRpb25zIHsKICAgICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFs
aWduWCB7IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCB9OwogICAgIGNvbnN0
IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZIHsgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklm
TmVlZGVkIH07CiAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyBzaG91bGRBbGxv
d0Nyb3NzT3JpZ2luU2Nyb2xsaW5nIHsgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6
Tm8gfTsKKyAgICBTY3JvbGxCZWhhdmlvciBiZWhhdmlvciB7IFNjcm9sbEJlaGF2aW9yOjpBdXRv
IH07CiB9OwogCiBjbGFzcyBSZW5kZXJMYXllciBmaW5hbCA6IHB1YmxpYyBTY3JvbGxhYmxlQXJl
YSB7CkBAIC00MzksOSArNDQxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbEJ5UmVjdXJz
aXZlbHkoY29uc3QgSW50U2l6ZSYgZGVsdGEsIFNjcm9sbGFibGVBcmVhKiogc2Nyb2xsZWRBcmVh
ID0gbnVsbHB0cik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNv
bnN0IFNjcm9sbE9mZnNldCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMs
IFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNl
dCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5n
ID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCi0gICAgdm9pZCBzY3JvbGxUb1hQb3NpdGlv
bihpbnQgeCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCk7Ci0gICAgdm9pZCBzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSwgU2Ny
b2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgYm9vbCByZXF1ZXN0
U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBvdmVycmlkZTsKKwor
ICAgIHZvaWQgc2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0
ZWQsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQg
c2Nyb2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9Q
b3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQs
IFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCiAgICAgLy8gVGhl
c2UgYXJlIG9ubHkgdXNlZCBieSBtYXJxdWVlLgogICAgIHZvaWQgc2Nyb2xsVG9YT2Zmc2V0KGlu
dCB4KSB7IHNjcm9sbFRvT2Zmc2V0KFNjcm9sbE9mZnNldCh4LCBzY3JvbGxPZmZzZXQoKS55KCkp
LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggOWM4MWQ3
ZDljODRhZWIzYzE2ZDYzMTI2MjliNGRmNTEzNjdlZjA0OS4uZjMyNzFlNGZiYjA1NDZlNGQyMDNm
MzM2NTRjYWY0YzA2NzBmMDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0Qm94LmNwcApAQCAtNzQ0LDcgKzc0NCw3IEBAIGludCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxM
ZWZ0KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRT
Y3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlckxp
c3RCb3g6OnNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGlu
ZykKIHsKIH0KIApAQCAtNzYxLDcgKzc2MSw3IEBAIHN0YXRpYyB2b2lkIHNldHVwV2hlZWxFdmVu
dFRlc3RNb25pdG9yKFJlbmRlckxpc3RCb3gmIHJlbmRlcmVyKQogICAgIHJlbmRlcmVyLnNjcm9s
bEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKHJlbmRlcmVyLnBhZ2UoKS53aGVl
bEV2ZW50VGVzdE1vbml0b3IoKSk7CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xs
VG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW5kZXJM
aXN0Qm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xs
Q2xhbXBpbmcpCiB7CiAgICAgLy8gRGV0ZXJtaW5lIGFuIGluZGV4IGFuZCBzY3JvbGwgdG8gaXQu
ICAgIAogICAgIGludCBpbmRleCA9IG5ld1RvcCAvIGl0ZW1IZWlnaHQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDY1ZDkyMjZiM2EwNTRlNjk3OGEwMjk2
NzRlYTlkZjQ0MDQxZTM3YmMuLjI1YzkwNjUxZGYwYjc1MTdhZmU3MjQxNDYwMTM2ZWIwNTMyOWU0
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTA2LDgg
KzEwNiw4IEBAIHByaXZhdGU6CiAgICAgaW50IHNjcm9sbFRvcCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxIZWln
aHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxU
eXBlLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50
LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTY3Jv
bGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBp
bmcpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVz
dCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250
YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlv
bikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggOWVlODg4ODY3MTEwYjU2NjUyOWU4
ZmJhMTAyNWNkNTE5MWUxYWMzOS4uNGRmN2QzMThkYzc4Yzk0M2QzM2E4ZjVlMWE1ZDVlN2Y0ZjY2
ODhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTM3NiwxMyArMzc2LDEzIEBAIGludCBSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNjcm9sbFRvcCgpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRl
ckJsb2NrRmxvdzo6c2Nyb2xsVG9wKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZykKK3ZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGlu
dCBuZXdMZWZ0LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAo
aW5uZXJUZXh0RWxlbWVudCgpKQogICAgICAgICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9s
bExlZnQobmV3TGVmdCk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpz
ZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lk
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNj
cm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKQogewogICAgIGlmIChpbm5lclRleHRFbGVt
ZW50KCkpCiAgICAgICAgIGlubmVyVGV4dEVsZW1lbnQoKS0+c2V0U2Nyb2xsVG9wKG5ld1RvcCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmgKaW5kZXggM2Y1Nzg2ZGZlNDAwZWI4MGZkOGUyYjM5MDY2NjJiZDk5Yjk0ZjEz
YS4uNjY2YWEzMTQ1MWIzMTU3MjAyNzA1MmJjZGU1Yjg5NDllNWIwMGZkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
aApAQCAtNTcsOCArNTcsOCBAQCBwcml2YXRlOgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBv
dmVycmlkZTsKICAgICBpbnQgc2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQg
c2Nyb2xsSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGlu
dCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Ny
b2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZv
aWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNj
cm9sbENsYW1waW5nKSBvdmVycmlkZTsKICAgICBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24s
IFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BF
bGVtZW50ID0gbnVsbHB0ciwgUmVuZGVyQm94KiBzdGFydEJveCA9IG51bGxwdHIsIGNvbnN0IElu
dFBvaW50JiB3aGVlbEV2ZW50QWJzb2x1dGVQb2ludCA9IEludFBvaW50KCkpIGZpbmFsOwogICAg
IGJvb2wgbG9naWNhbFNjcm9sbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxh
cml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIEVsZW1lbnQqKiBzdG9wRWxlbWVudCA9IDApIGZp
bmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmlu
ZGV4IGMyZWM0OGVkOWM0ZjhkNTE5NDUyMTlhNjFjMmE0NTk0NDc4ODIzZTMuLjk5YTIzYzJjYTI1
NjY3NDZjZGZmMTU0MGNlMzI2OGExMWI2N2YzZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03MzYsNiArNzM2LDggQEAgcHVibGljOgogICAg
IGJvb2wgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZUlu
aGVyaXRlZERhdGEtPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmc7IH0KICNlbmRpZgogCisgICAg
Ym9vbCB1c2VTbW9vdGhTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0
ZWREYXRhLT51c2VTbW9vdGhTY3JvbGxpbmc7IH0KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJ
TkcpCiAgICAgVGV4dFNpemVBZGp1c3RtZW50IHRleHRTaXplQWRqdXN0KCkgY29uc3QgeyByZXR1
cm4gbV9yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFNpemVBZGp1c3Q7IH0KICAgICBBdXRvc2l6ZVN0
YXR1cyBhdXRvc2l6ZVN0YXR1cygpIGNvbnN0OwpAQCAtMTI2Nyw2ICsxMjY5LDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0VXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZyhib29sIHYpIHsgU0VUX1ZB
UihtX3JhcmVJbmhlcml0ZWREYXRhLCB1c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nLCB2KTsgfQog
I2VuZGlmCiAKKyAgICB2b2lkIHNldFVzZVNtb290aFNjcm9sbGluZyhib29sIHYpIHsgU0VUX1ZB
UihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCB1c2VTbW9vdGhTY3JvbGxpbmcsIHYpOyB9CisKICNp
ZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIHZvaWQgc2V0VGV4dFNpemVBZGp1c3QoVGV4
dFNpemVBZGp1c3RtZW50IGFkanVzdG1lbnQpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRh
LCB0ZXh0U2l6ZUFkanVzdCwgYWRqdXN0bWVudCk7IH0KICAgICB2b2lkIHNldEF1dG9zaXplU3Rh
dHVzKEF1dG9zaXplU3RhdHVzKTsKQEAgLTE3MDQsNiArMTcwOCw4IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBpbml0aWFsVXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIHsgcmV0dXJuIGZh
bHNlOyB9CiAjZW5kaWYKIAorICAgIHN0YXRpYyBib29sIGluaXRpYWxVc2VTbW9vdGhTY3JvbGxp
bmcoKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmIGluaXRpYWxGaWx0ZXIoKSB7IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRp
b25zPiBvcHM7IHJldHVybiBvcHM7IH0KICAgICBzdGF0aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9u
cyYgaW5pdGlhbEFwcGxlQ29sb3JGaWx0ZXIoKSB7IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0
ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3Bw
CmluZGV4IGZiMzIwODIzMzc0MjhiMTFmZDY4MTUyMDdhZmU1MTNmNDJjZjEwMWYuLmIwMGYzZThi
Njg2Y2I0ODQ2ZWQ4ZWI4Njc1NDhlYzZhYjk2NzQ2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5j
cHAKQEAgLTgyLDYgKzgyLDcgQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YSgpCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogICAgICwgdG91
Y2hBY3Rpb25zKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFRvdWNo
QWN0aW9ucygpKSkKICNlbmRpZgorICAgICwgdXNlU21vb3RoU2Nyb2xsaW5nKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZVNtb290aFNjcm9sbGluZygpKSkKICAg
ICAsIHBhZ2VTaXplVHlwZShQQUdFX1NJWkVfQVVUTykKICAgICAsIHRyYW5zZm9ybVN0eWxlM0Qo
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVHJhbnNmb3JtU3R5bGUz
RCgpKSkKICAgICAsIGJhY2tmYWNlVmlzaWJpbGl0eShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVu
ZGVyU3R5bGU6OmluaXRpYWxCYWNrZmFjZVZpc2liaWxpdHkoKSkpCkBAIC0xNzUsNiArMTc2LDcg
QEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCiAg
ICAgLCB0b3VjaEFjdGlvbnMoby50b3VjaEFjdGlvbnMpCiAjZW5kaWYKKyAgICAsIHVzZVNtb290
aFNjcm9sbGluZyhvLnVzZVNtb290aFNjcm9sbGluZykKICAgICAsIHBhZ2VTaXplVHlwZShvLnBh
Z2VTaXplVHlwZSkKICAgICAsIHRyYW5zZm9ybVN0eWxlM0Qoby50cmFuc2Zvcm1TdHlsZTNEKQog
ICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KG8uYmFja2ZhY2VWaXNpYmlsaXR5KQpAQCAtMjg3LDYg
KzI4OSw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25z
dCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQogICAgICAgICAmJiB0b3VjaEFjdGlvbnMgPT0gby50b3VjaEFjdGlvbnMKICNlbmRpZgor
ICAgICAgICAmJiB1c2VTbW9vdGhTY3JvbGxpbmcgPT0gby51c2VTbW9vdGhTY3JvbGxpbmcKICNp
ZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgICAgICAmJiBlZmZlY3RpdmVCbGVuZE1vZGUg
PT0gby5lZmZlY3RpdmVCbGVuZE1vZGUKICAgICAgICAgJiYgaXNvbGF0aW9uID09IG8uaXNvbGF0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCAxOWM1OTFiMmQxMjRjOTY1ZDg5N2ViYTU4MDUx
MTExNGE2YmM3NDM1Li41OGYxYzZjY2Y2NjA3NmY5ZjBhYjJiOGI2YWFkYTk3ZjJkN2I1ODBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTE3NSw2ICsxNzUsOCBAQCBwdWJsaWM6CiAgICAgdW5z
aWduZWQgdG91Y2hBY3Rpb25zIDogNjsgLy8gVG91Y2hBY3Rpb24KICNlbmRpZgogCisgICAgdW5z
aWduZWQgdXNlU21vb3RoU2Nyb2xsaW5nIDogMTsgLy8gU2Nyb2xsQmVoYXZpb3IKKwogICAgIHVu
c2lnbmVkIHBhZ2VTaXplVHlwZSA6IDI7IC8vIFBhZ2VTaXplVHlwZQogICAgIHVuc2lnbmVkIHRy
YW5zZm9ybVN0eWxlM0QgOiAxOyAvLyBUcmFuc2Zvcm1TdHlsZTNECiAgICAgdW5zaWduZWQgYmFj
a2ZhY2VWaXNpYmlsaXR5IDogMTsgLy8gQmFja2ZhY2VWaXNpYmlsaXR5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCmluZGV4IDdmM2YwY2JjNGU1NTE1YmIx
OGIyYWYzOTAwZmE2NWQ4ZDZiYTA5OWYuLmUzODIwNGY2ODAzNTdkYjE4MjgzN2ViYjVkYjliMGVk
ZWMyNDk0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNv
bnZlcnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRl
ci5oCkBAIC0xMjksNiArMTI5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGNvbnZlcnRP
dmVyZmxvd1Njcm9sbGluZyhCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOwogI2VuZGlm
CiAgICAgc3RhdGljIEZvbnRGZWF0dXJlU2V0dGluZ3MgY29udmVydEZvbnRGZWF0dXJlU2V0dGlu
Z3MoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKKyAgICBzdGF0aWMgYm9vbCBjb252
ZXJ0U21vb3RoU2Nyb2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAg
c3RhdGljIEZvbnRTZWxlY3Rpb25WYWx1ZSBjb252ZXJ0Rm9udFdlaWdodEZyb21WYWx1ZShjb25z
dCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBGb250U2VsZWN0aW9uVmFsdWUgY29udmVydEZvbnRT
dHJldGNoRnJvbVZhbHVlKGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIE9wdGlvbmFsPEZv
bnRTZWxlY3Rpb25WYWx1ZT4gY29udmVydEZvbnRTdHlsZUZyb21WYWx1ZShjb25zdCBDU1NWYWx1
ZSYpOwpAQCAtMTQwMyw2ICsxNDA0LDExIEBAIGlubGluZSBib29sIEJ1aWxkZXJDb252ZXJ0ZXI6
OmNvbnZlcnRPdmVyZmxvd1Njcm9sbGluZyhCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWCiB9CiAj
ZW5kaWYKIAoraW5saW5lIGJvb2wgQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydFNtb290aFNjcm9s
bGluZyhCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCit7CisgICAgcmV0dXJu
IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkudmFsdWVJRCgpID09IENTU1ZhbHVl
U21vb3RoOworfQorCiBpbmxpbmUgU1ZHTGVuZ3RoVmFsdWUgQnVpbGRlckNvbnZlcnRlcjo6Y29u
dmVydFNWR0xlbmd0aFZhbHVlKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkK
IHsKICAgICByZXR1cm4gU1ZHTGVuZ3RoVmFsdWU6OmZyb21DU1NQcmltaXRpdmVWYWx1ZShkb3du
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCAxZTNkOGY0YTRmNjllZWE1NTA1NWU4NzFhMDcyZTA5YzQ1NTc4MzQzLi41
M2MzOTI2Mjg2YjU3Yzg3M2MyODRhZmEwZGY4ZjU1NTJiNjNhODM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNzM5LDcgKzE3MzksNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBJbnRlcm5hbHM6OnVuY29uc3RyYWluZWRTY3JvbGxUbyhFbGVtZW50JiBlbGVtZW50LCBkb3Vi
bGUgeCwgZAogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkpCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKIAotICAgIGVsZW1lbnQu
c2Nyb2xsVG8oeyB4LCB5IH0sIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOworICAgIGVsZW1l
bnQuc2Nyb2xsVG8oU2Nyb2xsVG9PcHRpb25zKHgsIHkpLCBTY3JvbGxDbGFtcGluZzo6VW5jbGFt
cGVkKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKaW5kZXggZTgyNmEzMGIxMmUyNGVjZjQzMGM2
OWI3NmIxYTZmMjhmNWJiOThkOC4uYzAzOWM5ZTEyZDZjMmM1ZmVmZDJlNWZhZjg2ODJiODYxMmM2
ODk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmNwcApAQCAtMTUyLDYgKzE1Miw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QKICAg
ICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxhYmxlQXJlYVBhcmFtcywgc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKQogICAgIFNDUk9MTElO
R19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikKICAgICBTQ1JPTExJTkdfTk9ERV9F
TkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
biwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQor
ICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRp
b24pCiAKICAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNjcm9sbENvbnRh
aW5lckxheWVyKCkpOwpAQCAtMjYwLDcgKzI2MSwxMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9s
bAogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIG5vZGUuc2V0UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwpOworICAgICAgICBib29sIHNjcm9sbFdpdGhBbmltYXRpb247CisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoc2Nyb2xsV2l0aEFuaW1hdGlvbikpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQ
b3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xsV2l0aEFuaW1hdGlv
bik7CiAgICAgfQogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjEz
LDcgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVz
T25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICB0cy5kdW1wUHJvcGVydHko
InJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KCkpOwogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24t
aXMtcHJvZ3JhbWF0aWMiLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCgpKTsKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQt
c2Nyb2xsLXBvc2l0aW9uLXdpdGgtYW5pbWF0aW9uIiwgbm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbldpdGhBbmltYXRpb24oKSk7CiAgICAgfQogCiAgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGll
c09ubHkgfHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbAppbmRleCBjNmVmODNlNTAwNDQzNTMzYmM0MjkxYzg0MzJkMTZlMjBmYjVlNjY0
Li45M2FmMTExNjEzNGRhOTQ2OTY5MWMxNDgzMjE2NDk0MGE1NDQ2OWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEzMTcsNiArMTMxNywxMyBAQCBCbG9j
a2luZ09mU21hbGxQbHVnaW5zRW5hYmxlZDoKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
U3RvcCBwbHVnaW5zIHNtYWxsZXIgdGhhbiBhIGNlcnRhaW4gdGhyZXNob2xkIGZyb20gbG9hZGlu
Zy4iCiAgIGNhdGVnb3J5OiBpbnRlcm5hbAogCitDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJs
ZU5hbWU6ICJDU1NPTSBWaWV3IFNtb290aCBTY3JvbGxpbmciCisgIGh1bWFuUmVhZGFibGVEZXNj
cmlwdGlvbjogIkVuYWJsZSBET00gQVBJIGFuZCBDU1MgcHJvcGVydHkgZm9yICdzbW9vdGgnIHNj
cm9sbCBiZWhhdmlvciIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorCiBXZWJBbmltYXRpb25z
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGM0MjY4YjVmNTRm
YjcxMDRjY2FjZDhjYTk4ZWRhYWFkNTVjYzlhYjkuLjIxMjI4NTU4YWY1NDlkZWVlZTVhMDFhMmNh
MzJjYmQ3ZDM3MmY5YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQpAQCAtMTYxNiw2ICsxNjE2LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBw
b2ludHNFcXVhbEluRGV2aWNlUGl4ZWxzKENHUG9pbnQgYSwgQ0dQb2ludCBiLCBmbG9hdCBkZXZp
Y2VTCiAgICAgICAgICYmIGZhYnMoYS55ICogZGV2aWNlU2NhbGVGYWN0b3IgLSBiLnkgKiBkZXZp
Y2VTY2FsZUZhY3RvcikgPCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpOwog
fQogCitzdGF0aWMgaW5saW5lIGJvb2wgcG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbChD
R1BvaW50IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAgcmV0
dXJuIENHUm91bmQoYS54ICogZGV2aWNlU2NhbGVGYWN0b3IpID09IENHUm91bmQoYi54ICogZGV2
aWNlU2NhbGVGYWN0b3IpCisgICAgICAgICYmIENHUm91bmQoYS55ICogZGV2aWNlU2NhbGVGYWN0
b3IpID09IENHUm91bmQoYi55ICogZGV2aWNlU2NhbGVGYWN0b3IpOworfQogc3RhdGljIENHU2l6
ZSByb3VuZFNjcm9sbFZpZXdDb250ZW50U2l6ZShjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYg
cGFnZSwgQ0dTaXplIGNvbnRlbnRTaXplKQogewogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
ID0gcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpOwpAQCAtMjM0MCw5ICsyMzQ1LDEwIEBAIHN0YXRp
YyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6Rmxv
YXRQb2ludCBjb250ZW50T2ZmCiAgICAgcmV0dXJuIGNvbnRlbnRPZmZzZXQuY29uc3RyYWluZWRC
ZXR3ZWVuKFdlYkNvcmU6OkZsb2F0UG9pbnQoKSwgV2ViQ29yZTo6RmxvYXRQb2ludChtYXhpbXVt
Q29udGVudE9mZnNldCkpOwogfQogCi0tICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3Np
dGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdl
YkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbgorLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Ny
b2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3Jp
Z2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0
ZWQKIHsKLSAgICBpZiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8fCBfZHluYW1p
Y1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6
Ok5vdFJlc2l6aW5nKQorICAgIC8vIEFuaW1hdGVkIHNjcm9sbGluZyBzaG91bGRuJ3QgYmUgc2tp
cHBlZC4KKyAgICBpZiAoIWFuaW1hdGVkICYmIChfY29tbWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0
aW9uIHx8IF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlICE9IFdlYktpdDo6RHluYW1pY1ZpZXdw
b3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJD
b3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmZzZXQgPSBXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6
c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCB0b0Zsb2F0U2l6ZShzY3Jv
bGxPcmlnaW4pKTsKQEAgLTIzNTYsMTMgKzIzNjIsMjEgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0
UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRP
ZmYKIAogICAgIFtfc2Nyb2xsVmlldyBfc3RvcFNjcm9sbGluZ0FuZFpvb21pbmdBbmltYXRpb25z
XTsKIAotICAgIGlmICghQ0dQb2ludEVxdWFsVG9Qb2ludChjb250ZW50T2Zmc2V0SW5TY3JvbGxW
aWV3Q29vcmRpbmF0ZXMsIFtfc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XSkpCi0gICAgICAgIFtf
c2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29y
ZGluYXRlc107CisgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRoZXkgYXJlIG5vdCBlcXVhbCwg
YnV0IGluIHRoZSBzYW1lIGRldmljZSBwaXhlbCwgc28gX3Njcm9sbFZpZXcgd29uJ3QgY2hhbmdl
LgorICAgIC8vIFdlIG5lZWQgdG8gY2FsY3VsYXRlIHRoZSByb3VuZCB0byBkZXZpY2UgcGl4ZWwg
aGVyZS4KKyAgICBpZiAoIXBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoY29udGVudE9m
ZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0s
IF9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKSkKKyAgICAgICAgW19zY3JvbGxWaWV3IHNldENv
bnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzIGFuaW1hdGVk
OmFuaW1hdGVkXTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gSWYgd2UgaGF2ZW4ndCBjaGFuZ2Vk
IGFueXRoaW5nLCB0aGVyZSB3b3VsZCBub3QgYmUgYW55IFZpc2libGVDb250ZW50UmVjdCB1cGRh
dGUgc2VudCB0byB0aGUgY29udGVudC4KICAgICAgICAgLy8gVGhlIFdlYlByb2Nlc3Mgd291bGQg
a2VlcCB0aGUgaW52YWxpZCBjb250ZW50T2Zmc2V0IGFzIGl0cyBzY3JvbGwgcG9zaXRpb24uCiAg
ICAgICAgIC8vIFRvIHN5bmNocm9uaXplIHRoZSBXZWJQcm9jZXNzIHdpdGggd2hhdCBpcyBvbiBz
Y3JlZW4sIHdlIHNlbmQgdGhlIFZpc2libGVDb250ZW50UmVjdCBhZ2Fpbi4KICAgICAgICAgX3Bh
Z2UtPnJlc2VuZExhc3RWaXNpYmxlQ29udGVudFJlY3RzKCk7CisgICAgICAgIC8vIElmIF9zY3Jv
bGxWaWV3IHdvbid0IGNoYW5nZSwgd2Ugc3RpbGwgbmVlZCB0byB0ZWxsIHRoZSBXZWIgcHJvY2Vz
cyB0aGF0IHRoZSBhbmltYXRpb24gc3RvcHBlZC4KKyAgICAgICAgaWYgKGFuaW1hdGVkKSB7Cisg
ICAgICAgICAgICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3Jk
aW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICAgICAgICAg
IGlmIChjb29yZGluYXRvcikKKyAgICAgICAgICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5n
VHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsK
KyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtMjg3OCw2ICsyODkyLDEwIEBAIHN0YXRpYyBXZWJD
b3JlOjpGbG9hdFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2lu
dCBjb250ZW50T2ZmCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246
KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKIHsKICAgICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xs
aW5nXTsKKworICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSogY29v
cmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOworICAgIGlmIChj
b29yZGluYXRvcikKKyAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290Tm9kZUlz
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CiB9CiAKIC0gKHZvaWQp
X3Njcm9sbFZpZXdEaWRJbnRlcnJ1cHREZWNlbGVyYXRpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9s
bFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0ludGVybmFsLmgKaW5kZXggNDM1MDgwZjMyNDQ1Y2U4ZTdmNTZlZTVkYzAwNDM5NGJjZjFh
YTVkOS4uNWNiNWY1ODE3MjU2MWFmMWQ4MTRmMDljNTU0Y2IwNWMzNGUxODRiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFs
LmgKQEAgLTk3LDcgKzk3LDcgQEAgc3RydWN0IFByaW50SW5mbzsKIAogLSAoUmVmUHRyPFdlYktp
dDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdDsKIAotLSAodm9pZClfc2Nyb2xsVG9D
b250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24g
c2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW47CistICh2b2lkKV9z
Y3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQ
b3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbiBhbmlt
YXRlZDooQk9PTClhbmltYXRlZDsKIC0gKEJPT0wpX3Njcm9sbFRvUmVjdDooV2ViQ29yZTo6Rmxv
YXRSZWN0KXRhcmdldFJlY3Qgb3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KW9yaWdpbiBtaW5p
bXVtU2Nyb2xsRGlzdGFuY2U6KGZsb2F0KW1pbmltdW1TY3JvbGxEaXN0YW5jZTsKIC0gKGRvdWJs
ZSlfaW5pdGlhbFNjYWxlRmFjdG9yOwogLSAoZG91YmxlKV9jb250ZW50Wm9vbVNjYWxlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDJhMjk4OTkzNDg1YmRhMWI4MDAwNzdj
YWJjZmFlZWQxMzRlMGQ0N2UuLjQxODEwNzc2NGRmN2I2MmNjZGY5MDA4OTdkYmZmZTYyM2YxMjBi
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTE4MSw2ICsxODEsOCBA
QCBwdWJsaWM6CiAgICAgLy8gVGVsbCB0aGUgdmlldyB0byBzY3JvbGwgdG8gdGhlIGdpdmVuIHBv
c2l0aW9uLCBhbmQgd2hldGhlciB0aGlzIHdhcyBhIHByb2dyYW1tYXRpYyBzY3JvbGwuCiAgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pID0gMDsK
IAorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHNjcm9sbE9yaWdpbikgeyB9CisKICAgICAvLyBSZXR1cm4gdGhlIGN1cnJlbnQgc2Nyb2xsIHBv
c2l0aW9uIChub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgYXMgdGhlIFdlYkNvcmUgc2Nyb2xsIHBv
c2l0aW9uLCBiZWNhdXNlIG9mIHNjYWxpbmcsIGluc2V0cyBldGMuKQogICAgIHZpcnR1YWwgV2Vi
Q29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24oKSA9IDA7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggYjdiMDQ2OTU5MjVk
YzY4ZmRjNjU2MzU4ZTU5ZjE0MjE1ZTg1Y2U2MC4uYzhhOWRmN2Y4ODE4ZTVjMGFlOWJhNGUxMDFi
ZGEyYmMyOGJkM2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW0KQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFucwog
ICAgIC8vIEhhbmRsZSByZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMgZnJvbSB0aGUg
c2Nyb2xsaW5nIHRyZWUgdHJhbnNhY3Rpb24gYWZ0ZXIgZGlkQ29tbWl0TGF5ZXJUcmVlKCkKICAg
ICAvLyBoYXMgdXBkYXRlZCB0aGUgdmlldyBzaXplIGJhc2VkIG9uIHRoZSBjb250ZW50IHNpemUu
CiAgICAgaWYgKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0
ZSkKLSAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJ
bmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBsYXllclRyZWVUcmFuc2FjdGlvbi5zY3JvbGxP
cmlnaW4oKSk7CisgICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVk
U2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24u
c2Nyb2xsT3JpZ2luKCksIHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdFdpdGhBbmltYXRpb24p
OwogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAKICAgICBpZiAobV9kZWJ1Z0lu
ZGljYXRvckxheWVyVHJlZUhvc3QpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmNwcAppbmRleCA0ODIzZjc2YTk3NzJmOTc3Y2Q3NmMyNWMzZDVlYTdk
MzJmMWRhYzY2Li4wNTQ2YjMxMzRlM2RhODlkZDI0NGIwY2M0Nzk3YmMxZWM1YjEzM2YwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0y
MDgsNyArMjA4LDcgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpjdXJy
ZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjoKIH0KIAogLy8gVGhpcyBjb21l
cyBmcm9tIHRoZSBzY3JvbGxpbmcgdHJlZS4KLXZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9s
bGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0
aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pCit2b2lkIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9z
aXRpb24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwg
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
LCBib29sIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKQogewogICAgIC8vIFNjcm9sbCB1
cGRhdGVzIGZvciB0aGUgbWFpbiBmcmFtZSBhcmUgc2VudCB2aWEgV2ViUGFnZVByb3h5Ojp1cGRh
dGVWaXNpYmxlQ29udGVudFJlY3RzKCkKICAgICAvLyBzbyBkb24ndCBzZW5kIHRoZW0gaGVyZS4K
QEAgLTIyMiwyMSArMjIyLDMzIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlECiAgICAgbV93ZWJQ
YWdlUHJveHkuc2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEaWRTY3JvbGwoKTsKICNlbmRpZgogCi0g
ICAgaWYgKG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpKQor
ICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSAm
JiAhaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjpTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHNjcm9sbGVkTm9kZUlELCBuZXdTY3JvbGxQ
b3NpdGlvbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9PSBTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uOjpTeW5jKSk7CiB9CiAKLXZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQg
c2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlE
IHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24pCiB7CiAgICAg
aWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RTY3JvbGxpbmdOb2RlSUQoKSAmJiBtX3JlcXVlc3Rl
ZFNjcm9sbEluZm8pIHsKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0c1Nj
cm9sbFBvc2l0aW9uVXBkYXRlID0gdHJ1ZTsKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZv
LT5yZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Ny
b2xsOworICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RXaXRoQW5pbWF0aW9u
ID0gd2l0aEFuaW1hdGlvbjsKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwogICAgIH0KIH0KIAordm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xs
ZWROb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAgIG1fd2Vi
UGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUoc2Nyb2xsZWROb2RlSUQsIGlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOworfQorCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBt
X3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6
c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHJvb3RTY3JvbGxpbmdOb2Rl
SUQoKSwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKSk7ICAgIAorfQorCisKIFN0cmluZyBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkgY29u
c3QKIHsKICAgICBpZiAobV9zY3JvbGxpbmdUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggMWE3Njk0M2YyNDViZTFjZDgyMmYxOTYxM2Nk
ZDM1ZjU0MGE5NGNkYS4uM2VkN2E4ZjY0YWEyZGVjOWQ1ZDI3NTQ1YjAyOGE5YTgwOWM3NzJhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01
Niw4ICs1NiwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eSgpOwogCiAgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJvY2VzcyB0aGF0IHRoZSBz
Y3JvbGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlKQot
ICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3Qg
T3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJD
b3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLSAgICB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9z
aXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9y
dE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0
YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IGZhbHNlKTsKKyAgICB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSk7CisKKyAgICB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlk
Q2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKIAogICAgIFdlYkNvcmU6
OlRyYWNraW5nVHlwZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21TdHJpbmcm
IGV2ZW50TmFtZSwgV2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0OwogCkBAIC04MCw2ICs4Myw3IEBA
IHB1YmxpYzoKICAgICBzdHJ1Y3QgUmVxdWVzdGVkU2Nyb2xsSW5mbyB7CiAgICAgICAgIGJvb2wg
cmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSB7IH07CiAgICAgICAgIGJvb2wgcmVxdWVzdElz
UHJvZ3JhbW1hdGljU2Nyb2xsIHsgfTsKKyAgICAgICAgYm9vbCByZXF1ZXN0V2l0aEFuaW1hdGlv
biB7IH07CiAgICAgICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b247CiAgICAgfTsKICAgICB2b2lkIGNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uJiwgUmVxdWVzdGVkU2Nyb2xsSW5mbyYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGFmYWJiYzFlYWUzMWY4NmI5ZDRh
Yjg5ZjY3NTQ1ZWZlZGVjNTUwZjIuLjM4NWMyYzY2MTQ5NDMyMmQyM2IyYzFlNmI5ODNkOGVjY2Y2
ZTJiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTEwNCwxMiArMTA0LDEy
IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwo
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmCiAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGU+KG5vZGUpKQogICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbiA9IGRv
d25jYXN0PFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpLmxheW91dFZpZXdw
b3J0KCkubG9jYXRpb24oKTsKIAotICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3Jv
bGxpbmdUcmVlTm9kZURpZFNjcm9sbChub2RlLnNjcm9sbGluZ05vZGVJRCgpLCBub2RlLmN1cnJl
bnRTY3JvbGxQb3NpdGlvbigpLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbik7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNj
cm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0
aW9uQWN0aW9uLCBub2RlLm5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSAmJiAhbm9k
ZS5yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbigpKTsKIH0KIAotdm9pZCBSZW1vdGVTY3JvbGxp
bmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBu
b2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGwpCit2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwg
Ym9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5z
Y3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRp
b24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIHdpdGhBbmltYXRpb24pOwogfQogCiBS
ZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGlu
Z1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEKQpAQCAtMTQzLDYgKzE0MywxMSBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNj
cm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZAogICAgIHJl
dHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAK
K3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwg
Ym9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNz
RGlkQ2hhbmdlKG5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKK30KKwogdm9p
ZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0
aWNhbCkKIHsKICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3VycmVudFNuYXBQb2lu
dEluZGljZXNEaWRDaGFuZ2Uobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ1RyZWUuaAppbmRleCAyM2JhYzA2YTNiOTZmMmU4OGQ1Y2ViYjcxYzBkNWE3Y2U1
ODllY2Y1Li4xOTIwMDkzNGUwZGYzYjdlNjMxNzEwYmQzNDQyYzU0ZmE2NDdiNjYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdUcmVlLmgKQEAgLTUyLDcgKzUyLDkgQEAgcHVibGljOgogICAgIGNvbnN0
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkmIHNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7IH0KIAogICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUmLCBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gV2Vi
Q29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpIG92ZXJyaWRlOworCisgICAg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5n
ZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKSBvdmVycmlkZTsKIAogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFu
Z2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25l
ZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKaW5kZXggZTYzN2Q2MTUzMjVkMzgw
Y2U5MmQwN2EyYjEyMTkxM2ZmMTgxZGQyZS4uMDBiNGRiY2QzNzBlMThjZGZkMzk5ZWU3NmIxM2Zi
MDU0M2IzMzE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxWaWV3V2lsbFN0YXJ0
UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPZmZzZXQsIGJvb2wgaW5Vc2VySW50ZXJhY3Rpb24p
OworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbigpOwogCiAgICAg
dm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25lZCBob3Jpem9udGFs
LCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7CiAgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXgg
ZTc2ODk4Mzc1ODFiOWQ5Yjk1YmZlYTAzNzZlMWU0OTFjZWYzOWE0Ni4uN2E2ZTY0YWI3MjQ2ODE4
OWZmZThlZDk3NWE3MWZiYTUxNzgwMjZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMTUyLDYgKzE1
MiwxMSBAQAogICAgIH0KIH0KIAorLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5p
bWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgX3Njcm9sbGluZ1RyZWVO
b2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKTsKK30KKwog
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Ny
b2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zm
c2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQp
c3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZl
bG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUg
Kil2dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIAog
ICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CiAgICAgICAgIGF1
dG8gc2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
blJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSA/IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRp
YyA6IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhz
Y3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSk7
CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25X
aXRoQW5pbWF0aW9uKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2V0UmVxdWVzdFNj
cm9sbFdpdGhBbmltYXRpb24odHJ1ZSk7CisgICAgICAgIC8vIElmIHRoZSBzY3JvbGwgcG9zaXRp
b25zIGFyZSBub3QgdGhlIHNhbWUsIHRoZXJlJ3MgYSBwb3NzaWJpbGl0eSB0aGF0IHRoZSBzY3Jv
bGwgb2Zmc2V0IGZyb20gdGhlIFdlYiBwcm9jZXNzIGhhcyBiZWVuIG92ZXJyaWRkZW4uCisgICAg
ICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIHNjcm9sbCBwb3NpdGlvbiBuZWVkIHRvIGJlIHNlbnQg
dG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBib29sIHNob3VsZFN5bmNTY3JvbGxQb3NpdGlv
biA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxQb3NpdGlvbigpICE9IHNjcm9sbGluZ05vZGUo
KS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNjcm9s
bFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxU
eXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywgc2hvdWxkU3luY1Njcm9s
bFBvc2l0aW9uKTsKICAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpCiB7Ci0gICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCi0gICAgW3Njcm9sbFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNj
cm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOwotICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKKyAgICBib29sIGFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBzY3JvbGxpbmdOb2Rl
KCkuc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpOworICAgIGJvb2wgbmVlZFRvU3RvcEFuaW1h
dGlvbiA9IHNjcm9sbGluZ05vZGUoKS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKCk7
CisgICAgaWYgKG5lZWRUb1N0b3BBbmltYXRpb24gJiYgYW5pbWF0aW9uSW5Qcm9ncmVzcykgewor
ICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXco
KSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbFZpZXcoKS5jb250ZW50T2Zmc2V0IGFuaW1hdGVkOk5P
XTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0KKworICAgIGlmIChz
Y3JvbGxpbmdOb2RlKCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oKSkgeworICAgICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXcoKSBzZXRDb250
ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCkgYW5pbWF0ZWQ6
WUVTXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworCisgICAgICAgIHNjcm9s
bGluZ05vZGUoKS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKHRydWUpOworICAgIH0gZWxz
ZSBpZiAoIWFuaW1hdGlvbkluUHJvZ3Jlc3MgfHwgbmVlZFRvU3RvcEFuaW1hdGlvbikgeworICAg
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXcoKSBz
ZXRDb250ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOwor
ICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgfQogfQogCiB2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFdpbGxTdGFydCgpIGNvbnN0
CkBAIC0zMzUsNiArMzYxLDE1IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUzo6c2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBGbG9hdFBvaW50CiAgICAgc2Nyb2xs
aW5nTm9kZSgpLndhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmcoc2Nyb2xsUG9zaXRpb24s
IHsgfSwgaW5Vc2VySW50ZXJhY3Rpb24gPyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpT
eW5jIDogU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIH0KIAordm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xs
aW5nQW5pbWF0aW9uKCkKK3sKKyAgICBhdXRvJiBub2RlID0gc2Nyb2xsaW5nTm9kZSgpOworICAg
IGlmICghKG5vZGUucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oKSAmJiBub2RlLnNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGlu
Z1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGUuc2Nyb2xs
aW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5zaWduZWQg
aG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAgaWYgKG1fdXBkYXRp
bmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggZWZjODJlODVhNzg1ZWQ1YjIzYTFlZDY4MjM3NWEzMDUxMzJmODMwYi4uNWNhYmUwNDQ1
ZmIzZjlkOWMwMTBiMjc4MWE1YWVkODI0ODUyM2Q0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzMyLDkgKzE3MzIsMTIgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAgICAgcGFnZUNs
aWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0
IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9s
bChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9s
bE9yaWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIHBhZ2VDbGllbnQoKS5y
ZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGlmICh3aXRo
QW5pbWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRp
b24oc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgZWxzZQorICAgICAgICBwYWdl
Q2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKIH0K
IAogV2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQb3NpdGlvbigp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDEwOTQ3ZmYw
ZGJiN2JlOTQ0NGEwMmYxZTMyMTNiOGNiZTFlMTA5ODYuLjY1ZGI0NGMzMWQ5MjBmMDNhNjBkYWI0
ZGQwZjkxN2RiNTk5M2RlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC02MTIsNyArNjEyLDcgQEAgcHVibGljOgogICAgIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQo
KSBjb25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpS
ZWdpb24mKTsKLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4p
OworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3Jv
bGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgYm9vbCB3
aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmll
d1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggZWE1MzUyNTdkZmNkYzYwMTAwOWNjYjU0Y2Iw
YjJiYmQ4MDQ5MmZjYy4uMmE3ZDIwYzFmMDUwYTVmNDQ2N2MzNjNiYzk1MDdhZTljZDlhMjM3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
QEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0Fy
ZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2lu
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdT
Y3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUo
KSBvdmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4
IGUxMzk5NjhkNGYwZWUzMzIzZGQyODlmNDc3ZGQ4ZDY0MWQ3N2VjM2EuLjUzN2ZkNjA1MWUzNTZk
YzUxNzFmMTc2Njk4NzFkYmE2YWY4MjFlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTk1LDcgKzk1LDEyIEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3Np
dGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9z
Y3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46
c2Nyb2xsT3JpZ2luXTsKKyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3Np
dGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5P
XTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24o
Y29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxP
cmlnaW4pCit7CisgICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246
c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwog
fQogCiBXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaAppbmRleCA4ZTY0OTM1NTQ1ODNhYmYzOTVkODkxYWNhYWJmMDE1ZjE3NjQ0NTk3Li5kM2Jj
OTEzM2VlMGQ0MTM1NzEzZTFjZWQ0NDhhMjFiNTI2MWE1MGJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNzMsNiArNzMsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBib29sIHN5bmNMYXllclBvc2l0aW9uKTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJ
bmRpY2VzQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBo
b3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCk7CiAKKyAgICB2b2lkIHNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKwogICAgIFdlYlBhZ2UqIG1fd2ViUGFnZTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgppbmRleCAyYzA5OGExMDk3MDIzNjdjMzgzMzcxZTg4
ZTVhNzYxZDQ1ZTE5OWFkLi5kNTUwY2VjMmNhMjdkZmNiNTgxNjlmZWRkODNkYjAzZjg4MTBjYThk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvciB7CiAgICAgU2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9y
Tm9kZSh1aW50NjRfdCBub2RlSUQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgc2Nyb2xsUG9zaXRpb24s
IGJvb2wgc3luY0xheWVyUG9zaXRpb24pOwogICAgIEN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hh
bmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25l
ZCB2ZXJ0aWNhbCk7CisgICAgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2Rl
KHVpbnQ2NF90IG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOwogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQppbmRleCA4MzU0NDFkMzE5Yjk1
ZjQ2Njg3NzU4NTM4OTA5MmM5ZWVhMjkzODYxLi5hMmQ3MjQ1OTZiNmI5YjVjZDBkMzEyM2MyMjA3
YzE0N2Q4NGM1YzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDQsNiArMTA0LDExIEBAIHZvaWQgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoU2Ny
b2xsaW5nCiAgICAgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMobm9kZUlELCBob3Jpem9udGFs
LCB2ZXJ0aWNhbCk7CiB9CiAKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBzZXRT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKG5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYTMwMjBkYTY3NDUyMTczNmI1
NjhiMWZhZDNjNTJjZDc5MzFjYjBhOS4uZDdkYWRiYWE5NzJkZjg4NGUyNmMxMDZhOGZhMTc2Nzg2
ODBhYmIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xODgsNiArMTg4LDcgQEAKICNkZWZp
bmUgV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREaXJl
Y3RvcnlVcGxvYWRFbmFibGVkIgogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgogI2RlZmlu
ZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktp
dENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQiCiAjZGVm
aW5lIFdlYktpdFJlbW90ZVBsYXliYWNrRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRSZW1v
dGVQbGF5YmFja0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0U3VidGxlQ3J5cHRvRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDA1ZDAzZTAxMjQ4
NzkyY2NlZjU3ZjllNzVkYWU4MDA0OTJkZjY0ZGIuLjUzM2ExZTIzOTdmMmZkMTlhZDVkNGE5MzA2
OTc5NDQ5MWEwZWI5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNjYzLDYgKzY2Myw3IEBAIHB1YmxpYzoKICNlbmRpZgog
CiAgICAgICAgIEBZRVMsIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJl
bmNlS2V5LAorICAgICAgICBATk8sIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBAWUVTLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NG
cm9tRmlsZVVSTHNRdWlya0tleSwKICAgICAgICAgQE5PLCBXZWJLaXRBbGxvd0Nyb3NzT3JpZ2lu
U3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFsc0tleSwKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQpAQCAtMzE4MSw2ICszMTgyLDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0
b3JJRCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENT
U09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29s
VmFsdWVGb3JLZXk6V2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVu
Y2VLZXldOworfQorCistICh2b2lkKXNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6
KEJPT0wpZmxhZworeworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiAtIChC
T09MKXdlYkFuaW1hdGlvbnNFbmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVG
b3JLZXk6V2ViS2l0V2ViQW5pbWF0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oCmluZGV4IDI5ZDcwZWQ5NjIyN2Q4M2NhNWMyNDA1MWZkOThmYTc1ZjE1Y2ViZTguLjQ1MzUy
OGUxNGI2ODAyYThkZDdhMDk3ZWNmNTZjYWY0NWU5MDVjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAt
NjMyLDYgKzYzMiw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVs
Q2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgYW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgamF2YVNjcmlwdE1hcmt1cEVuYWJsZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYmRkNmYwZDU4YzA5M2M0
YmVjM2RjNzY4ZTU4NGJlOTIxYTI5Y2MzNi4uYmYzNDRjMjA2ZmMwMzBhZTg2MDA2NmJhMmYxNjg2
YWE0M2Y1NDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtMjk5Miw2ICsyOTkyLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVM
b2FkaW5nUXVpcmsoKQogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChb
cHJlZmVyZW5jZXMgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0
U3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZChbcHJlZmVyZW5jZXMgc3ludGhldGljRWRp
dGluZ0NvbW1hbmRzRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRdKTsK
KyAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtwcmVmZXJl
bmNlcyBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0
TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoW3ByZWZlcmVuY2VzIG1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0XSk7CiAKICAgICBzd2l0Y2gg
KFtwcmVmZXJlbmNlcyBzdG9yYWdlQmxvY2tpbmdQb2xpY3ldKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRs
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmlkbAppbmRleCBhNzE3NjIyMjFiYzE4MjljODRlZmQzOTIwNDVkOTBhOTBmODU5YjEyLi5j
Y2ZmOWYwNTk3MDIzYTFlOTA0NzE1NTAyZDhmMjc5MTkxOWFhNzA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRs
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5pZGwKQEAgLTIyMyw2ICsyMjMsOCBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTYgOiBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNQogICAgIEhSRVNVTFQgc2V0VmlzdWFs
Vmlld3BvcnRBUElFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CiAgICAgSFJFU1VM
VCBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKyAg
ICBIUkVTVUxUIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoW291dCwgcmV0dmFsXSBC
T09MKik7CisgICAgSFJFU1VMVCBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtp
bl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIGZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChb
b3V0LCByZXR2YWxdIEJPT0wqIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgc2V0RmV0Y2hBUElLZWVw
QWxpdmVFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIHNwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wgKmVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAwOTkz
NzQyMGU0NmVhOTA3ZGFmMDc3M2JkZjU2ZTY2MDM5ZmM0MGY4Li4wOGM0NTY3MjdjMDMxNzJmMGI4
ZjZiZTQzMWFhOTcwYTE2NDgzMmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMjA5LDYgKzIwOSw3IEBACiAjZGVmaW5l
IFdlYktpdFNlcnZlclRpbWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRTZXJ2ZXJUaW1p
bmdFbmFibGVkIgogCiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQ
cmVmZXJlbmNlS2V5ICJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgorI2RlZmlu
ZSBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2Vi
S2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIKIAogI2RlZmluZSBXZWJLaXRSZXNp
emVPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJs
ZWQiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2Vz
LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCA5
NWViZWEyNjhjMWQ3NGRmMDdkYzJlZTgwYWQzZWIxMmIwZjYwYzY0Li5jOGUyMjVhYTQ4NThhODU4
Zjk1NWNjNDNmMTQ5NTkzZjlhM2U5NmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZXMuY3BwCkBAIC0zMzksNiArMzM5LDggQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6
aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShk
ZWZhdWx0cywgQ0ZTVFIoV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleSks
IGtDRkJvb2xlYW5GYWxzZSk7CiAKKyAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywg
Q0ZTVFIoV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkp
LCBrQ0ZCb29sZWFuRmFsc2UpOworCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMs
IENGU1RSKFdlYktpdENvcmVNYXRoTUxFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5G
YWxzZSk7CiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0
UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNl
KTsKQEAgLTIyODMsNiArMjI4NSwyMCBAQCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRDb3Jl
TWF0aE1MRW5hYmxlZChCT09MIGVuYWJsZWQpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hSRVNV
TFQgV2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoX091dF8g
Qk9PTCogZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAgIHJldHVybiBFX1BP
SU5URVI7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBTX09LOworfQor
CitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkKEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQpOworICAgIHJldHVybiBT
X09LOworfQorCiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpyZXF1ZXN0SWRsZUNhbGxiYWNrRW5h
YmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQogewogICAgIGlmICghZW5hYmxlZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDFkYWFhNzMwMjVhZTVjZjgzNGZl
M2ZmZWU5MTc5MjM3NDc1MWJhNTMuLjYwNjZlNDY0M2VhMjFiOTYzODI2MmMzYWJjNmIzNzJkMjZl
ZGJhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2Vz
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtMjcx
LDYgKzI3MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKF9PdXRfIEJP
T0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q1NTT01WaWV3
U2Nyb2xsaW5nQVBJRW5hYmxlZChCT09MKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChfT3V0XyBCT09MKik7Cisg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldENTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIGZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChCT09M
KTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkKF9PdXRfIEJPT0wqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5k
ZXggN2VjNGZmMTFhNjkyNGQ2MGZkYTQ4YmM4MjI3NDNmOTNlMTQzY2QyMy4uOGZlNTdmZmY2YzM1
MzZhOWJiY2ZkNzY0ZTBjY2I3MWIyMzI4MGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAKQEAgLTUzMTYsNiArNTMxNiwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZl
cmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgICAgIHJl
dHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCEh
ZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZzUHJpdmF0ZS0+Q1NTT01WaWV3U21vb3RoU2Nyb2xs
aW5nRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVy
biBocjsKKyAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCEh
ZW5hYmxlZCk7CisKICAgICBociA9IHByZWZlcmVuY2VzLT5wcml2YXRlQnJvd3NpbmdFbmFibGVk
KCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMyNmYyNzQz
M2I0Y2ZhMzJiODJlNjJhNzYwMGE0NmYxM2JkZTU4YTYuLjFlNmE4MWFmYzg1ZTg2NjMzY2ZlZmU0
Y2RiNmFiMGY0MWNhZDFkMWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOS0xMi0wNSAgQ2F0aGllIENoZW4gIDxj
YXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBi
ZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZv
cm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkz
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2Vk
IG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMp
OiBQYXJzZSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkLgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmg6IEFkZCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkLCBkaXNhYmxlZCBieSBkZWZhdWx0LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlv
bnMpOiBTZXQgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCBmcm9tIHRoZSB0ZXN0IG9w
dGlvbnMuCisKIDIwMTktMTItMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgSW50cm9kdWNlIGEgR1BVIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmNwcAppbmRleCA1NTZlZWMyNzY2MzdlODFiOTNmNzdkOTY1OTM3NWNmYzJhNDk1
OTU5Li45OWJiMmJhMzMyMmIxYWNhNzgzMTFiYzg4MTk1MGE0NzFmNWY5NGJjIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCkBAIC0xMjEsNiArMTIxLDggQEAgVGVzdE9wdGlvbnM6
OlRlc3RPcHRpb25zKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3Ry
aW5nJiBhYnNvbHUKICAgICAgICAgICAgIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBwYXJz
ZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0g
ImV4cGVyaW1lbnRhbDpSZXNpemVPYnNlcnZlckVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxl
UmVzaXplT2JzZXJ2ZXIgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAg
ICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkIikKKyAgICAgICAgICAgIGVuYWJsZUNTU09NVmlld1Ntb290aFNjcm9sbGluZyA9
IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtl
eSA9PSAiZXhwZXJpbWVudGFsOkNvcmVNYXRoTUxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJs
ZUNvcmVNYXRoTUwgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAg
ICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxl
ZCIpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCBlNTMzNWU4MzExNGU3OWU1YjU0
ZDg2MWMzZDIzZmZjZWJiYTcwYTBiLi5mN2U4ZDI5MTFkMTMwMzVlNjZjMTk2NWI3NzA2NDI4ZGRm
ZWE5YWFlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTUwLDYgKzUwLDcgQEAg
c3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxzZSB9
OwogICAgIGJvb2wgYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBlbmFibGVSZXNpemVPYnNlcnZlciB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlQ29yZU1hdGhNTCB7
IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrIHsgZmFsc2UgfTsK
ICAgICBib29sIGVuYWJsZUFzeW5jQ2xpcGJvYXJkQVBJIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBjY2ZmZTA1NWQzODM2YjJjMWY3
Y2QwZTQ5Y2Q4MDEwOTI1MDc5N2Y0Li43YTY3MjIyMmQ0ZGI2ZDIzNjBhZTc0ODViODMxMzkwOTlm
NmE1MzM4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBA
IC0xMDI5LDExICsxMDI5LDE1IEBAIHN0YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9yVGVz
dE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcHJlZmVyZW5jZXMuQ1NT
TG9naWNhbEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNTU0xvZ2ljYWw7CiAgICAgcHJlZmVyZW5j
ZXMuYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCA9IG9wdGlvbnMuYWRDbGlja0F0dHJpYnV0aW9u
RW5hYmxlZDsKICAgICBwcmVmZXJlbmNlcy5yZXNpemVPYnNlcnZlckVuYWJsZWQgPSBvcHRpb25z
LmVuYWJsZVJlc2l6ZU9ic2VydmVyOworICAgIHByZWZlcmVuY2VzLkNTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNTU09NVmlld1Ntb290aFNjcm9sbGluZzsK
ICAgICBwcmVmZXJlbmNlcy5jb3JlTWF0aE1MRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ29yZU1h
dGhNTDsKICAgICBwcmVmZXJlbmNlcy5yZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZCA9IG9wdGlv
bnMuZW5hYmxlUmVxdWVzdElkbGVDYWxsYmFjazsKICAgICBwcmVmZXJlbmNlcy5hc3luY0NsaXBi
b2FyZEFQSUVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUFzeW5jQ2xpcGJvYXJkQVBJOwogICAgIHBy
ZWZlcmVuY2VzLnByaXZhdGVCcm93c2luZ0VuYWJsZWQgPSBvcHRpb25zLnVzZUVwaGVtZXJhbFNl
c3Npb247CiAgICAgcHJlZmVyZW5jZXMudXNlc1BhZ2VDYWNoZSA9IG9wdGlvbnMuZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZTsKKworICAgIEFTU0VSVCghb3B0aW9ucy5lbmFibGVDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmcpOworICAgIEFTU0VSVCghcHJlZmVyZW5jZXMuQ1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZCk7CiB9CiAKIC8vIENhbGxlZCBvbmNlIG9uIER1bXBSZW5kZXJUcmVlIHN0
YXJ0dXAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNTBkMmFjMTRiMTIzODI0MzMzNjY5MzBmNTM4MTYzZDYwYTU2YTExZC4u
ODExN2Y0ZDJlYjE3NmNiOWJjYjg3MzM4ZTk2NzMxNzM1NmQ3NjU4MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM4IEBACisyMDE5LTEyLTA1ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBuYXRp
dmUgc2Nyb2xsIGludGVyZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lk
w6lyaWMgV2FuZy4KKworICAgICAgICBUaGUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZv
cm0gaXMgdXNpbmcgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gd2hpY2ggbmVlZCBlbmFibGUKKyAg
ICAgICAgQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQgYW5kIEFzeW5jRnJhbWVTY3JvbGxp
bmdFbmFibGVkLiBJbiBvcmRlciB0byB0ZXN0IHByb3Blcmx5LAorICAgICAgICBjb3B5IHNjcm9s
bC1iZWhhdmlvciB0ZXN0IHRvIGZhc3Qvc2Nyb2xsaW5nL2lvcy8KKworICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAgICAg
ICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAgICAod2FpdEZvclNjcm9sbEVuZCk6CisgICAg
ICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNjcm9sbFdpbmRvdyk6CisgICAgICAgICogZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVm
YXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3Mu
aHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwuCisgICAgICAgICog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50
b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGlu
dG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1s
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0
bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sLgor
CiAyMDE5LTEyLTA0ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGFsbG93IGluc3BlY3RvciB0byBwYXVzZSBwcm92aXNpb25h
bCBwYWdlIGxvYWQgYW5kIHJlc3RvcmUgaXRzIHN0YXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCA0NWZjZmNlNTA0MGJhYTljMDQzYjEwMGY0OWI2YzA0OGY3NmUxNWNhLi44OGMx
MWUzZGUyYWI2OWE5N2FkZWY3ZTEwMTZiNDY5Zjk3MWNmOTg2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0xMi0wNSAgQ2F0aGllIENoZW4gIDxj
YXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBi
ZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZv
cm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkz
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2Vk
IG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0OgorCiAyMDE5
LTEyLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFVwZGF0ZSBjc3MvY3NzLXZhbHVlcyBXUFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGEwOTY4ZTAyNWJkODYwNGMwNzY1MzUyZDNhMmU4YjNjYzEyMzNhYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJl
aGF2aW9yLmpzCkBAIC0wLDAgKzEsODcgQEAKK2Z1bmN0aW9uIG9ic2VydmVTY3JvbGxpbmcoZWxl
bWVudHMsIGNhbGxiYWNrKSB7CisgIGlmICghQXJyYXkuaXNBcnJheShlbGVtZW50cykpCisgICAg
ICBlbGVtZW50cyA9IFtlbGVtZW50c107CisgIHZhciBsYXN0Q2hhbmdlZEZyYW1lID0gMDsKKyAg
dmFyIGxhc3RMZWZ0ID0gbmV3IE1hcCgpOworICB2YXIgbGFzdFRvcCA9IG5ldyBNYXAoKTsKKyAg
ZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4geworICAgIGxhc3RMZWZ0LnNldChlbGVtZW50
LCBlbGVtZW50LnNjcm9sbExlZnQpOworICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQu
c2Nyb2xsVG9wKTsKKyAgfSk7CisgIGZ1bmN0aW9uIHRpY2soZnJhbWVzKSB7CisgICAgLy8gV2Ug
cmVxdWVzdEFuaW1hdGlvbkZyYW1lIGVpdGhlciBmb3IgNTAwIGZyYW1lcyBvciB1bnRpbCAyMCBm
cmFtZXMgd2l0aAorICAgIC8vIG5vIGNoYW5nZSBoYXZlIGJlZW4gb2JzZXJ2ZWQuCisgICAgaWYg
KGZyYW1lcyA+PSA1MDAgfHwgZnJhbWVzIC0gbGFzdENoYW5nZWRGcmFtZSA+IDIwKSB7CisgICAg
ICBjYWxsYmFjayh0cnVlKTsKKyAgICB9IGVsc2UgeworICAgICAgdmFyIHNjcm9sbEhhcHBlbmVk
ID0gZWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4geworICAgICAgICByZXR1cm4gZWxlbWVudC5z
Y3JvbGxMZWZ0ICE9IGxhc3RMZWZ0LmdldChlbGVtZW50KSB8fCBlbGVtZW50LnNjcm9sbFRvcCAh
PSBsYXN0VG9wLmdldChlbGVtZW50KTsKKyAgICAgIH0pOworICAgICAgaWYgKHNjcm9sbEhhcHBl
bmVkKSB7CisgICAgICAgIGxhc3RDaGFuZ2VkRnJhbWUgPSBmcmFtZXM7CisgICAgICAgIGVsZW1l
bnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAgICAgICAgICBsYXN0TGVmdC5zZXQoZWxlbWVu
dCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICAgICAgICBsYXN0VG9wLnNldChlbGVtZW50LCBl
bGVtZW50LnNjcm9sbFRvcCk7CisgICAgICAgIH0pOworICAgICAgICBjYWxsYmFjayhmYWxzZSk7
CisgICAgICB9CisgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljay5iaW5kKG51bGwsIGZy
YW1lcyArIDEpKTsKKyAgICB9CisgIH0KKyAgdGljaygwKTsKK30KKworZnVuY3Rpb24gd2FpdEZv
clNjcm9sbEVuZChlbGVtZW50cykgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsKKyAgICBvYnNlcnZlU2Nyb2xsaW5nKGVsZW1lbnRzLCAoZG9uZSkgPT4geworICAgICAgaWYg
KGRvbmUpCisgICAgICAgIHJlc29sdmUoKTsKKyAgICB9KTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9u
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9k
cyB0byBlbnN1cmUgdGhlIGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisg
IHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wID0gMDsKKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwg
YmVoYXZpb3I6ICJpbnN0YW50In0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUg
dGhlIGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ1dp
bmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxp
bmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOworICBzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9
KTsKK30KKworZnVuY3Rpb24gc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgY2xhc3NO
YW1lKSB7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYXV0b0JlaGF2aW9yIiwg
InNtb290aEJlaGF2aW9yIik7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05h
bWUpOworfQorCitmdW5jdGlvbiBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCBiZWhhdmlvciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KSB7CisgIHZhciBhcmdzID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9y
ID0gYmVoYXZpb3I7CisgIHN3aXRjaCAoc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBjYXNlICJzY3Jv
bGxJbnRvVmlldyI6CisgICAgICBhcmdzLmlubGluZSA9ICJzdGFydCI7CisgICAgICBhcmdzLmJs
b2NrID0gInN0YXJ0IjsKKyAgICAgIGVsZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyhhcmdz
KTsKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBhcmdzLmxlZnQgPSBlbGVtZW50
VG9SZXZlYWxMZWZ0OworICAgICAgYXJncy50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3A7CisgICAg
ICBzY3JvbGxpbmdFbGVtZW50W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKKyAgICAgIGJyZWFrOwor
ICB9Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCBiZWhhdmlvciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KSB7CisgIHZhciBhcmdzID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9y
ID0gYmVoYXZpb3I7CisgIGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7CisgIGFyZ3Mu
dG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wOworICBzY3JvbGxpbmdXaW5kb3dbc2Nyb2xsRnVuY3Rp
b25dKGFyZ3MpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ZDRjYTY0MTU1ZjRmOWRlOGY5ZTEwOTNkOWIxNzEyZjQxN2NlNjkwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1Mg
SW5zdGFudCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2
aW9yIAorUEFTUyBTbW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNj
cm9sbC1iZWhhdmlvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM1YzY1MDNhYjI2NTAzNWQwMDhjNjAwNjY4NWQ2Y2MxMzcxODFkOGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1
bHQtY3NzLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+
Cis8dGl0bGU+VGVzdGluZyBkZWZhdWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+
Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20i
PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20t
dmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0
PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lk
dGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJs
b2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4K
KyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9
ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9z
cGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFj
a2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2
YXIgc2Nyb2xsaW5nRWxlbWVudCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVh
bExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIHZhciBzY3Jv
bGxGdW5jdGlvbiA9ICJzY3JvbGwiOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9s
bCIsICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgIH0sICJJbnN0YW50IHNjcm9s
bGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsKKworICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgfSk7CisgIH0sICJTbW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0
IHNjcm9sbC1iZWhhdmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2E5NjFlZjU2YTkxODU3YzZkMmNhYmI5MDg0OGM1YjJk
OWYwNjYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACisK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0
aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBv
biBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGlu
ZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3Rh
bnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzOGRmZmRl
Y2U1OWIzNzUwZTk2ZjFhMjg2MmM1ZTk0OTdhNDIzOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApA
QCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRl
cm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVz
dGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3Jv
bGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBj
b250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2Fu
ZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVo
YXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJs
ZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDog
MjAwcHg7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRv
OworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7
CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxv
d05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsg
aGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwg
Z3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6
IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwi
IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lk
dGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwv
ZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgc2Nyb2xsaW5nRWxlbWVudCA9IG92ZXJmbG93
Tm9kZTsKKyAgdmFyIHN0eWxlZEVsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50
VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworCisg
IFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9y
RWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsK
KyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOwor
ICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZl
KCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Nj
cm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIp
OworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0
X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsK
KyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkg
PT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5n
RWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxp
bmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3Jv
bGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3Vs
ZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgfSwgYEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IHNtb290aCBiZWhhdmlvcmApOworICB9KTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJz
Y3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgIHJl
dHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
MiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNt
b290aCBzY3JvbGxpbmciKTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Ny
b2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOwor
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4g
eworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
fSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxl
bWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2Nh
ZWEyN2JiNTNmMWE5NDRkY2EyZDY4MTdhM2VmYjg1ZmNhNzcyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzcgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3
aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBz
bW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxp
bmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQz
MjViNGI5ZTI0ZWY3ZGI3YmE2OTgwNGJlMmI1N2Y3MzhhMzY5ZGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCkBAIC0wLDAgKzEsMTY5IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAt
LT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNj
cm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiB0aGUgbWFpbiBmcmFtZTwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBtYXJnaW46IDA7CisgIH0KKyAgLmF1dG9C
ZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhh
dmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2
IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdlQ29udGVudCIgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+CisgIDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVh
bCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0
aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorPC9kaXY+
Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFzeW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7
CisgIHZhciBzY3JvbGxpbmdFbGVtZW50LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgcGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICBzY3JvbGxpbmdF
bGVtZW50ID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICBzdHlsZWRFbGVtZW50ID0g
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50LnN0eWxlLndpZHRoID0g
KDEwICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJweCI7CisgICAgcGFnZUNvbnRlbnQuc3R5
bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYgKyAicHgiOworICAgIGVs
ZW1lbnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiAzOworICAgIGVs
ZW1lbnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA0OworICAgIGVs
ZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdCArICJweCI7Cisg
ICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcCArICJweCI7
CisKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOyB9KTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5
IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24s
IG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVo
YXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlv
biwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2Fp
dEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNt
b290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVs
ZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5n
RWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7
CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhC
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0
aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAg
fSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2
ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7
CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgICAgcmV0
dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7
CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4g
ZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzgyMzg1YWFiNDkzNTE0YmRlN2JiNTk1YTc5YTc0MTQwMjY0MDQzOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKKworUEFT
UyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFi
b3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2lu
ZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA1N2IwY2QxMjE5MTAyYWVkYTAwODQ1OTE1NTY5YmI3ZTBh
ZDBkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApAQCAtMCwwICsxLDE3MCBAQAor
PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NT
T01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93
U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25z
JyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIG9uIHRoZSB3aW5kb3cgb2YgdGhlIG1haW4g
ZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxtaW5pbXVtLXNj
YWxlPTEsaW5pdGlhbC1zY2FsZT0xIj4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTD
qXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNj
cm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNz
c3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIGJv
ZHkgeworICAgIG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2aW9yIHsKKyAgICBzY3JvbGwt
YmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVo
YXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxk
aXYgaWQ9InBhZ2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0
b3A6IDA7Ij4KKyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7
IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBwYWdl
TG9hZGVkID0gYXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ1dpbmRv
dywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
OworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBhZ2VMb2FkZWQuc3RlcF9mdW5j
X2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nV2luZG93ID0gd2luZG93OworICAgIHN0
eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgcGFnZUNvbnRlbnQu
c3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiA1ICsgInB4IjsKKyAgICBw
YWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNiAr
ICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRo
KSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0
KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxM
ZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUudG9wID0gZWxlbWVudFRvUmV2
ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKCgpID0+IHsgcmVz
ZXRTY3JvbGxGb3JXaW5kb3cod2luZG93KTsgfSk7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxU
byIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdX
aW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0Jl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsK
KyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRT
Y3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7
CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3Jv
bGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsK
KyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAg
IHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3Jv
bGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5k
b3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dp
bmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2lu
ZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRT
Y3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGlu
Z1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRv
IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0
U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxp
bmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUo
KTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxp
bmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFks
IDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlv
biwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9
KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJz
bW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
c2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVt
ZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9
KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBt
YWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93
KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3Jv
bGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9w
Iik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworICB9KSk7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDNhODIwZTU4NTk2ZDU2ZTNmZTg5MjExOWJl
MDNkYzQ4ZDBiOTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHNjcm9sbEludG9WaWV3IHdpdGggbmVzdGVkIGVsZW1l
bnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1u
ZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDViNWQ4ZDdjNzg0NDVh
MGQyYzA3MmZhMTdkN2ZjOGMxOTZjZTU0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVk
Lmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVl
ICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0
bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciB3aXRoIHNjcm9sbEludG9WaWV3IGZv
ciBuZXN0ZWQgc2Nyb2xsaW5nIG5vZGVzPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxl
IHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICBoZWlnaHQ6IDIwMHB4OworICB9CisgIC5zbW9v
dGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKyAgLmdyYWRp
ZW50IHsKKyAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVu
KTsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXY+CisgIDxkaXYg
Y2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogNDUwcHgiPgor
ICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUw
MHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9vdGhCZWhhdmlvciIg
c3R5bGU9IndpZHRoOiA0MDBweCI+CisgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9
IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0i
c2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAzNTBweCI+CisgICAgICAgIDxkaXYgY2xhc3M9Imdy
YWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAg
ICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMzAwcHgiPgorICAgICAg
ICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUw
MHB4OyI+PC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9vdGhCZWhh
dmlvciIgc3R5bGU9IndpZHRoOiAyNTBweCI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAyMDBweCI+CisgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVh
bCIgc3R5bGU9IndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+
PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0i
Z3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAg
ICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAx
MDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGNs
YXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2
PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgLy8gVGhlIENTU09N
LVZpZXcgc3BlYyBhbmQgaW1wbGVtZW50YXRpb25zIGZvbGxvdyBkaWZmZXJlbnQgYWxnb3JpdGht
cyAoc2Nyb2xscyBwZXJmb3JtZWQgaW4gcGFyYWxsZWwsIGFzIGlubmVyLXRvLW91dGVyIHNlcXVl
bmNlIG9yIGFzIG91dGVyLXRvLWlubmVyIHNlcXVlbmNlKS4KKyAgLy8gU2VlIGh0dHBzOi8vZ2l0
aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMTI3CisgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgdmFyIGRpdnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2Nyb2xsYWJsZSIp
OworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGFibGVEaXYpOworICAgICAgfSk7CisgICAgICBlbGVtZW50VG9SZXZlYWwu
c2Nyb2xsSW50b1ZpZXcoe2lubGluZTogInN0YXJ0IiwgYmxvY2s6ICJzdGFydCIsIGJlaGF2aW9y
OiAiYXV0byJ9KTsKKyAgICAgIHZhciBzY3JvbGxUb3AgPSBuZXcgTWFwKCk7CisgICAgICB2YXIg
aXNTbW9vdGggPSBuZXcgTWFwKCk7CisgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYp
ID0+IHsKKyAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2LCBzY3JvbGxhYmxlRGl2
LnNjcm9sbFRvcCk7CisgICAgICAgIGlzU21vb3RoLnNldChzY3JvbGxhYmxlRGl2LCBzY3JvbGxh
YmxlRGl2LmNsYXNzTGlzdC5jb250YWlucygic21vb3RoQmVoYXZpb3IiKSk7CisgICAgICAgIC8v
IElmIHNjcm9sbCBvcGVyYXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIGluIHBhcmFsbGVsLCBzY3Jv
bGwgYm94ZXMgd2l0aCBpbnN0YW50IGJlaGF2aW9yIG1pZ2h0IGFsc28gbmVlZCB0byB3YWl0IGZv
ciB0aGVpciBwcmVkZWNlc3NvcnMuCisgICAgICAgIGlmIChpc1Ntb290aC5nZXQoc2Nyb2xsYWJs
ZURpdikpCisgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxUb3AuZ2V0KHNjcm9sbGFi
bGVEaXYpLCA1MDAsICJFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNob3VsZCBub3Qgc2Ny
b2xsIGltbWVkaWF0ZWx5Iik7CisgICAgICB9KTsKKworICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhB
cnJheS5mcm9tKGRpdnMpLCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAg
ICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAgICAgICBhc3NlcnRf
bGVzc190aGFuX2VxdWFsKHNjcm9sbFRvcC5nZXQoc2Nyb2xsYWJsZURpdiksIHNjcm9sbGFibGVE
aXYuc2Nyb2xsVG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAg
IGlmICghaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAgICAgICBhc3NlcnRf
YW55KGFzc2VydF9lcXVhbHMsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCBbMCwgNTAwXSwgIkVs
ZW1lbnQgd2l0aCBpbnN0YW50IGJlaGF2aW9yIHNob3VsZCBqdW1wIHRvIHRoZSBmaW5hbCBwb3Np
dGlvbiIpOworICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsIDUwMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgICAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2LCBzY3JvbGxhYmxl
RGl2LnNjcm9sbFRvcCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAg
ICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAg
ICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgInNjcm9sbEludG9WaWV3IHdp
dGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciIpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44NTVhNmE2MTBmMzczMWFjN2VkZmRiMGUyZGRhMzhiMDU4ZWM5MWQw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBA
CisKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xs
IHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAw
KSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWlu
ZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBz
Y3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBz
Y3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BB
U1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9t
ICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAs
IDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJm
b3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBz
Y3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3Ro
IHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkg
IAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAw
LCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3Np
dGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUw
MCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4g
cGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1
c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZv
cm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNp
bmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGlu
ZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNT
IFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBh
biBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYTQxYjhiMDhkYWYyMTNhOWY5YTg1ZmYwYTQwZGY1Y2RhMTRlNmEw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTAsMCArMSwxNTEgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHNjcm9sbGluZyBhbiBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yPC90aXRsZT4KKzxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3
LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3aWR0aDog
NDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsK
KyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92ZXJmbG93
Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBo
ZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBn
cmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDog
NTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1JldmVhbCIg
c3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0
aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4KKyAgPC9k
aXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIEZvciBzbW9vdGggYmVoYXZpb3IsIGV2b2x1dGlv
biBvZiBzY3JvbGwgcG9zaXRpb25zIG92ZXIgdGltZSBpcyBub3Qgc3BlY2lmaWVkIGJ5IENTU09N
IFZpZXcuCisgIC8vIFRoaXMgdGVzdCByZWxpZXMgb24gdGhlIG1pbmltYWwgYXNzdW1wdGlvbiB0
aGF0IHNjcm9sbCBwb3NpdGlvbiBmdW5jdGlvbnMgYXJlIG1vbm90b25pYy4KKyAgWyJzY3JvbGwi
LCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKGZ1bmN0
aW9uKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgW3tsZWZ0OjAsIHRvcDowfSwge2xlZnQ6MTAwMCwg
dG9wOjB9LCB7bGVmdDowLCB0b3A6NTAwfSwge2xlZnQ6MTAwMCwgdG9wOjUwMH1dLmZvckVhY2go
KGluaXRpYWwpID0+IHsKKyAgICAgIHZhciBmaW5hbExlZnQgPSA1MDA7CisgICAgICB2YXIgZmlu
YWxUb3AgPSAyNTA7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgc2Nyb2xs
Tm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIGluaXRpYWwubGVmdCwgaW5p
dGlhbC50b3ApOworICAgICAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExl
ZnQ7CisgICAgICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCBpbml0aWFsLmxlZnQsICJTY3JvbGxMZWZ0IHNo
b3VsZCBiZSBhdCBpbml0aWFsIHBvc2l0aW9uIik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhv
bGRUb3AsIGluaXRpYWwudG9wLCAiU2Nyb2xsVG9wIHNob3VsZCBiZSBhdCBpbml0aWFsIHBvc2l0
aW9uIik7CisgICAgICAgICAgaWYgKHNjcm9sbEZ1bmN0aW9uID09PSAic2Nyb2xsQnkiKQorICAg
ICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3Ro
IiwgZmluYWxMZWZ0IC0gaW5pdGlhbC5sZWZ0LCBmaW5hbFRvcCAtIGluaXRpYWwudG9wKTsKKyAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBmaW5hbExlZnQsIGZpbmFsVG9wKTsKKyAgICAgICAgICBvYnNl
cnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICAgICAg
dHJ5IHsKKyAgICAgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVm
dDsKKyAgICAgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7Cisg
ICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoTWF0aC5oeXBvdChmaW5hbExlZnQg
LSBuZXdMZWZ0LCBmaW5hbFRvcCAtIG5ld1RvcCksIE1hdGguaHlwb3QoZmluYWxMZWZ0IC0gb2xk
TGVmdCwgZmluYWxUb3AgLSBvbGRUb3ApLCAiU2Nyb2xsIHBvc2l0aW9uIHNob3VsZCBtb3ZlIHRv
d2FyZHMgdGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIGlmIChkb25lKSB7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCBmaW5hbExlZnQsICJTY3JvbGxM
ZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMobmV3VG9wLCBmaW5hbFRvcCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwg
cG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBvbGRMZWZ0ID0gbmV3
TGVmdDsKKyAgICAgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICAgICAgfSBjYXRj
aChlKSB7CisgICAgICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmIChkb25lKQorICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgICAgfSwgYFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNt
b290aCBzY3JvbGxpbmcgZnJvbSAoJHtpbml0aWFsLmxlZnR9LCAke2luaXRpYWwudG9wfSkgdG8g
KCR7ZmluYWxMZWZ0fSwgJHtmaW5hbFRvcH0pIHVzaW5nICR7c2Nyb2xsRnVuY3Rpb259KCkgYCk7
CisgICAgfSk7CisgIH0pOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5l
dyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRTY3JvbGwo
b3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZhbHNlOwor
ICAgICAgdmFyIHNjcm9sbERpcmVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKKyAgICAgIHZhciBvbGRM
ZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZs
b3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7CisgICAg
ICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9k
ZSwgInNjcm9sbCIsICJzbW9vdGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNjcm9sbGlu
ZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBu
ZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmIChpbml0aWFsU2Ny
b2xsQWJvcnRlZCkgeworICAgICAgICAgICAgaWYgKHNjcm9sbERpcmVjdGlvbkNoYW5nZWQpIHsK
KyAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0
LCAiU2Nyb2xsTGVmdCBrZWVwcyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9n
cmVhdGVyX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgZGVjcmVh
c2luZyIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgIHNjcm9sbERpcmVjdGlv
bkNoYW5nZWQgPSBuZXdMZWZ0IDw9IG9sZExlZnQgJiYgbmV3VG9wIDw9IG9sZFRvcDsKKyAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9sZExl
ZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBrZWVw
cyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAmJiBuZXdU
b3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBzY3JvbGwu
CisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAgICAgICAg
ICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDUwMCwg
MjUwKTsKKyAgICAgICAgICAgICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7
CisgICAgICAgICAgICAgICAgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAg
ICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCByZWFjaCBm
aW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwg
IlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICB9Cisg
ICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOwor
ICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisgICAgfSk7
CisgIH0sICJTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5n
IHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICByZXNldFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxTY3JvbGxB
Ym9ydGVkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxM
ZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICBh
c3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRUb3AsIDAp
OworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3RoIiwgMTUw
MCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihk
b25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05v
ZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bFRvcDsKKyAgICAgICAgICBpZiAoIWluaXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAgICAgICAg
ICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQg
a2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFs
KG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAg
ICAgICAgaWYgKG5ld0xlZnQgPiAxMDAwICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAgICAgICAg
ICAgIC8vIEFib3J0IHRoZSBpbml0aWFsIHNjcm9sbC4KKyAgICAgICAgICAgICAgICBpbml0aWFs
U2Nyb2xsQWJvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxv
d05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIDUwMCwgMjUwKTsKKyAgICAgICAgICAgICAgICBu
ZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAgbmV3VG9w
ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7
CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9sbFRvcCBz
aG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAg
IH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdM
ZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9uIik7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Nyb2xsVG9wIHNob3VsZCBz
dGF5IGF0IGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9sZExlZnQg
PSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBjYXRjaChl
KSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChkb25lKQor
ICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFuIGluc3RhbnQg
c2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJv
b3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3OTlmZGNjMjllZDU2MzM3YTg5MTIxYjA1OTBh
MDliN2JlZjVjMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMzcgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBT
dWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1Mg
QWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBh
biBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NmQxMWFiOTYyMTYzNDc4NDI5ZjZmOGE4YTdhNGMyMjJiMmVmMTU3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1s
PjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0Pgor
PGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIgd2lkdGg9IjQw
MHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgorICA8c3R5bGU+
CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRvQmVoYXZpb3Ig
eworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21vb3RoQmVoYXZp
b3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8L3N0eWxlPgor
ICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsg
YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Jz4KKyAgICAg
IDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0
OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHlsZT0nZGlzcGxh
eTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWln
aHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2PgorICA8L2Jv
ZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFtZUxvYWRUZXN0
ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5nRWxlbWVudCwg
c3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVm
dCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkg
PT4geworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9k
ZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisg
ICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5m
b3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZl
KSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7
CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
YXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAg
ICAgfSk7CisgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Ny
b2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAs
IDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhl
bigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7CisgIH0pKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA1ZWIzMjcyZjQwOGU1ZTY0ZDFiYjdlYzJhMDdlMGJmY2M5MDQ3NDQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBAQAor
CitQQVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Ny
b2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAor
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJh
bWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUt
d2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzMzM2Q2NGY4NTA3MTY3MGJkNDdiY2U4NmIwNjU1OTY4
MjUwNDkzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzEgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxl
ZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3Ig
RWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJm
cmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5n
QGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5n
LWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3Iu
anMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1l
Tm9kZSIgd2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxo
dG1sPgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAg
IC5hdXRvQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAg
ICAuc21vb3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAg
fQorICA8L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBo
ZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBn
cmVlbik7Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRo
OiA1MDBweDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFs
JyBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdp
ZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAg
IDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFy
IGlmcmFtZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Ny
b2xsaW5nV2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBlbGVt
ZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOwor
ICBpZnJhbWVOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5zdGVw
X2Z1bmNfZG9uZSgoKSA9PiB7CisgICAgc2Nyb2xsaW5nV2luZG93ID0gaWZyYW1lTm9kZS5jb250
ZW50V2luZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9kZS5jb250
ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisgICAgWyJz
Y3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikg
PT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JX
aW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNj
cm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxX
aW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5j
dGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVh
bFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9s
bEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9
PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxX
aW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3Jv
bGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Ny
b2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxG
b3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRv
dywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2lu
ZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJl
aGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVz
ZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5k
b3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIp
OworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93
KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNt
b290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsK
KyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBz
bW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxp
bmciKTsKKworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggM2FjMGEzN2NmZmJk
NWExNTVjY2ViYzUyNzI4YWU2ZjIxMzBiOTQxNC4uODc1YTcyN2M5NTg4NzA0NDYzNjE2ZWE2MDM1
ZTU1NzBlMDliZDA0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgUHJv
cGVydHkgc2Nyb2xsLWJlaGF2aW9yIGhhcyBpbml0aWFsIHZhbHVlIGF1dG8gYXNzZXJ0X3RydWU6
IHNjcm9sbC1iZWhhdmlvciBkb2Vzbid0IHNlZW0gdG8gYmUgc3VwcG9ydGVkIGluIHRoZSBjb21w
dXRlZCBzdHlsZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBzY3JvbGwt
YmVoYXZpb3IgZG9lcyBub3QgaW5oZXJpdCBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK1BBU1MgUHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9yIGhhcyBpbml0aWFsIHZhbHVlIGF1
dG8gCitQQVNTIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBkb2VzIG5vdCBpbmhlcml0IAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385146</attachid>
            <date>2019-12-09 06:02:46 -0800</date>
            <delta_ts>2019-12-11 00:45:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204936-20191209220243.patch</filename>
            <type>text/plain</type>
            <size>254400</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA5ZjEyNDFlM2MzZTBm
YTY3MmY4ODM0MTY3NGU3M2JkYzcxZTg0NS4uOWFmOWRhNGMyZmUzOTZlNGNlMDIwNDEzNjk4ODJh
OTgxOGU2YmE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3MyBAQAorMjAxOS0xMi0wNSAgQ2F0
aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZv
ciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgcHJvZ3JhbW1hdGljIHNtb290aCBzY3JvbGxpbmcgaW4g
V2ViS2l0IGZyb20gdGhlIENTU09NIFZpZXcKKyAgICAgICAgc3BlY2lmaWNhdGlvbiBbMV0uIFRv
IHVzZSB0aGlzIGVmZmVjdCwgd2ViIGRldmVsb3BlcnMgY2FuIHBhc3MgYSBiZWhhdmlvciBwYXJh
bWV0ZXIgKGF1dG8sCisgICAgICAgIHNtb290aCwgb3IgaW5zdGFudCkgdG8gRWxlbWVudC5zY3Jv
bGwsIEVsZW1lbnQuc2Nyb2xsVG8sIEVsZW1lbnQuc2Nyb2xsQnksCisgICAgICAgIEVsZW1lbnQu
c2Nyb2xsSW50b1ZpZXcsIFdpbmRvdy5zY3JvbGwsIFdpbmRvdy5zY3JvbGxUbyBvciBXaW5kb3cu
c2Nyb2xsQnkgWzJdLiBXaGVuIGJlaGF2aW9yCisgICAgICAgIGlzIGF1dG8sIHRoZSBpbnN0YW50
L3Ntb290aCBjaGFyYWN0ZXJpc3RpYyBpcyBhY3R1YWxseSB0YWtlbiBmcm9tIHRoZSB2YWx1ZSBv
ZiBhIG5ldyBDU1MKKyAgICAgICAgc2Nyb2xsLWJlaGF2aW9yIHByb3BlcnR5IFszXS4gQm90aCB0
aGUgbmV3IENTUyBhbmQgRE9NIGJlaGF2aW9yIGFyZSBwcm90ZWN0ZWQgYnkgYSBydW50aW1lCisg
ICAgICAgIGZsYWcuIFRoaXMgcGF0Y2ggaXMgcGFydCBzY3JvbGwgYmVoYXZpb3IsIG9ubHkgc3Vw
cG9ydCBpT1MgcGxhdGZvcm0uIEl0IHJlbGllcyBvbiBVSVNjcm9sbFZpZXcncworICAgICAgICBu
YXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBwb3J0IGFuZCBpcyBleGVjdXRlZCBpbiB0aGUgVUkg
cHJvY2Vzcy4KKworICAgICAgICBbMV0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZp
ZXcKKyAgICAgICAgWzJdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNkaWN0
ZGVmLXNjcm9sbG9wdGlvbnMKKyAgICAgICAgWzNdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvcgorCisgICAgICAgIFRlc3RzOiBmYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0
aW9ucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZCBJREwgZmlsZXMgZm9yIFNjcm9sbE9wdGlvbnMgYW5kIFNjcm9sbEJlaGF2
aW9yLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERpdHRvLgorICAgICAgICAqIEhl
YWRlcnMuY21ha2U6IEFkZCBoZWFkZXJzIGZvciBTY3JvbGxCZWhhdm9yIGFuZCBTY3JvbGxPcHRp
b25zLgorICAgICAgICAqIFNvdXJjZXMudHh0OiBBZGQgU2Nyb2xsQmVoYXZvciBhbmQgU2Nyb2xs
T3B0aW9ucyBpbXBsZW1lbnRhdGlvbi4gQWxzbyBidWlsZAorICAgICAgICBTY3JvbGxBbmltYXRp
b25TbW9vdGguY3BwIG9uIGFsbCBwbGF0Zm9ybXMuCisgICAgICAgICogU291cmNlc0dUSy50eHQ6
IFJlbW92ZSBTY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIHNpbmNlIGl0IGlzIGJ1aWx0IG9uIGFs
bCBwbGF0Zm9ybXMgbm93LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogQWRkIGZpbGVzIHRvIHRoZSBidWlsZCBzeXN0ZW0uCisgICAgICAgICogY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6IEhhbmRsZSBzY3JvbGwtYmVoYXZpb3IuCisgICAg
ICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5T
dHlsZSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjogQWRkIHNjcm9sbC1iZWhh
dmlvci4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogQWRkIGtleXdvcmRzIGZv
ciBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0
LmNwcDogQWRkIHJ1bnRpbWUgY29uZmlnIGZvciBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChX
ZWJDb3JlOjpDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4
dC5oOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHRIYXNoOjpoYXNo
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHA6IFJlbW92ZSBz
Y3JvbGwtYmVoYXZpb3IgdGVtcGxhdGVzLiBJdCBpcyBoYW5kbGVkIGluIHRoZQorICAgICAgICBz
bG93IHBhdGggc2luY2UgcHJvcGVydHkgY2FuIGJlIGRpc2FibGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyRmFzdFBhdGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlE
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnN1bWVTY3JvbGxCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZSk6IFBhcnNlIHNjcm9sbC1iZWhhdmlvciAo
b25seSBpZiBlbmFibGVkKS4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlldyk6IFBhc3Mgc2Nyb2xsIGJlaGF2aW9yLCBp
ZiBhbnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxCeSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxUbyk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBi
ZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRTY3JvbGxM
ZWZ0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNjcm9sbFRvcCk6IEhhbmRsZSB0aGUgY2FzZSB3
aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzY3JvbGxCeSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9sbFRvIGNvbnN0KTogSGFuZGxlIHRoZSBjYXNl
IHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgVGhlIG9wdGltaXphdGlv
biBvZiBjYW5jZWwgKDAsIDApIHNjcm9sbGluZyBpcyBza2lwcGVkIGlmIGFuIGFuaW1hdGVkIHNj
cm9sbCBpcyBpbiBwcm9ncmVzcy4KKyAgICAgICAgT3RoZXJ3aXNlLCB0aGUgcHJldmlvdXMgc2Ny
b2xsIHdvbid0IGJlIHN0b3BwZWQgYnkgYSBmb2xsb3ctdXAgc2Nyb2xsLgorICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xs
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24pOiBTdGFydCBhbiBhbmltYXRlZCBzY3JvbGwgZm9yIGlPUyBwbGF0Zm9ybS4g
SW4gbm9uLWlPUyBwbGF0Zm9ybXMsIGl0J3MgYW4gaW5zdGFsbCBzY3JvbGwuCisgICAgICAgICog
cGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjp1c2VTbW9vdGhTY3JvbGxpbmcpOiBIZWxwZXIgZnVuY2l0
b24gdG8gZGV0ZXJtaW5lIHRoZSBzY3JvbGwgYmVoYXZpb3IgdG8gYXBwbHkgdG8KKyAgICAgICAg
YW4gZWxlbWVudCBmcm9tIHRoZSBDU1MgYW5kIERPTSBiZWhhdmlvci4KKyAgICAgICAgKiBwYWdl
L1Njcm9sbEJlaGF2aW9yLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3Iu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOiBNYWtl
IHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb24uIEFsc28gcmVtb3ZlIHVubmVj
ZXNzYXJ5IGZvcndhcmQgZGVjbGFyYXRpb24uCisgICAgICAgICogcGFnZS9TY3JvbGxJbnRvVmll
d09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb24u
CisgICAgICAgICogcGFnZS9TY3JvbGxPcHRpb25zLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uv
U2Nyb2xsT3B0aW9ucy5pZGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRpb25z
Lmg6IE1ha2UgdGhpcyBzdHJ1Y3QgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb25zLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVG9PcHRpb25zOjpTY3JvbGxUb09wdGlvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6bm9ybWFsaXplTm9uRmluaXRlQ29vcmRpbmF0ZXNPckZhbGxCYWNrVG8pOiBDb3B5
IHRoZSBjdXJyZW50IFNjcm9sbFRvT3B0aW9ucyBzbyB0aGF0IHRoZSBzY3JvbGwgYmVoYXZpb3Ig
aXMgcHJlc2VydmVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbDogTWFrZSB0
aGlzIGNsYXNzIGluaGVyaXQgZnJvbSBTY3JvbGxPcHRpb25zLgorICAgICAgICAqIHBhZ2UvU2V0
dGluZ3MueWFtbDogTmV3IHNldHRpbmcgZm9yIENTU09NIFZpZXcgc21vb3RoIHNjcm9sbGluZy4K
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZSk6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBh
bmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk6IFVwZGF0ZSB0aGUgc2Ny
b2xsIGFuaW1hdGlvbiBzdGF0dXMgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlKTogQWRkIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIHRvIGluZGlj
YXRlIGl0J3MgYW5pbWF0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzIGNvbnN0
KTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBBZGQgd2l0
aEFuaW1hdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1Ry
ZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogVXBkYXRlIHRoZSBz
Y3JvbGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTogQWRkIGEgZmxhZyB0byBp
bmRpY2F0ZSB0aGUgc2Nyb2xsIGlzIGFuaW1hdGVkIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyk6IElmIG5lZWRTeW5jU2Nyb2xs
UG9zaXRpb24gaXMgdHJ1ZSwgc2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJv
Y2VzcywgZXZlbiBpZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGRvZXNuJ3QgY2hhbmdlLgorICAgICAg
ICBNYWludGFpbiB0aGUgc3RhdHVzIG9mIG1fc3RvcFNjcm9sbEFuaW1hdGlvbiBhbmQgbV9yZXF1
ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKTogQW5pbWF0ZWQgc2Ny
b2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGltbWVkaWF0ZWx5LCBzbyBkb24n
dCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZvIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbik6IG1f
cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24gaW5kaWNhdGVzIHRoYXQgdGhpcyBpcyBhbiBhbmlt
YXRlZCBzY3JvbGwgcmVxdWVzdC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24pOiBJ
ZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHByZXZpb3Vz
IHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlv
biBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRkIFNj
cm9sbEJlaGF2aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQgb3Igc21vb3RoIHNjcm9s
bC4KKyAgICAgICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGluZGljYXRlIHRoZSBzdGF0
dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBGb2xsb3cgdGhl
IENTU09NIFZpZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdl
IGludGVycnVwdCBpdCBhbmQgY29udGludWUgdGhlIHNjcm9sbCBjYWxsIChldmVuIHdoZW4gd2Ug
YXJlIGF0IHRoZSBmaW5hbAorICAgICAgICBwb3NpdGlvbikuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxW
aWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OlNjcm9sbGFibGVBcmVhKTogQWRkIG1fY3VycmVudFNj
cm9sbEJlaGF2aW9yVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppc1Nj
cm9sbEluUHJvZ3Jlc3MpOiBIZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgd2hldGhlciBzY3JvbGwK
KyAgICAgICAgYW5pbWF0aW9uIGlzIGluIHByb2dyZXNzIG9uIHRoZSBhbmltYXRvci4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppc1dlYlNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MpOiBDaGVjayBpZiB0aGUgbV9zY3JvbGxBbmltYXRvciBvZgorICAgICAgICB0aGUgV2ViIHBy
b2Nlc3MgaXMgcGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9u
KTogVG8gYXZvaWQgaXRlcmF0ZSBjYWxsaW5nLAorICAgICAgICBtb3ZlIHRoZSByZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUocG9zaXRpb24pIGNoZWNraW5nIG91dCBvZiBzZXRTY3JvbGxPZmZz
ZXRGcm9tQW5pbWF0aW9uKCkuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjdXJyZW50U2Nyb2xsQmVoYXZpb3JT
dGF0dXMgY29uc3QpOiBNYWludGFpbiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5
cGUgY29uc3QpOiBNYWludGFpbiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94OjpzZXRTY3JvbGxMZWZ0KTogQWRkIGZsYWcgdG8gaW5kaWNhdGUgYW5pbWF0ZWQgb3Ig
bm90LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRTY3JvbGxUb3ApOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9u
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9ZUG9zaXRp
b24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb1Bvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldCk6IEZv
bGxvdyB0aGUgQ1NTT00gVmlldyBzcGVjOiBJZiBhIHNjcm9sbCBpcyBpbgorICAgICAgICBwcm9n
cmVzcywgd2UgaW50ZXJydXB0IGl0IGFuZCBjb250aW51ZSB0aGUgc2Nyb2xsIGNhbGwgKGV2ZW4g
d2hlbiB3ZSBhcmUgYXQgdGhlIGZpbmFsCisgICAgICAgIHBvc2l0aW9uKS4gSXQncyBTY3JvbGxC
ZWhhdmlvclR5cGU6Okluc3RhbnQgc2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKTogRGl0dG8uIFRoaXMgaXMgc2lt
aWxhciB0byBzY3JvbGxUb09mZnNldAorICAgICAgICBidXQgYW5pbWF0ZXMgdGhlIHNjcm9sbCBv
biBpT1MgcGxhdGZvcm0uIEl0J3MgU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGggc2Nyb2xsLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKTogVXNlIHNjcm9sbFRvUG9zaXRp
b24gdG8gaGFuZGxlIGluc3RhbnQgb3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaDogQWRkIHNjcm9sbCBiZWhhdmlvciB0byBTY3JvbGxUZWN0VG9WaXNp
YmxlT3B0aW9ucy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KTogQWRkIGFuaW1hdGVk
IGZsYWcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3ApOiBE
aXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6IEhhbmRsZSAnc21vb3RoIHNjcm9sbGlu
ZycgYm9vbGVhbiBkYXRhLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnVzZVNtb290
aFNjcm9sbGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0VXNl
U21vb3RoU2Nyb2xsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjppbml0aWFs
VXNlU21vb3RoU2Nyb2xsaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOiBEaXR0
by4KKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U21vb3RoU2Nyb2xsaW5nKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OnVuY29uc3RyYWluZWRTY3JvbGxUbyk6CisKIDIwMTktMTItMDQgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIGEgR1BVIHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMGI5MmM3NDYzNTRiZTFlNjIwYTg2ZGQwOTEyZTZhNmZmZGZjNjdm
My4uZGUxY2VkNGJlM2E2NjhiZGU2ZTMwM2ZhYThmZDEzNDc4ZmMyMmI2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2MSBAQAorMjAxOS0xMi0wNSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMg
b24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBi
eSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcg
YXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuIE9uIGlvcyBwbGF0Zm9ybSwgdXNlIG5hdGl2ZSBh
bmltYXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaW50ZXJmYWNlcyB0byBwZXJmb3JtYW5jZSBzbW9v
dGggc2Nyb2xsIGFuZCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNz
LgorCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uLmNwcDogRGVhbCB3aXRoIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
V2l0aEFuaW1hdGlvbiBlbmNvZGUgYW5kIGRlY29kZS4KKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKToKKyAgICAgICAgKEFyZ3VtZW50
Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKToKKyAgICAgICAgKFdl
YktpdDo6ZHVtcCk6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChwb2ludHNF
cXVhbEluUm91bmRUb0RldmljZVBpeGVsKTogSGVscCBmdW5jdGlvbiB0byBjaGVjayBpZiB0d28g
ZmxvYXQgcG9pbnRzIGFyZSBub3QgZXF1YWwgYnV0IGluIHRoZSBzYW1lIGRldmljZSBwaXhlbC4K
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3Jv
bGxPcmlnaW46YW5pbWF0ZWQ6XSk6IEFkZCBhbmltYXRlZCBmbGFnIHRvIHN0YXJ0IGEgYW5pbWF0
ZWQgc2Nyb2xsIGlmIG5lZWRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRF
bmRTY3JvbGxpbmdBbmltYXRpb246XSk6IFNlbmQgc3JvbGwgZW5kIG1lc3NhZ2UgdG8gdGhlIFdl
YiBwcm9jZXNzLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBv
c2l0aW9uOnNjcm9sbE9yaWdpbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6cmVxdWVzdFNjcm9sbFdpdGhBbmlt
YXRpb24pOiBQcm92aWRlIGludGVyZmFjZSBmb3IgYW5pbWF0ZWQgc2Nyb2xsaW5nLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6Y29tbWl0TGF5ZXJUcmVlKTogQWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgICogVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xs
aW5nVHJlZU5vZGVEaWRTY3JvbGwpOiBTeW5jIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdl
YiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogQWRkIGFuaW1hdGVkIHNjcm9s
bGluZyBpbmZvIHRvIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBTeW5jIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4gSXQncyBzcGVjaWZpYyB0byB0aGUgcm9vdCBub2Rl
LgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKTogQWRkIGFuaW1hdGVkIGluZm8uCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVz
dHNTY3JvbGwpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6
c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBE
aXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5t
bToKKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZp
ZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246XSk6IFNlbmQgc2NvbGwgZW5kIGluZm8gdG8gdGhl
IFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4pOiBJZiB0aGUgc2Nyb2xsIHBv
c2l0aW9uIG9mIHRoZSBXZWIgcHJvY2VzcyBpc24ndCBlcXVhbCB0byB0aGUgVUkgcHJvY2VzcywK
KyAgICAgICAgdGhlIHNjcm9sbCBwb3NpdGlvbiBzaG91bGQgYmUgc3luY2hyb25pemVkLCBldmVu
IHRoZXJlJ3Mgbm8gc2Nyb2xsaW5nIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAg
ICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3Np
dGlvblNjcm9sbGluZ0xheWVycyk6IENhbGxpbmcgdGhlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxp
bmcgaW50ZXJmYWNlIGZvciBzbW9vdGggc2Nyb2xsLgorICAgICAgICBJZiB0aGVyZSdzIGEgc2Ny
b2xsIGFuaW1hdGlvbiBwZXJmb3JtaW5nLCBpdCBzaG91bGQgYmUgc3RvcHBlZCBmaXJzdCwgdGhl
biBzdGFydCBhIG5ldyBzY3JvbGxpbmcuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRp
b24pOiBTeW5jIHNjcm9sbCBlbmQgaW5mbyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cmVxdWVzdFNjcm9sbCk6IFRvIGNhbGwgZGlmZmVyZW50IGZ1bmN0aW9ucyBmb3Igc21vb3Ro
IGFuZCBpbnN0YW50IHNjcm9sbC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0NoYW5nZWRGb3JOb2RlKToKKwogMjAxOS0xMi0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgYSBHUFUgcHJvY2VzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGE4Yzc3MjM0MmJhNWZjYjVmNDBkMWY5YmRlMDk0
NTI4NjBjYmQzNWEuLjBkYWJmNTE4YjFmMmRhZjNlNjMxMTViNThjMjA2ZDBiNjRhYzE3YzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMi0wNSAg
Q2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2Vz
IGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAg
ICAgQWRkIHJ1biB0aW1lIGZsYWcgZm9yIENTU09NVmlld1Ntb290aFNjcm9sbGluZy4KKworICAg
ICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEhhbmRsZSBDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmcgYnkuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bToKKyAgICAgICAgKFtXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IERpc2FibGUgQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nIGJ5IGRlZmF1bHQuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2Vz
IENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRdKTogR2V0dGVyLgorICAgICAgICAoLVtX
ZWJQcmVmZXJlbmNlcyBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOl0pOiBTZXR0
ZXIuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hh
bmdlZDpdKToKKwogMjAxOS0xMi0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgYSBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCmluZGV4IDlhNWEwMmExMWM4NTRjY2ZiZTVmOTVhZWNkNzIxYmU5ZDMzYWJjZjku
LjA4OTBhMjgyZDFlZGFlNDI4Njc4MDQ2OGFhNzIwNDg0OGExY2JhY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0xMi0wNSAgQ2F0aGllIENoZW4g
IDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9s
bCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxh
dGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJh
c2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgKiBJbnRlcmZh
Y2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsOiBIYW5kbGUgc21vb3RoIHNjcm9sbGluZyBv
cHRpb24uCisgICAgICAgICogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IERpdHRvLgorICAg
ICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJQcmVmZXJlbmNl
czo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncyk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNl
czo6c2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJl
ZmVyZW5jZXMuaDogRGl0dG8uCisgICAgICAgICogV2ViVmlldy5jcHA6IERpdHRvLgorICAgICAg
ICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAxOS0xMi0wMyAgQW50
b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9u
c10gQWRkIGEgcnVudGltZSBmbGFnIGZvciBXZWIgQW5pbWF0aW9ucyBjb21wb3NpdGUgb3BlcmF0
aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0MGYzZGQ5ZTg1MTEwNmM3NzYwNTBhYzg3M2Vi
NGFkZjQzMWZjMzU2Li5jZTViMzA3Y2RkNmQzOWY4ZTllYTFjZWM3YTgxMjk0MTUwOGUxYmM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTY0LDggKzk2NCwxMCBAQCBzZXQoV2ViQ29yZV9OT05f
U1ZHX0lETF9GSUxFUwogICAgIHBhZ2UvUmVzaXplT2JzZXJ2ZXJDYWxsYmFjay5pZGwKICAgICBw
YWdlL1Jlc2l6ZU9ic2VydmVyRW50cnkuaWRsCiAgICAgcGFnZS9TY3JlZW4uaWRsCisgICAgcGFn
ZS9TY3JvbGxCZWhhdmlvci5pZGwKICAgICBwYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwK
ICAgICBwYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwKKyAgICBwYWdlL1Njcm9sbE9wdGlv
bnMuaWRsCiAgICAgcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsCiAgICAgcGFnZS9TaGFyZURhdGEu
aWRsCiAgICAgcGFnZS9VbmRvSXRlbS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDg4M2NhMzk4YTVlNThkZDQ5NTkxMDFmYjIwZTkzMWZhOThhMmJkMDIuLjRjMzAwYTU4MzVm
MjMzNGZkNDdlNGRkM2MyYmJiZTY2OWU3Y2ZmMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtOTE1LDggKzkxNSwxMCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL3Bh
Z2UvUmVzaXplT2JzZXJ2ZXJFbnRyeS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JlZW4u
aWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsIFwKICAgICAkKFdl
YkNvcmUpL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9w
YWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TY3Jv
bGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9TaGFyZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL3Bh
Z2UvVW5kb0l0ZW0uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGNiNGZlMWFjZWRkODc3NzNk
OGE1ZDBmZjJjYWU1NDM2NDJlOTg3MmYuLjcxMzFiMmZiZWI5NGI0ZTQ4NTg3NmFlZWI2NGNhN2Ew
ZjAxYjg4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtODE4LDggKzgxOCwxMCBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9SZW1vdGVGcmFtZS5oCiAg
ICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAogICAgIHBhZ2UvUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oCisgICAgcGFnZS9TY3JvbGxCZWhhdmlvci5oCiAgICAgcGFnZS9TY3JvbGxJ
bnRvVmlld09wdGlvbnMuaAogICAgIHBhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmgKKyAgICBw
YWdlL1Njcm9sbE9wdGlvbnMuaAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmgKICAgICBwYWdl
L1NlY3VyaXR5T3JpZ2luLmgKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDFjZGM4YTQxZmM5MDRhOGI2ZGQ2NmZhZTljYTkwNzJjMzkwMjEwZmYuLjZhM2M5
M2YyNzdlZDgxMDhjOGYyMzM1ZWRkY2M1MmJkNWExNjhkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0x
NjQ2LDYgKzE2NDYsNyBAQCBwYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcAogcGFnZS9SZXNv
dXJjZVVzYWdlVGhyZWFkLmNwcAogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAogcGFn
ZS9TY3JlZW4uY3BwCitwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcAogcGFnZS9TZWN1cml0eU9yaWdp
bi5jcHAKIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAogcGFnZS9TZWN1cml0eVBvbGljeS5j
cHAKQEAgLTE3NTEsNiArMTc1Miw3IEBAIHBsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5j
cHAKIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKIHBsYXRmb3JtL1NTTEtl
eUdlbmVyYXRvci5jcHAKIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKIHBsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApAQCAtMzM3Niw4ICsz
Mzc4LDEwIEBAIEpTU1ZHWm9vbUFuZFBhbi5jcHAKIEpTU1ZHWm9vbUV2ZW50LmNwcAogSlNTY3Jl
ZW4uY3BwCiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCitKU1Njcm9sbEJlaGF2aW9yLmNwcAog
SlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwCiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAK
K0pTU2Nyb2xsT3B0aW9ucy5jcHAKIEpTU2Nyb2xsVG9PcHRpb25zLmNwcAogSlNTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50LmNwcAogSlNTZXJ2aWNlV29ya2VyLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RL
LnR4dAppbmRleCBjMmMyNzA5Yjg3OWE4Mzg2OTI4OWZlMjg3MTM1N2NkZTYyNmExYWE0Li41NGI1
MzZlZDljMGJmMGNkZjVlZWFhYzY3N2U5YmY2MWMzN2VkYWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4
dApAQCAtNjMsNyArNjMsNiBAQCBwYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVT
dGlja3lOb2RlLmNwcAogcGFnZS9zY3JvbGxpbmcvZ2VuZXJpYy9TY3JvbGxpbmdUaHJlYWRHZW5l
cmljLmNwcAogCiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25LaW5ldGljLmNwcAotcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0vVXNlckFnZW50UXVpcmtzLmNwcAog
CiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjZWVhNDUy
NmViOWM2ZGIwOTA5MjNhZTFkYzBmZGIwNjVlMWQzNDlhLi40N2JlZmE4MzVhNGRjZTdkODM0Mzdm
NzllY2VmMGE2MGM4NGI4ZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzg5LDYgKzIzODksOCBAQAogCQk4MzQwN0ZDMTFF
OEQ5QzE3MDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0MDdGQzAxRThEOUMxMjAwRTA0OEQz
IC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQjAgLyogSlNTY3Jv
bGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExvZ2ljYWxQb3Np
dGlvbi5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQzEgLyogSlNTY3JvbGxJbnRv
Vmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5o
ICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyogSlNTY3JvbGxCZWhhdmlvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDEx
REE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLzsgfTsKKwkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1QTUxRTAwRkZFOEU1IC8qIEpT
U2Nyb2xsT3B0aW9ucy5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFRDIgLyogSlNT
Y3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oICov
OyB9OwogCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQ4QkZBQTFCODU3
Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggKi87IH07CiAJCTgzNERGQUQwMUY3REFF
NUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRERkFDQzFGN0RBRTU2MDBDMjcyNUIgLyogU2hhcmVk
U3RyaW5nSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0yNDQzLDYgKzI0NDUsOCBAQAogCQk4M0M0NUI4RTFEQzJCNjhBMDA4ODcxQkEgLyog
VmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0M1Nzk1
RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFEQTU5QjYyMDAzNTU0
MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMwMTAwNkY5Qzk3IC8qIFNjcm9s
bEludG9WaWV3T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3T3B0aW9u
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTgz
QzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDI0
IC8qIFNjcm9sbEJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNTBDM0U3
MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMwMTAwNkZBQ0E4IC8q
IFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRDM1QUVD
MUM3MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBG
NzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFD
NzE4RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBG
NzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CkBAIC0xMDE0NSw5
ICsxMDE0OSwxNCBAQAogCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5n
SGFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRTdHJp
bmdIYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1MEMzRTcxREE1OUI2
MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3T3B0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxJbnRvVmlld09w
dGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAw
MzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzNTBD
M0U3MURBNTlCNjIwMDM1NjQzNCAvKiBTY3JvbGxCZWhhdmlvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsT3B0aW9ucy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xs
VG9PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbFRvT3B0
aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAz
NTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xs
QmVoYXZpb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTgxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbE9wdGlvbnMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0
NDYgLyogU2Nyb2xsVG9PcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxU
b09wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUyMEM3RDFBNzFC
RkNDMDA2QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDU1NGb250RmFtaWx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
NTY1N0M2MUVDQUIwRTgwMENERTcyRCAvKiBKU0RPTU1hdHJpeEluaXQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXRyaXhJbml0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjY5LDkgKzEwMjc4LDEzIEBACiAJCTgzRTk1OUUxMUI4
QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNh
bFBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1
QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEQ0IC8qIEpT
U2Nyb2xsQmVoYXZpb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNTY3JvbGxCZWhhdmlvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlC
MzAwMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9P
cHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xs
VG9PcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDExREE1
QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbElu
dG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9s
bEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0U5QjMw
MTFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JvbGxPcHRpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Nj
cm9sbFRvT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9s
bFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTk4QjFGNTA5
NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4M0VFNTk4QzFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDczMCwxMCArMjA3NDMsMTUgQEAKIAkJCQlCQ0VD
MDFCQTBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmNwcCAqLywKIAkJCQlCQ0VDMDFCQjBDMjc0
REFDMDA5RjRFQzkgLyogU2NyZWVuLmggKi8sCiAJCQkJQkNFQzAxQkMwQzI3NERBQzAwOUY0RUM5
IC8qIFNjcmVlbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM0IC8qIFNjcm9s
bEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xs
QmVoYXZpb3IuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVo
YXZpb3IuaWRsICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NTQzNSAvKiBTY3JvbGxJbnRv
Vmlld09wdGlvbnMuaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xs
SW50b1ZpZXdPcHRpb25zLmlkbCAqLywKIAkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTU0MjQgLyog
U2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCiAJCQkJODM1MEMzRTgxREE1OUI2MjAwMzU1NDI0
IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2MjAw
MzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0
MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwgKi8sCiAJCQkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2
IC8qIFNjcm9sbFRvT3B0aW9ucy5oICovLAogCQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQ0NiAv
KiBTY3JvbGxUb09wdGlvbnMuaWRsICovLAogCQkJCUJDRDBFMEY3MEU5NzJDMzUwMDI2NURFQSAv
KiBTZWN1cml0eU9yaWdpbi5jcHAgKi8sCkBAIC0yNTUyMSwxMCArMjU1MzksMTQgQEAKIAkJCQk1
OEIyRkEwMjIyMzJENjBBMDA5MzhENjMgLyogSlNSZXNpemVPYnNlcnZlckVudHJ5LmggKi8sCiAJ
CQkJQkNFQzAxQzAwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmNwcCAqLywKIAkJCQlCQ0VD
MDFDMTBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCAqLywKKwkJCQk4M0U5QjMwMDFEQTVB
NTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAgKi8sCisJCQkJODNFOUIzMDExREE1
QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLywKIAkJCQk4M0U5QjMwMDFEQTVB
NTFFMDBGRkQ4RTUgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwICovLAogCQkJCTgzRTlC
MzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oICovLAogCQkJ
CTgzRTlCMzAwMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAg
Ki8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmggKi8sCisJCQkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9u
cy5jcHAgKi8sCisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9u
cy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9u
cy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRp
b25zLmggKi8sCiAJCQkJN0M3M0ZCMEYxOTFFRjZGNDAwN0RFMDYxIC8qIEpTVXNlck1lc3NhZ2VI
YW5kbGVyLmNwcCAqLywKQEAgLTMwODY5LDggKzMwODkxLDEwIEBACiAJCQkJNUUyQzQzNkMxQkNG
MDcxRTAwMDFFMkJDIC8qIEpTUlRDVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNF
QzAxQzMwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
REExNUVDRTEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9jZXNzb3JOb2RlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyogSlNTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYxREE1QkM1RTAwMkI1RUMxIC8qIEpTU2Ny
b2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzQ0NzZFRjFEQTVCQzVF
MDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVDMSAvKiBKU1Njcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VEMDZBRDExQzc3NzU0ODAwRkRGQUYxIC8qIEpTU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4MkMyNTYxRjMx
NDNDRDAwNTlCQTdDIC8qIEpTU2VydmljZVdvcmtlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjA3
Myw2ICszMjA5Nyw3IEBACiAJCQkJNDRDOTkxODYwRjNEMUVCRTAwNTg2NjcwIC8qIFNjcm9sbGJh
clRoZW1lSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCODUzRTBFN0M3RjExMDBBQjY5ODQg
LyogU2Nyb2xsYmFyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTcxNDA2MTQyMTcw
QjgwMERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTgz
QzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFBODRGMDUxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9sbENvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNjA1QUVEMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25z
dHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNjJFRTgxNERBMjJBNzAwNDE1NTZDIC8q
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTA5LDYgKzMyMTM0
LDcgQEAKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyogU2Nyb2xsSW50b1ZpZXdPcHRp
b25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUFGRThEMDE5Q0I4NjcyMDAwRjU2RDggLyogU2Ny
b2xsTGF0Y2hpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNTc5NUQxREE1QzMwMTAw
NkY5Qzg2IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJODND
NTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUY0Nzg3NTU0MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ2NzI5MjgxRTBERTY4NTAwQUNDM0Q4IC8qIFNjcm9sbFNu
YXBPZmZzZXRzSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZB
Q0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDFjNGUzNmYx
NDk2YjgxYmNmZjI0ZjVhNGM0YTI3YWQ5YThjMTE5M2UuLmQ0YWJmMjNiNzhkZjUzNmQ1Yzk1OTA5
YzM2YjA3MTBjYWNmYmYxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMzkzLDYgKzMzOTMsMTAgQEAgUmVmUHRyPENT
U1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShj
b25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwogICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVUb3VjaCk7CiAjZW5kaWYKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2aW9yOgorICAgICAgICAgICAgaWYgKCFz
dHlsZS51c2VTbW9vdGhTY3JvbGxpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFs
dWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOworICAgICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVTbW9vdGgp
OwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGVyc3BlY3RpdmU6CiAgICAgICAgICAgICBpZiAo
IXN0eWxlLmhhc1BlcnNwZWN0aXZlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydGllcy5qc29uCmluZGV4IDQxNTc4YTk0ZWQwZGM1ZjVmNGU4NGM4MDVjYjliYTAx
NzVlYmRkNWQuLmY5ODJkM2Y1ZWJhNTU4NTMxNWIyZDUxNTQ2MzVhOGIzMDk0YmJjNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzU1Nyw2ICszNTU3LDE2IEBACiAg
ICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvU1ZHL3NoYXBlcy5o
dG1sIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Nyb2xsLWJlaGF2aW9y
IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiYXV0byIsCisg
ICAgICAgICAgICAgICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3Bl
Y2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiY3Nzb20tdmlldyIs
CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20t
dmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0s
CiAgICAgICAgICJzaGFwZS1yZW5kZXJpbmciOiB7CiAgICAgICAgICAgICAiaW5oZXJpdGVkIjog
dHJ1ZSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCkBAIC02NDg5LDYgKzY0OTksMjIgQEAKICAg
ICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdWktNC8jcHJv
cGRlZi11c2VyLXNlbGVjdCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgInNj
cm9sbC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAgICAg
ICAgImF1dG8iLAorICAgICAgICAgICAgICAgICJzbW9vdGgiCisgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAiY29udmVy
dGVyIjogIlNtb290aFNjcm9sbGluZyIsCisgICAgICAgICAgICAgICAgIm5hbWUtZm9yLW1ldGhv
ZHMiOiAiVXNlU21vb3RoU2Nyb2xsaW5nIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJz
dGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJleHBlcmltZW50YWwiCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAg
ICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1z
Y3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICAgICJzY3Jv
bGwtcGFkZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAg
ICAgICAgICAgICAgImVuYWJsZS1pZiI6ICJFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQIiwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNWQ3ZjQwODFhMDMzNTZhYmM1MDdl
MjAwZWNiYjBhOTRhYmQyZjc1Ny4uYjU5NzM0ZGU4ZTBjYjhiYmVjMmEwZjQwZmFiYmZiYzNkNzdl
ODZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTEzODcsNiAr
MTM4NywxMCBAQCBwYW4teQogcGluY2gtem9vbQogI2VuZGlmCiAKKy8vIHNjcm9sbC1iZWhhdmlv
cgorLy8gYXV0bworc21vb3RoCisKIC8vIGhhbmdpbmctcHVuY3R1YXRpb24KIGFsbG93LWVuZAog
Zmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3Bw
CmluZGV4IDc1MzcxODhjYjkzZDMwMWM4MjRhNzg4ZDUzOTUzZWFlYzAzNDk3MWIuLjcxZjlhYTYy
YzRjYjIxOGYzNTNiYWEzNDQ2N2JkZjRmZjNmZWE1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcApAQCAtNzUsNiArNzUsNyBAQCBDU1NQYXJz
ZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgVVJMJiBzaGVldEJhcwogICAgIGF0dGFjaG1lbnRFbmFibGVkID0gUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQoKTsKICNl
bmRpZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCku
ZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CisgICAgc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0g
ZG9jdW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCk7CiAg
ICAgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IGRvY3VtZW50LnBhZ2UoKSA/IGRvY3VtZW50LnBhZ2Uo
KS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpIDogZmFsc2U7CiB9CiAKQEAgLTk5LDYgKzEwMCw3IEBA
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQYXJz
ZXJDb250ZXh0JiBiKQogICAgICAgICAmJiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIuYXR0YWNo
bWVudEVuYWJsZWQKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxl
ZCA9PSBiLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAorICAgICAgICAmJiBhLnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCA9PSBiLnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLmhhc0Rv
Y3VtZW50U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luCiAgICAg
ICAgICYmIGEudXNlU3lzdGVtQXBwZWFyYW5jZSA9PSBiLnVzZVN5c3RlbUFwcGVhcmFuY2U7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmluZGV4IDg2
NTI1ZmQ3MGM0MmU5MTNkYWFiYjlkOWIwYTJhMGYzZDEwY2VkZmEuLmM3NGRjOTRjMjViZjI5MWQz
YjMwZTI5MDBlZjBmY2U4ZWEzODYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyQ29udGV4dC5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBib29sIGF0
dGFjaG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRDU1NQ
YXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxlZCB7
IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0IGdl
dE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4geyBm
YWxzZSB9OwpAQCAtMTE2LDcgKzExNyw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFzaCB7
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAgICAgICYga2V5LmF0dGFj
aG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYKLSAgICAg
ICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8
IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2aW9y
RW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDEyCisgICAgICAgICAgICAmIGtleS5tb2Rl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0aGlz
IGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJpdHMpOwogICAgICAgICByZXR1
cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckZhc3RQYXRocy5jcHAKaW5kZXggMzFkMTJhYjlhYjYxOWZmNWFlMDE2ZjdjNjYzNDI0Y2IwYzlh
YTQzNS4uNDIxMjg4OWVkMGUzMzIwYzU1ZmE5Y2FhZTMwZjRiOTliYTU2OTU5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtNjM2
LDEwICs2MzYsNiBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9w
ZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZAogICAgICAgICAgICAgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVN0aWNreSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0U3RpY2t5
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6IC8vIG5vbmUgfCBib3RoIHwgaG9yaXpvbnRh
bCB8IHZlcnRpY2FsIHwgYXV0bwogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5v
bmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJvdGggfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUhvcml6
b250YWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVZlcnRpY2FsIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvOwotICAgIC8vIEZJWE1FLU5FV1BBUlNFUjogSW52ZXN0aWdhdGUgdGhpcyBwcm9wZXJ0
eS4KLSAgICAvLyBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsQmVoYXZpb3I6IC8vIGF1dG8gfCBzbW9v
dGgKLSAgICAvLyAgICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmNzc29tU21vb3Ro
U2Nyb2xsRW5hYmxlZCgpKTsKLSAgICAvLyAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0
byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU21vb3RoOwogICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFw
ZVJlbmRlcmluZzoKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDcmlz
cGVkZ2VzIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVHZW9tZXRyaWNQcmVjaXNpb247CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVqb2luOgpAQCAtOTM5LDcgKzkzNSw2IEBAIGJvb2wgQ1NT
UGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJZCkKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5Rm9udEtlcm5pbmc6CiAgICAgLy8gY2FzZSBD
U1NQcm9wZXJ0eUh5cGhlbnM6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93QW5jaG9y
OgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKICAgICAvLyBjYXNlIENT
U1Byb3BlcnR5U2Nyb2xsU25hcFR5cGU6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGln
bkxhc3Q6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRDb21iaW5lVXByaWdodDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggZWJk
MGVhZjVmNjc2N2RmYzJkOTQ2ZTRlOGMxYTAzN2E5YzczODEzMS4uNjNmNWFiNTJmNzMwMzI1NjFk
OGQ5ZGRjZDZkOGM3NjIwOWE0OGE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTIzMjcsNiArMjMyNywxNCBAQCBzdGF0aWMgUmVm
UHRyPENTU1ZhbHVlTGlzdD4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFu
Z2UmIHJhbmdlKQogCiAjZW5kaWYKIAorc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
Y29uc3VtZVNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAg
IGF1dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5pZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENT
U1ZhbHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlU21vb3RoKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3RhdGljIFJl
ZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChy
YW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTM5MjcsNiAr
MzkzNSwxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmds
ZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlT
Y3JvbGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxTbmFwVHlwZShtX3Jh
bmdlKTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKKyAgICAg
ICAgaWYgKCFtX2NvbnRleHQuc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5n
ZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVybiBjb25zdW1lQ2xp
cChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGM5NDYzYjFmZDdjZjYzZjAxNTRkNjIyM2MwYjAzMzQx
Y2NiNmVjYzQuLmJjNThmNGQ2MTdiMmRiYzU4Yzg4MDQwZDEyZWU5NzM4OGMwNTIzNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTgzMiw3ICs4MzIsNiBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9s
bEludG9WaWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4m
JiBhcgogICAgIGJvb2wgaW5zaWRlRml4ZWQ7CiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJvdW5k
cyA9IHJlbmRlcmVyKCktPmFic29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwogCi0gICAg
Ly8gRklYTUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCiAg
ICAgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIG9wdGlvbnM7CiAgICAgaWYgKGFyZykgewogICAgICAg
ICBhdXRvIHZhbHVlID0gYXJnLnZhbHVlKCk7CkBAIC04NTEsNyArODUwLDggQEAgdm9pZCBFbGVt
ZW50OjpzY3JvbGxJbnRvVmlldyhPcHRpb25hbDxWYXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3
T3B0aW9ucz4+JiYgYXIKICAgICAgICAgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLAogICAg
ICAgICBpc0hvcml6b250YWwgPyBhbGlnblggOiBhbGlnblksCiAgICAgICAgIGlzSG9yaXpvbnRh
bCA/IGFsaWduWSA6IGFsaWduWCwKLSAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9s
bGluZzo6Tm8KKyAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8sCisg
ICAgICAgIG9wdGlvbnMuYmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0bykKICAg
ICB9OwogICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYWJzb2x1dGVCb3VuZHMs
IGluc2lkZUZpeGVkLCB2aXNpYmxlT3B0aW9ucyk7CiB9CkBAIC05MTIsNyArOTEyLDcgQEAgdm9p
ZCBFbGVtZW50OjpzY3JvbGxCeShjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMpCiAKIHZv
aWQgRWxlbWVudDo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIHNjcm9sbEJ5
KHsgeCwgeSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMoeCwgeSkpOwogfQogCiB2
b2lkIEVsZW1lbnQ6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Ny
b2xsQ2xhbXBpbmcgY2xhbXBpbmcpCkBAIC05NDgsMTMgKzk0OCwxNyBAQCB2b2lkIEVsZW1lbnQ6
OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcg
Y2xhbXBpbmcpCiAgICAgICAgIGFkanVzdEZvckFic29sdXRlWm9vbShyZW5kZXJlci0+c2Nyb2xs
TGVmdCgpLCAqcmVuZGVyZXIpLAogICAgICAgICBhZGp1c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVy
ZXItPnNjcm9sbFRvcCgpLCAqcmVuZGVyZXIpCiAgICAgKTsKLSAgICByZW5kZXJlci0+c2V0U2Ny
b2xsTGVmdChjbGFtcFRvSW50ZWdlcihzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVu
ZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGlj
LCBjbGFtcGluZyk7Ci0gICAgcmVuZGVyZXItPnNldFNjcm9sbFRvcChjbGFtcFRvSW50ZWdlcihz
Y3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVa
b29tKCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKKyAgICBJbnRQb2lu
dCBzY3JvbGxQb3NpdGlvbigKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25z
LmxlZnQudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksCisgICAg
ICAgIGNsYW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVy
LT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSkKKyAgICApOworICAgIGJvb2wgYW5pbWF0ZWQgPSB1
c2VTbW9vdGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xs
QmVoYXZpb3I6OkF1dG8pLCAqdGhpcyk7CisgICAgcmVuZGVyZXItPnNldFNjcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkLCBjbGFt
cGluZyk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5KQog
ewotICAgIHNjcm9sbFRvKHsgeCwgeSB9KTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMo
eCwgeSkpOwogfQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5VW5pdHMoaW50IHVuaXRzLCBTY3Jv
bGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTEyODgsMTMgKzEyOTIsMTkgQEAgdm9pZCBF
bGVtZW50OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0KQogICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5z
Y3JvbGxpbmdFbGVtZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBk
b2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygp
LT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBm
cmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFt
ZS0+dmlldygpLT5zY3JvbGxZKCkpKTsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1l
bnRGcmFtZVdpdGhOb25OdWxsVmlldygpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxk
IHdlIHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAvLyBT
ZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzI5NzcKKyAgICAg
ICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpICYmIHVz
ZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvcjo6QXV0bywgKmRvY3VtZW50KCkuZG9jdW1l
bnRFbGVtZW50KCkpOworICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xsUG9zaXRp
b24oSW50UG9pbnQoc3RhdGljX2Nhc3Q8aW50PihuZXdMZWZ0ICogZnJhbWUtPnBhZ2Vab29tRmFj
dG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSwgZnJhbWUtPnZpZXcoKS0+c2Nyb2xs
WSgpKSwgYW5pbWF0ZWQpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBpZiAoYXV0byogcmVuZGVyZXIgPSByZW5kZXJCb3goKSkgewotICAgICAgICByZW5kZXJlci0+
c2V0U2Nyb2xsTGVmdChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiByZW5kZXJlci0+c3R5bGUo
KS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOworICAgICAgICBp
bnQgZWZmZWN0aXZlTGVmdCA9IGNsYW1wVG9JbnRlZ2VyKG5ld0xlZnQgKiByZW5kZXJlci0+c3R5
bGUoKS5lZmZlY3RpdmVab29tKCkpOworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3Ro
U2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVy
LT5zZXRTY3JvbGxMZWZ0KGVmZmVjdGl2ZUxlZnQsIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
YW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICAgICAgaWYgKGF1dG8qIHNj
cm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVyKCkpCiAgICAgICAgICAgICBzY3JvbGxhYmxl
QXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUodHJ1ZSk7CiAgICAgfQpAQCAt
MTMwNSwxMyArMTMxNSwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9w
KQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkgPT0gdGhpcykgewotICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0g
ICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChmcmFt
ZS0+dmlldygpLT5zY3JvbGxYKCksIHN0YXRpY19jYXN0PGludD4obmV3VG9wICogZnJhbWUtPnBh
Z2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSkpOworICAgICAgICBp
ZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpIHsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1l
bnQoKT8KKyAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRy
YWZ0cy9pc3N1ZXMvMjk3NworICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9IGRvY3VtZW50KCku
ZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpB
dXRvLCAqZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAgICAgICAgICBmcmFtZS0+
dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChmcmFtZS0+dmlldygpLT5zY3JvbGxY
KCksIHN0YXRpY19jYXN0PGludD4obmV3VG9wICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBm
cmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSksIGFuaW1hdGVkKTsKKyAgICAgICAgfQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcmVuZGVyQm94KCkp
IHsKLSAgICAgICAgcmVuZGVyZXItPnNldFNjcm9sbFRvcChzdGF0aWNfY2FzdDxpbnQ+KG5ld1Rv
cCAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYyk7CisgICAgICAgIGludCBlZmZlY3RpdmVUb3AgPSBjbGFtcFRvSW50ZWdlcihuZXdU
b3AgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOworICAgICAgICBib29sIGFu
aW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqdGhpcyk7
CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3AoZWZmZWN0aXZlVG9wLCBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAgICAg
ICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IHJlbmRlcmVyLT5sYXllcigpKQogICAgICAg
ICAgICAgc2Nyb2xsYWJsZUFyZWEtPnNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKHRy
dWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAwNTY4YjA2OWRjZDNi
YTUxY2E3MWU4MTc4YTJiZGVmNWU3ZmY0NDViLi40MWY1YjY0OWVhNWFkZDE2NzI5NGUwNWM1MDQ0
YTEzMTdmNzJhNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNTk1LDcgKzE1
OTUsNyBAQCBkb3VibGUgRE9NV2luZG93OjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIAogdm9p
ZCBET01XaW5kb3c6OnNjcm9sbEJ5KGRvdWJsZSB4LCBkb3VibGUgeSkgY29uc3QKIHsKLSAgICBz
Y3JvbGxCeSh7IHgsIHkgfSk7CisgICAgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKHgsIHkpKTsK
IH0KIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0
aW9ucykgY29uc3QKQEAgLTE2MTcsMTAgKzE2MTcsMTAgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9s
bEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QKIAogdm9pZCBET01XaW5k
b3c6OnNjcm9sbFRvKGRvdWJsZSB4LCBkb3VibGUgeSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcp
IGNvbnN0CiB7Ci0gICAgc2Nyb2xsVG8oeyB4LCB5IH0sIGNsYW1waW5nKTsKKyAgICBzY3JvbGxU
byhTY3JvbGxUb09wdGlvbnMoeCwgeSksIGNsYW1waW5nKTsKIH0KIAotdm9pZCBET01XaW5kb3c6
OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcp
IGNvbnN0Cit2b2lkIERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBv
cHRpb25zLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykgY29uc3QKIHsKICAgICBpZiAoIWlzQ3Vy
cmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNjMzLDEyICsx
NjMzLDIwIEBAIHZvaWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMm
IG9wdGlvbnMsIFNjcm9sbENsYW1waW5nKSBjb25zdAogICAgICAgICB2aWV3LT5jb250ZW50c1Nj
cm9sbFBvc2l0aW9uKCkueCgpLCB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkueSgpCiAg
ICAgKTsKIAotICAgIGlmICghc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Nyb2xs
VG9PcHRpb25zLnRvcC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKSA9
PSBJbnRQb2ludCgwLCAwKSkKKyAgICBpZiAoIXZpZXctPmlzU2Nyb2xsSW5Qcm9ncmVzcygpICYm
ICFzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICYmICFzY3JvbGxUb09wdGlvbnMudG9wLnZh
bHVlKCkgJiYgdmlldy0+Y29udGVudHNTY3JvbGxQb3NpdGlvbigpID09IEludFBvaW50KDAsIDAp
KQogICAgICAgICByZXR1cm47CiAKICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIEludFBvaW50IGxheW91dFBvcyh2aWV3LT5tYXBG
cm9tQ1NTVG9MYXlvdXRVbml0cyhzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpKSwgdmlldy0+
bWFwRnJvbUNTU1RvTGF5b3V0VW5pdHMoc2Nyb2xsVG9PcHRpb25zLnRvcC52YWx1ZSgpKSk7CisK
KyAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50
KCk/CisgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vl
cy8yOTc3CisgICAgaWYgKGRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpICYmIHVzZVNtb290
aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlv
cjo6QXV0byksICpkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSkpIHsKKyAgICAgICAgdmll
dy0+c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGxheW91dFBvcywgU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBjbGFtcGluZyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB2aWV3
LT5zZXRDb250ZW50c1Njcm9sbFBvc2l0aW9uKGxheW91dFBvcyk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCAwNDAxMmY5ZWZmNjRmYjlhNDEyMTg3ZDA0NmUyMjVjNDk1ZTk0
ZGRiLi4wOTU1MmIzMGM5MDUxODRmOGFmZjNmODI2ZmE3M2IzN2NjZjY3YWFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMjc5LDcgKzIyNzksNyBAQCB2b2lkIEZyYW1lVmlldzo6
c2Nyb2xsRWxlbWVudFRvUmVjdChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRSZWN0
JiByZWN0KQogICAgIHNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGJvdW5kcy54KCkgLSBjZW50
ZXJpbmdPZmZzZXRYIC0gcmVjdC54KCksIGJvdW5kcy55KCkgLSBjZW50ZXJpbmdPZmZzZXRZIC0g
cmVjdC55KCkpKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0
IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgRnJhbWVWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgYW5p
bWF0ZWQpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJGcmFt
ZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24gPDwgIiAsIGNsZWFy
aW5nIGFuY2hvciIpOwogCkBAIC0yMjkyLDggKzIyOTIsMTAgQEAgdm9pZCBGcmFtZVZpZXc6OnNl
dFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKICAg
ICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+aXNN
b25pdG9yaW5nV2hlZWxFdmVudHMoKSkKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5zZXRXaGVl
bEV2ZW50VGVzdE1vbml0b3IocGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwotICAgIFNj
cm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKLQorICAgIGlmIChh
bmltYXRlZCkKKyAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKHNjcm9sbE9mZnNl
dEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiksIGN1cnJlbnRTY3JvbGxUeXBlKCkpOworICAg
IGVsc2UKKyAgICAgICAgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRp
b24pOwogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKG9sZFNjcm9sbFR5cGUpOwogfQogCkBAIC0z
NjYwLDYgKzM2NjIsMjQgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiBuZXdQb3NpdGlvbikKICAgICBkaWRDaGFuZ2VTY3JvbGxPZmZzZXQoKTsKIH0KIAor
dm9pZCBGcmFtZVZpZXc6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBTY3JvbGxP
ZmZzZXQmIG9mZnNldCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3sK
KyAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CisgICAg
c2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhh
dmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGgpOworICAgIGlmIChyZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKSB7Cisg
ICAgICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKKyAgICAvLyBOb24taU9TIHBsYXRmb3JtcyBwZXJmb3Jt
IGluc3RhbnQgc2Nyb2xsIGluc3RlYWQuCisgICAgaWYgKG9mZnNldCAhPSB0aGlzLT5zY3JvbGxP
ZmZzZXQoKSkKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFu
aW1hdGlvbihvZmZzZXQpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xs
VHlwZSk7Cit9CisKIGZsb2F0IEZyYW1lVmlldzo6YWRqdXN0U2Nyb2xsU3RlcEZvckZpeGVkQ29u
dGVudChmbG9hdCBzdGVwLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xs
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKGdyYW51bGFyaXR5ICE9IFNjcm9s
bEJ5UGFnZSB8fCBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKaW5kZXggZTM2Zjk5NjgwNDYwOGM3NDAyMzk4ZTdhZDg4MzQ0MjBiOWIyODky
MC4uYjM3ZjA2MGUzOTQzMzVhZjU0ZjExNjE2NGY3NDEzMDJlYzk0ZTM1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCkBAIC0yMjMsNyArMjIzLDcgQEAgcHVibGljOgogI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpeGVkVmlzaWJsZUNv
bnRlbnRSZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICNlbmRpZgotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIHJlc3RvcmVT
Y3JvbGxiYXIoKTsKICAgICB2b2lkIHNjaGVkdWxlU2Nyb2xsVG9Gb2N1c2VkRWxlbWVudChTZWxl
Y3Rpb25SZXZlYWxNb2RlKTsKICAgICB2b2lkIHNjcm9sbFRvRm9jdXNlZEVsZW1lbnRJbW1lZGlh
dGVseUlmTmVlZGVkKCk7CkBAIC02NTksNiArNjU5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBy
ZW5kZXJMYXllckRpZFNjcm9sbChjb25zdCBSZW5kZXJMYXllciYpOwogCisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0
JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcg
PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisKIHByb3RlY3RlZDoKICAgICBib29sIHNjcm9s
bENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJl
Y3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwogICAgIHZv
aWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVkMjlj
YjQyYmYzOGJkYjkwZThmODAwOTY4NWMxZDliNTA4MDI0MwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEJlaGF2aW9yLmgiCisKKyNpbmNsdWRlICJFbGVtZW50
LmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgi
CisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIHVz
ZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvciBiZWhhdmlvciwgRWxlbWVudCYgYXNzb2Np
YXRlZEVsZW1lbnQpCit7CisgICAgaWYgKCFhc3NvY2lhdGVkRWxlbWVudC5kb2N1bWVudCgpLnNl
dHRpbmdzKCkuQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCgpIHx8ICFhc3NvY2lhdGVk
RWxlbWVudC5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nCisgICAgc3dpdGNoIChi
ZWhhdmlvcikgeworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OkF1dG86CisgICAgICAgIHJldHVy
biBhc3NvY2lhdGVkRWxlbWVudC5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZVNtb290aFNjcm9sbGlu
ZygpOworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQ6CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBjYXNlIFNjcm9sbEJlaGF2aW9yOjpTbW9vdGg6CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZp
b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYmFlZjg4MWU4MDg4NTI0ZDA4OTkzYjA5Y2NiMzIyN2M3YjBmZTUx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5o
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxl
bWVudDsKKworZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIEF1dG8g
PSAwLAorICAgIEluc3RhbnQsCisgICAgU21vb3RoCit9OworCitib29sIHVzZVNtb290aFNjcm9s
bGluZyhTY3JvbGxCZWhhdmlvciwgRWxlbWVudCYgYXNzb2NpYXRlZEVsZW1lbnQpOworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9s
bEJlaGF2aW9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg5NzFhZTkzN2FhZjhlMjk1MmY3ZGYyNjBjN2VmNGY0ZTYxNGRmMWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmlkbApAQCAt
MCwwICsxLDI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK2VudW0gU2Nyb2xsQmVoYXZpb3IgeyAiYXV0byIsICJpbnN0YW50IiwgInNtb290aCIgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oCmluZGV4IDkzOWNk
NzM0MjVhYzdjMzI5MGM0MmQyNWQ1ZTk5ZDA4YWExNGMwMGIuLmYyNzVmMmZiZDFhM2ZjODAxZWJj
MGFlODZjZGE5MTk5Njg5ZjQ1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Ny
b2xsSW50b1ZpZXdPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRv
Vmlld09wdGlvbnMuaApAQCAtMjAsMTIgKzIwLDExIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIlNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oIgorI2luY2x1ZGUgIlNjcm9sbE9wdGlvbnMuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBFbGVtZW50OwotCi1zdHJ1Y3QgU2Nyb2xs
SW50b1ZpZXdPcHRpb25zIHsKK3N0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnMgOiBTY3JvbGxP
cHRpb25zIHsKICAgICBPcHRpb25hbDxTY3JvbGxMb2dpY2FsUG9zaXRpb24+IGJsb2NrUG9zaXRp
b24geyBTY3JvbGxMb2dpY2FsUG9zaXRpb246OlN0YXJ0IH07CiAgICAgT3B0aW9uYWw8U2Nyb2xs
TG9naWNhbFBvc2l0aW9uPiBpbmxpbmVQb3NpdGlvbiB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6
TmVhcmVzdCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50
b1ZpZXdPcHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRp
b25zLmlkbAppbmRleCBjZjlkMWZkNzY3ODc0MzM5OGE3MmI5YjdjYTFlZmZlZDliMWEyZDkwLi4x
YjI0YzY4NmZjNzBhMGMzZDQzZGVhZTg5ZDIwOWYyNDhhNzliNGY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsCkBAIC0xNyw4ICsxNyw3IEBACiAg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3Jn
L2IvMTg4MDQzKTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsSW50
b1ZpZXdPcHRpb25zIHsKK2RpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIDogU2Nyb2xs
T3B0aW9ucyB7CiAgICAgW0ltcGxlbWVudGVkQXM9YmxvY2tQb3NpdGlvbl0gU2Nyb2xsTG9naWNh
bFBvc2l0aW9uIGJsb2NrID0gInN0YXJ0IjsKICAgICBbSW1wbGVtZW50ZWRBcz1pbmxpbmVQb3Np
dGlvbl0gU2Nyb2xsTG9naWNhbFBvc2l0aW9uIGlubGluZSA9ICJuZWFyZXN0IjsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxODY3YzYwMTUwYTU1NDExY2Mw
ZjFhN2EwNDllMmJjMWRjMTNkOTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbE9wdGlvbnMuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Ny
b2xsQmVoYXZpb3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU2Nyb2xsT3B0
aW9ucyB7CisgICAgT3B0aW9uYWw8U2Nyb2xsQmVoYXZpb3I+IGJlaGF2aW9yIHsgU2Nyb2xsQmVo
YXZpb3I6OkF1dG8gfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbE9wdGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyOWQ2ZmYxMDg2M2Q2Zjc1NDM4OGU5
MTJmOTQ3YTliMjU2YmYyMDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Njcm9sbE9wdGlvbnMuaWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZGljdGlvbmFyeSBTY3JvbGxPcHRpb25zIHsKKyAg
ICBTY3JvbGxCZWhhdmlvciBiZWhhdmlvciA9ICJhdXRvIjsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
Y3JvbGxUb09wdGlvbnMuaAppbmRleCBjZTFjYmExYzdjMDEwNDAzYmRiM2U5OTQ0NmY2NTZmNjA0
NDE2ZDdmLi5mNTc3NGQ0NGFlZjA0YTg1ZWIxNDcyMTdlN2ZhYWI4NzJmMjQzZDhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmgKQEAgLTI4LDE0ICsyOCwyMSBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgIlNjcm9sbE9wdGlvbnMuaCIKICNpbmNsdWRlIDxjbWF0aD4K
ICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1
Y3QgU2Nyb2xsVG9PcHRpb25zIHsKK3N0cnVjdCBTY3JvbGxUb09wdGlvbnMgOiBTY3JvbGxPcHRp
b25zIHsKICAgICBPcHRpb25hbDxkb3VibGU+IGxlZnQ7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiB0
b3A7CisKKyAgICBTY3JvbGxUb09wdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAgU2Nyb2xsVG9PcHRp
b25zKGRvdWJsZSB4LCBkb3VibGUgeSkKKyAgICAgICAgOiBsZWZ0KHgpCisgICAgICAgICwgdG9w
KHkpCisgICAgeyB9CiB9OwogCiBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVl
T3JGYWxsQmFja1RvKE9wdGlvbmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZSBmYWxsYmFja1ZhbHVl
KQpAQCAtNDcsNyArNTQsNyBAQCBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVl
T3JGYWxsQmFja1RvKE9wdGlvbmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZQogLy8gRklYTUUoaHR0
cHM6Ly93ZWJraXQub3JnL2IvODgzMzkpOiBDb25zaWRlciB1c2luZyBGbG9hdFBvaW50IG9yIERv
dWJsZVBvaW50IGZvciBmYWxsYmFjayBhbmQgcmV0dXJuIHZhbHVlcy4KIGlubGluZSBTY3JvbGxU
b09wdGlvbnMgbm9ybWFsaXplTm9uRmluaXRlQ29vcmRpbmF0ZXNPckZhbGxCYWNrVG8oY29uc3Qg
U2Nyb2xsVG9PcHRpb25zJiB2YWx1ZSwgZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIFNjcm9s
bFRvT3B0aW9ucyBvcHRpb25zOworICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zID0gdmFsdWU7
CiAgICAgb3B0aW9ucy5sZWZ0ID0gbm9ybWFsaXplTm9uRmluaXRlVmFsdWVPckZhbGxCYWNrVG8o
dmFsdWUubGVmdCwgeCk7CiAgICAgb3B0aW9ucy50b3AgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1
ZU9yRmFsbEJhY2tUbyh2YWx1ZS50b3AsIHkpOwogICAgIHJldHVybiBvcHRpb25zOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsCmluZGV4IDUxMGJjMDcxYTY4MWRjZjBjNWY4
Mzk3ZTMyZmM3ZmVkNThkZDE2Y2YuLjJiOWI1NTQxMjJhYTdlOTJiOGUxZDRkNTIzNTI2YzQ4NTU2
ZmFjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKQEAgLTI2LDgg
KzI2LDcgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8gRklYTUUod2Via2l0Lm9yZy9iLzE4ODA0
Myk6IFN1cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCi1kaWN0aW9uYXJ5IFNjcm9sbFRvT3B0aW9ucyB7
CitkaWN0aW9uYXJ5IFNjcm9sbFRvT3B0aW9ucyA6IFNjcm9sbE9wdGlvbnMgewogICAgIHVucmVz
dHJpY3RlZCBkb3VibGUgbGVmdDsKICAgICB1bnJlc3RyaWN0ZWQgZG91YmxlIHRvcDsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggNjEyMjg4Mjk1YzI3ZmNiMjc0NDA3OTA4MTkw
YTk2YTk3NDI0YmNhMy4uYjBmMDExZTQyYjJiMmQyYWJjYjM5ZjAzZWRjNzU4NGMwMDU4MGU0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNjE4LDYgKzYxOCw5IEBAIHN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6CiBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOgog
ICBpbml0aWFsOiBmYWxzZQogCitDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOgorICBp
bml0aWFsOiBmYWxzZQorCiBpbnB1dEV2ZW50c0VuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA0MjllZWU5YTk2NTNmZGM0ZmY3ZTA5ODgzYmM0YTA4
OGZkMWNjZWZlLi4wNDk3MDI0M2JjNTAxYmFjNTdiYjhmZTZmMDBhZmFiOTEzNDExMzdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4LDcgKzI0OCwxNCBAQCBib29sIEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJl
YSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUgPSBmcmFtZVZpZXctPmZyYW1l
KCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdElu
QmFja0ZvcndhcmRDYWNoZTsKICAgICBib29sIGluUHJvZ3JhbW1hdGljU2Nyb2xsID0gc2Nyb2xs
YWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWM7
Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZSkKKwor
ICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSBpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBp
bkJhY2tGb3J3YXJkQ2FjaGU7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIGFu
aW1hdGVkID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSgpID09IFNj
cm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoOworICAgIC8vIFRoZSBzY3JvbGwgcG9zaXRpb24gb2Yg
YW5pbWF0ZWQgc2Nyb2xsaW5nIHdpbGwgYmUgc2V0IGZyb20gdGhlIHRoZSBVSSBwcm9jZXNzLiBT
byBpdCBzaG91bGRuJ3QgYmUgc2V0IG5vdy4KKyAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbiA9ICFh
bmltYXRlZCAmJiB1cGRhdGVTY3JvbGxQb3NpdGlvbjsKKyNlbmRpZgorICAgIGlmICh1cGRhdGVT
Y3JvbGxQb3NpdGlvbikKICAgICAgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Ny
b2xsKHNjcm9sbGluZ05vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHsgfSwgU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwogCiAgICAgLy8g
SWYgdGhpcyBmcmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0IGludG8gdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCkBAIC0yNjAsNyArMjY3
LDE1IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3JvCiAgICAgaWYgKCFzdGF0ZU5vZGUpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKGFu
aW1hdGVkKQorICAgICAgICBzY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhT
Y3JvbGxCZWhhdmlvclN0YXR1czo6SW5VSU5hdGl2ZUFuaW1hdGlvbik7CisgICAgZWxzZQorICAg
ICAgICBzY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlv
clN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgIHN0YXRlTm9kZS0+c2V0UmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGluUHJvZ3JhbW1hdGljU2Nyb2xsLCBhbmltYXRl
ZCk7CisjZWxzZQogICAgIHN0YXRlTm9kZS0+c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Ny
b2xsUG9zaXRpb24sIGluUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyNlbmRpZgogICAgIHJldHVybiB0
cnVlOwogfQogCkBAIC0yOTEsNiArMzA2LDMyIEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6c2NoZWR1bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2NyCiAg
ICAgbV91cGRhdGVOb2RlU2Nyb2xsUG9zaXRpb25UaW1lci5zdGFydE9uZVNob3QoMF9zKTsKIH0K
IAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwg
Ym9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKworICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRv
KiBmcmFtZVZpZXcgPSBmcmFtZVZpZXdGb3JTY3JvbGxpbmdOb2RlKG5vZGVJRCk7CisgICAgaWYg
KCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChub2RlSUQgPT0gZnJhbWVW
aWV3LT5zY3JvbGxpbmdOb2RlSUQoKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzcykKKyAgICAgICAgICAgIGZyYW1lVmlldy0+c2V0U2Nyb2xsQmVoYXZpb3JTdGF0
dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIC8vIE92ZXJmbG93LXNjcm9sbCBhcmVhLgorICAgIGlmIChhdXRvKiBz
Y3JvbGxhYmxlQXJlYSA9IGZyYW1lVmlldy0+c2Nyb2xsYWJsZUFyZWFGb3JTY3JvbGxMYXllcklE
KG5vZGVJRCkpIHsKKyAgICAgICAgaWYgKCFpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCisg
ICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xs
QmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAgICB9Cit9CisjZW5kaWYKKwogdm9p
ZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5
bmNTY3JvbGxUaW1lckZpcmVkKCkKIHsKICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5
bmNTY3JvbGwobV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUubm9kZUlELCBtX3NjaGVkdWxlZFNjcm9s
bFVwZGF0ZS5zY3JvbGxQb3NpdGlvbiwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUubGF5b3V0Vmll
d3BvcnRPcmlnaW4sIFNjcm9sbFR5cGU6OlVzZXIsIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLnVw
ZGF0ZUxheWVyUG9zaXRpb25BY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDliZTY5YWFm
YjFlMjg1ZjhhNTUzOTI4OTVjZGU2MzRiY2MxNmY3MTEuLjNkZTAxY2MyODk2YTUwZDRlNjQ4NWNh
YTFkMmRjYzc3ZDFkYzA2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTUyLDYgKzUyLDkgQEAg
cHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5nU3RhdGVUcmVlUHJvcGVydGllc0NoYW5nZWQoKTsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFm
dGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3Qg
T3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXll
clBvc2l0aW9uQWN0aW9uKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoU2Nyb2xsaW5nTm9kZUlE
LCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWN0aXZlU2Nyb2xsU25hcElu
ZGljZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsSW5kZXgsIHVuc2lnbmVk
IHZlcnRpY2FsSW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggNzE3YmZjMmE1
NWNjMThjYjM4Y2RiNDRlZGIwZWY1NDM1ODdmMmFlMC4uN2UyMTg4YzIwYzU4NDA4OTIxZmE0OTIy
MWJhYzY1YjY0MzBlNjExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCkBAIC01Niw2ICs1
Niw5IEBAIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2NyCiAjZW5kaWYKICAgICAsIG1fc2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzKHN0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoKSkKICAg
ICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xs
KHN0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwoKSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICwgbV9yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbldpdGhBbmltYXRpb24oc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
V2l0aEFuaW1hdGlvbigpKQorI2VuZGlmCiAgICAgLCBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRz
KHN0YXRlTm9kZS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQogewogICAgIGlmIChoYXNDaGFu
Z2VkUHJvcGVydHkoU2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpAQCAtMjE5LDEyICsyMjIsMjIgQEAg
dm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbGFibGVBcmVhUGFyYW1l
dGVycyhjb25zdCBTY3JvbGxhYmxlQXIKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoU2Nyb2xsYWJs
ZUFyZWFQYXJhbXMpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBG
bG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsLCBib29sIHJlcXVlc3RlZFdpdGhBbmltYXRpb24pCit7CisgICAgbV9yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOworICAgIG1fcmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsID0gcmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKKyAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0
aEFuaW1hdGlvbiA9IHJlcXVlc3RlZFdpdGhBbmltYXRpb247CisgICAgc2V0UHJvcGVydHlDaGFu
Z2VkKFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKTsKK30KKyNlbHNlCiB2b2lkIFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQ
b2ludCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbCkKIHsKICAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb247CiAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOwogICAgIHNldFBy
b3BlcnR5Q2hhbmdlZChSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbik7CiB9CisjZW5kaWYKIAogdm9p
ZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldElzTW9uaXRvcmluZ1doZWVsRXZlbnRz
KGJvb2wgaXNNb25pdG9yaW5nV2hlZWxFdmVudHMpCiB7CkBAIC0zMTQsNiArMzI3LDExIEBAIHZv
aWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFt
JiB0cywgU2Nyb2xsaW5nU3RhdGVUCiAgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25S
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJl
cXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gcmVwcmVzZW50cyBwcm9ncmFtbWF0aWMgc2Nyb2xsIiwg
bV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOwog
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobV9yZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbldpdGhBbmltYXRpb24pCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNj
cm9sbCBwb3NpdGlvbiB3aXRoIGFuaW1hdGlvbiIsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25X
aXRoQW5pbWF0aW9uKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3BhcmVudFJlbGF0aXZlU2Nyb2xs
YWJsZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInBhcmVudCByZWxh
dGl2ZSBzY3JvbGxhYmxlIHJlY3QiLCBtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDQ5NjdhNmNlODEyZjJiYTNiMmZiZjBkOTEyYTAz
NTcxNzhlOGYxNzEuLjZlMjVkN2JiYTYzYWNiMjcyNDNiZTVmYWFlYzk0NzU3YjVhYTA4MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xMTEsNyArMTExLDEyIEBAIHB1YmxpYzoKIAogICAg
IGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsgfQogICAgIGJvb2wgcmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGw7IH0KKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25X
aXRoQW5pbWF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldp
dGhBbmltYXRpb247IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKKyNlbHNlCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9h
dFBvaW50JiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyNlbmRpZgogCiAg
ICAgYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faXNNb25p
dG9yaW5nV2hlZWxFdmVudHM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKGJvb2wpOwpAQCAtMTcxLDYgKzE3Niw5IEBAIHByaXZhdGU6CiAgICAg
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogCiAg
ICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCB7IGZhbHNlIH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgogICAg
IGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggMTUxYWMyOWY4
YTUzY2RkMzg3YzkzYzQ3NWE1ZGVkMzZjYzZkMWM0Zi4uYzlmMDQ0YjQzZWZlMjZkZGExZjU2OWZl
MDU1MGVmNmM3OGVmNjhlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaApAQCAtODIsOCArODIsMTcgQEAgcHVibGljOgogICAgIC8vIFVwZGF0ZXMg
RnJhbWVWaWV3L1JlbmRlckxheWVyIHNjcm9sbGluZyBzdGF0ZSBhbmQgR3JhcGhpY3NMYXllcnMu
CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlJiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGlu
Z0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpID0gMDsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgLy8gQ2FsbGVkIGZvciBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cyB1cGRhdGVzLgor
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgLyppc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MqLykgeyB9CisKKyAgICAvLyBDYWxsZWQgZm9yIHJlcXVlc3RlZCBz
Y3JvbGwgcG9zaXRpb24gdXBkYXRlcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5v
ZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Ny
b2xsUG9zaXRpb24qLywgYm9vbCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLywgYm9v
bCAvKndpdGhBbmltYXRpb24qLykgeyB9CisjZWxzZQogICAgIC8vIENhbGxlZCBmb3IgcmVxdWVz
dGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzLgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
LypzY3JvbGxQb3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCov
KSB7IH0KKyNlbmRpZgorCiAKICAgICAvLyBEZWxlZ2F0ZWQgc2Nyb2xsaW5nL3pvb21pbmcgaGFz
IGNhdXNlZCB0aGUgdmlld3BvcnQgdG8gY2hhbmdlLCBzbyB1cGRhdGUgdmlld3BvcnQtY29uc3Ry
YWluZWQgbGF5ZXJzCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYWluRnJhbWVWaWV3cG9ydENo
YW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQsIGRvdWJsZSBzY2Fs
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggNzNkY2EyOGVmMWUzYzJkNTVhOTUzZmM1
ZTQwNjc2YzM3MWFlZDllNi4uNjJlMDQ3ZDE3NmY4ZGMyYjRhNjZjMTU1MDBmNzA5Mjk5YzQ0MWY3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMTA3LDggKzEwNywxNiBAQCB2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0
IFNjcm9sbGluZ1N0YXRlTgogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0
U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQog
ewogICAgIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYgc2Nyb2xsaW5nU3RhdGVO
b2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpOwot
ICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKQotICAgICAgICBzY3Jv
bGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChzY3JvbGxpbmdOb2Rl
SUQoKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCksIHNjcm9s
bGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGwoKSk7CisgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVy
dHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikp
IHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3Jv
bGwoCisgICAgICAgICAgICBzY3JvbGxpbmdOb2RlSUQoKQorICAgICAgICAgICAgLCBzY3JvbGxp
bmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKQorICAgICAgICAgICAgLCBzY3Jv
bGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsKCkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICAgICAgLCBzY3Jv
bGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkKKyNl
bmRpZgorICAgICAgICAgICAgKTsKKyAgICB9CiAKICAgICBtX2lzRmlyc3RDb21taXQgPSBmYWxz
ZTsKIH0KQEAgLTE1Nyw2ICsxNjUsMzUgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZTo6c2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgU2Nyb2xsUG9zaXRpb24KICAgICBz
Y3JvbGxUbyhjdXJyZW50U2Nyb2xsUG9zaXRpb24oKSArIGRlbHRhLCBTY3JvbGxUeXBlOjpVc2Vy
LCBjbGFtcCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNj
cm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcCBjbGFtcCwgYm9vbCBuZWVk
U3luY1Njcm9sbFBvc2l0aW9uKQoreworICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3Jv
bGxQb3NpdGlvbikgeworICAgICAgICAvLyBTZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhl
IFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAocmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oKSAm
JiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQorICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNj
cm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uOjpTeW5jKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKHNjcm9sbGluZ05vZGVJRCgpLCBmYWxz
ZSk7CisgICAgICAgIHNldFJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGZhbHNlKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIElmIGR1cmluZyBhIHNjcm9sbCBhbmltYXRpb24s
IG5lZWQgdG8gc3RvcCBpdCBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgb25lLgorICAgIGlmIChzY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKCkpCisgICAgICAgIHNldE5lZWRzU3RvcEN1cnJlbnRTY3Jv
bGxBbmltYXRpb24odHJ1ZSk7CisgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9n
cmFtbWF0aWNTY3JvbGwoc2Nyb2xsVHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOwor
ICAgIAorICAgIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uID0gYWRqdXN0ZWRTY3JvbGxQb3NpdGlv
bihwb3NpdGlvbiwgY2xhbXApOworICAgIAorICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcs
IHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUgIiA8PCBzY3JvbGxpbmdOb2Rl
SUQoKSA8PCAiIHNjcm9sbFRvICIgPDwgcG9zaXRpb24gPDwgIiAoZGVsdGEgZnJvbSBsYXN0IGNv
bW1pdHRlZCBwb3NpdGlvbiAiIDw8IChtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3NpdGlvbiAtIG1f
Y3VycmVudFNjcm9sbFBvc2l0aW9uKSA8PCAiKSIpOworCisgICAgdXBkYXRlVmlld3BvcnRGb3JD
dXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKKyAgICBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2Vk
KCk7CisKKyAgICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGZhbHNlKTsKKyAg
ICBzZXRSZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihmYWxzZSk7CisgICAgc2Nyb2xsaW5nVHJl
ZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOworfQorI2Vsc2UKIHZv
aWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQm
IHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xh
bXApCiB7CiAgICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKQpAQCAt
MTczLDE0ICsyMTAsMjAgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xs
VG8oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbFR5cGUKIAogICAgIHNjcm9sbGlu
Z1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKGZhbHNlKTsKIH0KKyNlbmRp
ZgogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRp
b25DaGFuZ2VkKCkKIHsKICAgICByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCk7CiAgICAgcmVw
b3NpdGlvblJlbGF0ZWRMYXllcnMoKTsKIAotICAgIHNjcm9sbGluZ1RyZWUoKS5ub3RpZnlSZWxh
dGVkTm9kZXNBZnRlclNjcm9sbFBvc2l0aW9uQ2hhbmdlKCp0aGlzKTsKLSAgICBzY3JvbGxpbmdU
cmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMpOworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgaWYgKCFyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbigpKSAKKyNlbmRp
ZgorICAgIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlmeVJlbGF0ZWROb2Rlc0FmdGVy
U2Nyb2xsUG9zaXRpb25DaGFuZ2UoKnRoaXMpOworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMpOworICAgIH0KIH0KIAogYm9vbCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsUG9zaXRpb25BbmRMYXlvdXRWaWV3cG9ydE1hdGNo
KGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBPcHRpb25hbDxGbG9hdFJlY3Q+KQpAQCAtMjY2
LDYgKzMwOSwzNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVy
dGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcgogICAgIHRzLmR1bXBQcm9wZXJ0
eSgic2Nyb2xsYWJsZSBhcmVhIHBhcmFtZXRlcnMiLCBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVy
cyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZTo6c2V0UmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oYm9vbCB3aXRoQW5pbWF0
aW9uKQoreworICAgIG1fcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24gPSB3aXRoQW5pbWF0aW9u
OworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpyZXF1ZXN0U2Nyb2xsV2l0
aEFuaW1hdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdFNjcm9sbFdpdGhBbmlt
YXRpb247Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MoYm9vbCBpblByb2dyZXNzKQoreworICAgIG1fc2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyA9IGluUHJvZ3Jlc3M7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSBjb25zdAoreworICAgIHJldHVy
biBtX3Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3M7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oYm9vbCBzdG9w
KQoreworICAgIG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbiA9IHN0b3A7Cit9CisK
K2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxB
bmltYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxB
bmltYXRpb247Cit9CisjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCA0Y2JmNGQx
YWYwZGNmNDcwMTM0ZjRiNzI2NGYyMGRiN2I5NWVjOWRkLi41NTBiNzFjODdkM2ZlZTc5ZGNkYjRl
NTI0OWY1Y2ZkNWU0ZTAyNWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKQEAgLTYwLDcgKzYwLDEx
IEBAIHB1YmxpYzoKICAgICBGbG9hdFNpemUgc2Nyb2xsRGVsdGFTaW5jZUxhc3RDb21taXQoKSBj
b25zdCB7IHJldHVybiBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbiAtIG1fbGFzdENvbW1pdHRlZFNj
cm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBUaGVzZSBhcmUgaW1wZXJhdGl2ZTsgdGhleSBhZGp1
c3QgdGhlIHNjcm9sbGluZyBsYXllcnMuCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2
b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6
VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVu
dEVkZ2VzLCBib29sIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24gPSBmYWxzZSk7CisjZWxzZQogICAg
IHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBl
OjpVc2VyLCBTY3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250
ZW50RWRnZXMpOworI2VuZGlmCiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmLCBT
Y3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMp
OwogCiAgICAgdm9pZCB3YXNTY3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0
UG9pbnQmIHBvc2l0aW9uLCBPcHRpb25hbDxGbG9hdFJlY3Q+IG92ZXJyaWRlTGF5b3V0Vmlld3Bv
cnQgPSB7IH0sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uOjpTeW5jKTsKQEAgLTkxLDYgKzk1LDE1IEBAIHB1YmxpYzoKICAgICBjb25z
dCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxDb250YWluZXJMYXllcigpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXI7IH0KICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0
aW9uJiBzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29u
dGVudHNMYXllcjsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNldFJl
cXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGJvb2wpOworICAgIGJvb2wgcmVxdWVzdFNjcm9sbFdp
dGhBbmltYXRpb24oKSBjb25zdDsKKyAgICB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MoYm9vbCk7CisgICAgYm9vbCBzY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkgY29uc3Q7Cisg
ICAgdm9pZCBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGJvb2wpOworICAgIGJv
b2wgbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0OworI2VuZGlmCisKIHBy
b3RlY3RlZDoKICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdUcmVlJiwg
U2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKQEAgLTE0OCw2ICsxNjEsMTIg
QEAgcHJpdmF0ZToKICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnM7CiAgICAgYm9vbCBtX2lzRmlyc3RDb21taXQgeyB0cnVlIH07CiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgbV9yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlv
biB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uIHsgZmFsc2Ug
fTsKKyNlbmRpZgorCiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbENvbnRhaW5lckxh
eWVyOwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXI7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5kZXggODkxMTQ5MTAzZDM2Y2Uz
YWE2MzQ0NTAxMjhiYzg5YzQ0MDJmYmE4Yy4uNzE0NzY5NjQ0MjlmNDk2NjQ3YzFiMDczMTYxZjVk
ZDAyZTJmMzAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlw
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC01NCw2
ICs1NCwyMSBAQCBlbnVtIGNsYXNzIFNjcm9sbFBvc2l0aW9uQ2xhbXAgOiB1aW50OF90IHsKICAg
ICBUb0NvbnRlbnRFZGdlcywKIH07CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQorZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvclR5cGUgOiB1aW50
OF90IHsKKyAgICBJbnN0YW50LAorICAgIFNtb290aCwKK307CisjZW5kaWYKKworZW51bSBjbGFz
cyBTY3JvbGxCZWhhdmlvclN0YXR1cyA6IHVpbnQ4X3QgeworICAgIE5vdEluQW5pbWF0aW9uLAor
ICAgIFdlYkFuaW1hdGlvblRpbWVyU3RhcnRlZCwKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEluVUlOYXRpdmVBbmltYXRpb24sCisjZW5k
aWYKK307CisKIGlubGluZSBTY3JvbGxEaXJlY3Rpb24gbG9naWNhbFRvUGh5c2ljYWwoU2Nyb2xs
TG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgaXNWZXJ0aWNhbCwgYm9vbCBpc0ZsaXBw
ZWQpCiB7CiAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKaW5kZXggYjEyNmE5YzJiNzA2YTExNzM0NmM1NzQwNzg1MWUzODU1ODJjYzk2
OC4uNmMxNTgyMGEyNDhkOTIzMDRlYWQ5NjAwOGYwMzNjMDY5ZWNjNTY5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTQ2MSwxMCArNDYxLDE0IEBAIHZvaWQgU2Ny
b2xsVmlldzo6Y29tcGxldGVVcGRhdGVzQWZ0ZXJTY3JvbGxUbyhjb25zdCBJbnRTaXplJiBzY3Jv
bGxEZWx0YSkKICAgICB1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsaW5nKCk7CiB9
CiAKLXZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRp
b24mIHNjcm9sbFBvc2l0aW9uKQordm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihj
b25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIGJvb2wvKiBhbmltYXRlZCovKQog
ewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsVmlldzo6
c2V0U2Nyb2xsUG9zaXRpb24gIiA8PCBzY3JvbGxQb3NpdGlvbik7CiAKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3Jv
bGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRpZgorCiAg
ICAgaWYgKHByb2hpYml0c1Njcm9sbGluZygpKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ3NSwx
MyArNDc5LDE0IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Ny
b2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uKQogCiAgICAgU2Nyb2xsUG9zaXRpb24gbmV3U2Ny
b2xsUG9zaXRpb24gPSAhZGVsZWdhdGVzU2Nyb2xsaW5nKCkgPyBhZGp1c3RTY3JvbGxQb3NpdGlv
bldpdGhpblJhbmdlKHNjcm9sbFBvc2l0aW9uKSA6IHNjcm9sbFBvc2l0aW9uOwogCi0gICAgaWYg
KCghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgfHwgY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxU
eXBlOjpVc2VyKSAmJiBuZXdTY3JvbGxQb3NpdGlvbiA9PSB0aGlzLT5zY3JvbGxQb3NpdGlvbigp
KQorICAgIGlmICgoIWRlbGVnYXRlc1Njcm9sbGluZygpIHx8IGN1cnJlbnRTY3JvbGxUeXBlKCkg
PT0gU2Nyb2xsVHlwZTo6VXNlcikgJiYgIWlzU2Nyb2xsSW5Qcm9ncmVzcygpICYmIG5ld1Njcm9s
bFBvc2l0aW9uID09IHRoaXMtPnNjcm9sbFBvc2l0aW9uKCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUobmV3U2Nyb2xsUG9zaXRpb24pKQog
ICAgICAgICByZXR1cm47CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBvc2l0aW9u
KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90
SW5BbmltYXRpb24pOwogfQogCiBib29sIFNjcm9sbFZpZXc6OnNjcm9sbChTY3JvbGxEaXJlY3Rp
b24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTUzOCw3ICs1
NDMsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Nyb2xsUG9z
aXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICAKICAgICBpZiAoIW1hbmFnZXNTY3JvbGxiYXJz
KCkpIHsKICAgICAgICAgaWYgKHNjcm9sbE9yaWdpbkNoYW5nZWQoKSkgewotICAgICAgICAgICAg
U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3JvbGxPZmZz
ZXRGcm9tUG9zaXRpb24oZGVzaXJlZFBvc2l0aW9uKSk7CisgICAgICAgICAgICBpZiAoIXJlcXVl
c3RTY3JvbGxQb3NpdGlvblVwZGF0ZShkZXNpcmVkUG9zaXRpb24pKQorICAgICAgICAgICAgICAg
IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oc2Nyb2xsT2Zm
c2V0RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOwogICAgICAgICAgICAgcmVzZXRTY3Jv
bGxPcmlnaW5DaGFuZ2VkKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDQzMDE2MGQ2YWUyZmRkZjc1MGQwOWRiYTVkNDBh
NWU3ZjcwN2U1ZDQuLjUzOTgxMDgzOThlODVjZTQ3ZDQ3Nzk1YzgzZDIzNTE5OWY3ZGUzZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTI2MCw3ICsyNjAsNyBAQCBwdWJs
aWM6CiAgICAgU2Nyb2xsUG9zaXRpb24gY2FjaGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IHJl
dHVybiBtX2NhY2hlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBGdW5jdGlvbnMgZm9yIHNj
cm9sbGluZyB0aGUgdmlldy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29u
c3QgU2Nyb2xsUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24o
Y29uc3QgU2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2UpOwogICAgIHZvaWQg
c2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYgcykgeyByZXR1cm4gc2V0U2Nyb2xsUG9zaXRpb24oc2Ny
b2xsUG9zaXRpb24oKSArIHMpOyB9CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNjcm9sbHMgYnkg
bGluZXMsIHBhZ2VzIG9yIHBpeGVscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmNwcAppbmRleCA5NmQwZjMwMGIzNDE4ZTYwODIxZGEyZGEyYTY0MTg5YzRkZWUwYjNj
Li5jZjM5ZGFmYmFhOTlmOTFiOTY5MTQxMDcyMTdiZDdjYjU4MGE3YjlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC03MSw2ICs3MSw5IEBAIFNjcm9s
bGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSgpCiAgICAgLCBtX3Njcm9sbE9yaWdpbkNoYW5nZWQo
ZmFsc2UpCiAgICAgLCBtX2N1cnJlbnRTY3JvbGxUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihT
Y3JvbGxUeXBlOjpVc2VyKSkKICAgICAsIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUo
ZmFsc2UpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykKKyAgICAsIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KSkKKyNlbmRpZgogewogfQogCkBAIC0xMDQs
NiArMTA3LDExIEBAIGZsb2F0IFNjcm9sbGFibGVBcmVhOjphZGp1c3RTY3JvbGxTdGVwRm9yRml4
ZWRDb250ZW50KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9yaWVuCiAgICAgcmV0dXJuIHN0ZXA7CiB9
CiAKK2Jvb2wgU2Nyb2xsYWJsZUFyZWE6OmlzU2Nyb2xsSW5Qcm9ncmVzcygpCit7CisgICAgcmV0
dXJuIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzICE9IFNjcm9sbEJlaGF2aW9yU3RhdHVz
OjpOb3RJbkFuaW1hdGlvbjsKK30KKwogYm9vbCBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsKFNjcm9s
bERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9h
dCBtdWx0aXBsaWVyKQogewogICAgIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uOwpA
QCAtMjIxLDE2ICsyMjksMTUgQEAgYm9vbCBTY3JvbGxhYmxlQXJlYTo6aGFuZGxlVG91Y2hFdmVu
dChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIHRvdWNoRXZlbnQpCiAvLyBOT1RFOiBPbmx5IGNh
bGxlZCBmcm9tIEludGVybmFscyBmb3IgdGVzdGluZy4KIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNl
dFNjcm9sbE9mZnNldEZyb21JbnRlcm5hbHMoY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQpCiB7
CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21P
ZmZzZXQob2Zmc2V0KSkpCisgICAgICAgIHJldHVybjsKKwogICAgIHNldFNjcm9sbE9mZnNldEZy
b21BbmltYXRpb24ob2Zmc2V0KTsKIH0KIAogdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xs
T2Zmc2V0RnJvbUFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKIHsKLSAgICBT
Y3JvbGxQb3NpdGlvbiBwb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQp
OwotICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocG9zaXRpb24pKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBzY3JvbGxQb3NpdGlvbkNoYW5nZWQocG9zaXRpb24pOworICAgIHNj
cm9sbFBvc2l0aW9uQ2hhbmdlZChzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSk7CiB9
CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OndpbGxTdGFydExpdmVSZXNpemUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggZDc0MzhjMTVjZDUxZDY2NjBjMGY3
MzhhYzJlOTdmYWJmNWFiZGMyMy4uMTRiNjEwYmVhODM5NTk3YWU1MDdjYTA3NDU2OTY5NWVjZWI4
ZDZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC02Miw2
ICs2MiwxMCBAQCBpbmxpbmUgaW50IG9mZnNldEZvck9yaWVudGF0aW9uKFNjcm9sbE9mZnNldCBv
ZmZzZXQsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudAogCiBjbGFzcyBTY3JvbGxhYmxlQXJl
YSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4gewogcHVibGljOgorICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTY3JvbGxJblByb2dyZXNzKCk7CisgICAgU2Nyb2xsQmVo
YXZpb3JTdGF0dXMgY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgY29uc3QgeyByZXR1cm4g
bV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXM7IH0KKyAgICB2b2lkIHNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzIHN0YXR1cykgeyBtX2N1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1cyA9IHN0YXR1czsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3Jv
bGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9
IDEpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0
aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpD
bGFtcGVkKTsKICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihTY3JvbGxi
YXJPcmllbnRhdGlvbiwgZmxvYXQgb2Zmc2V0KTsKQEAgLTI0Miw2ICsyNDYsMTEgQEAgcHVibGlj
OgogICAgIFNjcm9sbFR5cGUgY3VycmVudFNjcm9sbFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxTY3JvbGxUeXBlPihtX2N1cnJlbnRTY3JvbGxUeXBlKTsgfQogICAgIHZvaWQgc2V0
Q3VycmVudFNjcm9sbFR5cGUoU2Nyb2xsVHlwZSBzY3JvbGxUeXBlKSB7IG1fY3VycmVudFNjcm9s
bFR5cGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Nyb2xsVHlwZSk7IH0KIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgU2Nyb2xsQmVo
YXZpb3JUeXBlIGN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxTY3JvbGxCZWhhdmlvclR5cGU+KG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSk7
IH0KKyAgICB2b2lkIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JU
eXBlIHNjcm9sbEJlaGF2aW9yVHlwZSkgeyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorI2VuZGlmCisKICAg
ICBib29sIHNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9z
Y3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZTsgfQogICAgIHZvaWQgc2V0U2Nyb2xsU2hvdWxk
Q2xlYXJMYXRjaGVkU3RhdGUoYm9vbCBzaG91bGRDbGVhcikgeyBtX3Njcm9sbFNob3VsZENsZWFy
TGF0Y2hlZFN0YXRlID0gc2hvdWxkQ2xlYXI7IH0KIApAQCAtMzc4LDYgKzM4Nyw4IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleCB7IDAgfTsK
ICNlbmRpZgogCisgICAgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgbV9jdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMgeyBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gfTsKKwogICAg
IC8vIFRoZXJlIGFyZSA4IHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB3cml0aW5nIG1vZGUgYW5k
IGRpcmVjdGlvbi4gU2Nyb2xsIG9yaWdpbiB3aWxsIGJlIG5vbi16ZXJvIGluIHRoZSB4IG9yIHkg
YXhpcwogICAgIC8vIGlmIHRoZXJlIGlzIGFueSByZXZlcnNlZCBkaXJlY3Rpb24gb3Igd3JpdGlu
Zy1tb2RlLiBUaGUgY29tYmluYXRpb25zIGFyZToKICAgICAvLyB3cml0aW5nLW1vZGUgLyBkaXJl
Y3Rpb24gICAgIHNjcm9sbE9yaWdpbi54KCkgc2V0ICAgIHNjcm9sbE9yaWdpbi55KCkgc2V0CkBA
IC00MDMsNiArNDE0LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3Njcm9sbE9yaWdpbkNo
YW5nZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbFR5cGUgOiAxOyAvLyBTY3Jv
bGxUeXBlCiAgICAgdW5zaWduZWQgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSA6IDE7
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAg
ICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgOiAxOworI2VuZGlmCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCmluZGV4IGY4ZDNhNDkyNWFkOTAxMmMxNWIzMGNiYzM2MDI3ODkzY2ZmMmVkMDguLjZkMWY4
NTdjODg1ZWRjMjFiNmE0M2YyNjJiOWU4ODBmMjM1NzFmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwCkBAIC01ODEsMjAgKzU4MSwyOCBAQCBzdGF0aWMgdm9pZCBzZXR1
cFdoZWVsRXZlbnRNb25pdG9yKFJlbmRlckxheWVyJiBsYXllcikKICAgICBsYXllci5zY3JvbGxB
bmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihwYWdlLndoZWVsRXZlbnRUZXN0TW9u
aXRvcigpKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQs
IFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJl
bmRlckJveDo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBl
LCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBpZiAoIWhh
c092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAgICAgICByZXR1cm47CiAgICAgc2V0dXBX
aGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Nyb2xsVG9YUG9zaXRp
b24obmV3TGVmdCwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIGxheWVyKCktPnNjcm9sbFRv
WFBvc2l0aW9uKG5ld0xlZnQsIHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7CiB9CiAK
LXZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3Jv
bGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVyQm94OjpzZXRTY3Jv
bGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBT
Y3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8
ICFsYXllcigpKQogICAgICAgICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigq
bGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Nyb2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxU
eXBlLCBjbGFtcGluZyk7CisgICAgbGF5ZXIoKS0+c2Nyb2xsVG9ZUG9zaXRpb24obmV3VG9wLCBz
Y3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOworfQorCit2b2lkIFJlbmRlckJveDo6c2V0
U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBTY3JvbGxUeXBl
IHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQorewor
ICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkgfHwgIWxheWVyKCkpCisgICAgICAgIHJldHVybjsK
KyAgICBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKCpsYXllcigpKTsKKyAgICBsYXllcigpLT5zY3Jv
bGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwog
fQogCiB2b2lkIFJlbmRlckJveDo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJlY3Rz
LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggNDk1NDgxNDA1NGE2MDE3MTA4ZDY1NDkxOTUyYTM1
YWY4YzJlMzAyYi4uMjIxOTI4MDU0YmViOWJlMTRkMTZiMDEzYmM4ZGJhZDcyNjRmYWQ5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtMjQ3LDggKzI0Nyw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGludCBzY3JvbGxUb3AoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBz
Y3JvbGxXaWR0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBp
bmc6OkNsYW1wZWQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xs
VHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1w
aW5nOjpDbGFtcGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xs
VHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1w
aW5nOjpDbGFtcGVkKTsKKyAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGlu
ZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAogICAgIExheW91dFVuaXQgbWFyZ2luVG9w
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9tYXJnaW5Cb3gudG9wKCk7IH0KICAgICBMYXlv
dXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94
LmJvdHRvbSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRl
eCA1ODg0OThjZGU1NjE4NTU0OTkyZDVkOWU3OTdmOTI5YmQxNTkzMDI4Li5hMzU0Mjk0ZWFjZjli
OTk0MTM1N2IyMWM5MGI0MTBiNjNhYTM3NWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKQEAgLTI1NzYsMTYgKzI1NzYsMjQgQEAgdm9pZCBSZW5kZXJMYXllcjo6
YXBwbHlQb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb25JZk5lZWRlZCgpCiAgICAgbV9wb3N0TGF5b3V0
U2Nyb2xsUG9zaXRpb24gPSBXVEY6Om51bGxvcHQ7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnNj
cm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1w
aW5nIGNsYW1waW5nKQordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9YUG9zaXRpb24oaW50IHgs
IFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xh
bXBpbmcpCiB7CiAgICAgU2Nyb2xsUG9zaXRpb24gcG9zaXRpb24oeCwgbV9zY3JvbGxQb3NpdGlv
bi55KCkpOwotICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihwb3Np
dGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICBzY3JvbGxUb1Bvc2l0aW9uKHBvc2l0
aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCi12b2lkIFJlbmRlckxh
eWVyOjpzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3Jv
bGxDbGFtcGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9u
KGludCB5LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1w
aW5nIGNsYW1waW5nKQogewogICAgIFNjcm9sbFBvc2l0aW9uIHBvc2l0aW9uKG1fc2Nyb2xsUG9z
aXRpb24ueCgpLCB5KTsKLSAgICBzY3JvbGxUb09mZnNldChzY3JvbGxPZmZzZXRGcm9tUG9zaXRp
b24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgc2Nyb2xsVG9Qb3NpdGlv
bihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKK30KKwordm9pZCBS
ZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRp
b24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcg
Y2xhbXBpbmcpCit7CisgICAgaWYgKGFuaW1hdGVkKQorICAgICAgICBzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlw
ZSwgY2xhbXBpbmcpOworICAgIGVsc2UKKyAgICAgICAgc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zm
c2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOwogfQogCiBT
Y3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9m
ZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjU5NSwyMyArMjYwMyw2NCBAQCBTY3JvbGxP
ZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYg
c2Nyb2xsT2Zmc2V0KSBjbwogCiB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25z
dCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3Jv
bGxDbGFtcGluZyBjbGFtcGluZykKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Ny
b2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRpZgorCiAgICAgU2Nyb2xsT2Zmc2V0IGNs
YW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/
IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCkgOiBzY3JvbGxPZmZzZXQ7Ci0gICAgaWYg
KGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisgICAgaWYgKGNs
YW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpIHsKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgICAgICAvLyBJZiBV
SVNjcm9sbFZpZXcgaXMgcGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24sIHRoZSBzY3JvbGwg
b2Zmc2V0IG9mIHRoZSBXZWIgcHJvY2VzcyBtaWdodCBiZSBvdmVycmlkZGVuLgorICAgICAgICAv
LyBTbyB3ZSBuZWVkIHRvIGNhbGwgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlIGhlcmUgYW5k
IGxldCBpdCBiZSBjaGVja2VkIG9uIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAvLyBJZiB0aGUg
c2Nyb2xsIG9mZnNldCBvbiB0aGUgVUkgcHJvY2VzcyBpcyBkaWZmZXJlbnQsIHRoZSBjb3JyZWN0
IHNjcm9sbCBvZmZzZXQgbmVlZHMgdG8gc3luYyBiYWNrIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAg
ICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpJblVJTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICAgICAgcmVxdWVzdFNjcm9sbFBv
c2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0
KSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8gcHJldmlvdXNT
Y3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlw
ZShzY3JvbGxUeXBlKTsKIAogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogI2lmIEVOQUJMRShB
U1lOQ19TQ1JPTExJTkcpCi0gICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdD
b29yZGluYXRvciA9IHBhZ2UoKS5zY3JvbGxpbmdDb29yZGluYXRvcigpKQotICAgICAgICBoYW5k
bGVkID0gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgq
dGhpcywgc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpKTsKKyAg
ICBoYW5kbGVkID0gcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJv
bU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CiAjZW5kaWYKIAogICAgIGlmICghaGFuZGxl
ZCkKICAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNsYW1wZWRTY3JvbGxP
ZmZzZXQsIGNsYW1waW5nKTsKIAogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Ny
b2xsVHlwZSk7CisgICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0
dXM6Ok5vdEluQW5pbWF0aW9uKTsKK30KKworYm9vbCBSZW5kZXJMYXllcjo6cmVxdWVzdFNjcm9s
bFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyNpZiBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Ny
b2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlKCkuc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAg
ICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRh
dGUoKnRoaXMsIHBvc2l0aW9uKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9p
ZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9m
ZnNldCYgb2Zmc2V0LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1w
aW5nKQoreworICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUo
KTsKKyAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKKworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNj
cm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7CisgICAgaWYgKHJl
cXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0
KSkpIHsKKyAgICAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAgLy8gTm9uLWlPUyBwbGF0Zm9y
bXMgcGVyZm9ybSBpbnN0YW50IHNjcm9sbCBpbnN0ZWFkLgorICAgIFNjcm9sbE9mZnNldCBuZXdT
Y3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1w
U2Nyb2xsT2Zmc2V0KG9mZnNldCkgOiBvZmZzZXQ7CisgICAgaWYgKG5ld1Njcm9sbE9mZnNldCAh
PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRv
T2Zmc2V0V2l0aG91dEFuaW1hdGlvbihuZXdTY3JvbGxPZmZzZXQpOworICAgIHNldEN1cnJlbnRT
Y3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNj
cm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKQEAgLTI2NDYsNyArMjY5NSw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3Np
dGlvbikKICNlbmRpZgogICAgIH0KICAgICAKLSAgICBpZiAobV9zY3JvbGxQb3NpdGlvbiA9PSBu
ZXdQb3NpdGlvbikgeworICAgIGlmIChtX3Njcm9sbFBvc2l0aW9uID09IG5ld1Bvc2l0aW9uICYm
ICFpc1Njcm9sbEluUHJvZ3Jlc3MoKSkgewogICAgICAgICAvLyBGSVhNRTogTm90aGluZyBndWFy
YW50ZWVzIHdlIGdldCBhIHNjcm9sbFRvKCkgd2l0aCBhbiB1bmNoYW5nZWQgcG9zaXRpb24gYXQg
dGhlIGVuZCBvZiBhIHVzZXIgZ2VzdHVyZS4KICAgICAgICAgLy8gVGhlIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yIHByb2JhYmx5IG5lZWRzIHRvIG1lc3NhZ2UgdGhlIG1haW4gdGhyZWFkIHdoZW4gYSBn
ZXN0dXJlIGVuZHMuCiAgICAgICAgIGlmIChyZXF1aXJlc1Njcm9sbFBvc2l0aW9uUmVjb25jaWxp
YXRpb24oKSkgewpAQCAtMjc5MSwxMCArMjg0MCwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3Jv
bGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNp
ZAogICAgICAgICBMYXlvdXRSZWN0IHJldmVhbFJlY3QgPSBnZXRSZWN0VG9FeHBvc2UobGF5ZXJC
b3VuZHMsIGxvY2FsRXhwb3NlUmVjdCwgaW5zaWRlRml4ZWQsIG9wdGlvbnMuYWxpZ25YLCBvcHRp
b25zLmFsaWduWSk7CiAKICAgICAgICAgU2Nyb2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQg
PSBjbGFtcFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQoKSArIHRvSW50U2l6ZShyb3VuZGVkSW50
UmVjdChyZXZlYWxSZWN0KS5sb2NhdGlvbigpKSk7Ci0gICAgICAgIGlmIChjbGFtcGVkU2Nyb2xs
T2Zmc2V0ICE9IHNjcm9sbE9mZnNldCgpKSB7CisgICAgICAgIGlmIChpc1Njcm9sbEluUHJvZ3Jl
c3MoKSB8fCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ICE9IHNjcm9sbE9mZnNldCgpKSB7CiAgICAgICAg
ICAgICBTY3JvbGxPZmZzZXQgb2xkU2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0KCk7Ci0gICAg
ICAgICAgICBzY3JvbGxUb09mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KTsKLSAgICAgICAgICAg
IEludFNpemUgc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSA9IHNjcm9sbE9mZnNldCgpIC0gb2xkU2Ny
b2xsT2Zmc2V0OworICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9IChib3gtPmVsZW1lbnQoKSAm
JiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgKmJveC0+ZWxlbWVudCgpKSk7
CisgICAgICAgICAgICBzY3JvbGxUb1Bvc2l0aW9uKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChj
bGFtcGVkU2Nyb2xsT2Zmc2V0KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7
CisgICAgICAgICAgICBJbnRTaXplIHNjcm9sbE9mZnNldERpZmZlcmVuY2UgPSBjbGFtcGVkU2Ny
b2xsT2Zmc2V0IC0gb2xkU2Nyb2xsT2Zmc2V0OwogICAgICAgICAgICAgbG9jYWxFeHBvc2VSZWN0
Lm1vdmUoLXNjcm9sbE9mZnNldERpZmZlcmVuY2UpOwogICAgICAgICAgICAgbmV3UmVjdCA9IExh
eW91dFJlY3QoYm94LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobG9j
YWxFeHBvc2VSZWN0KSksIFVzZVRyYW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwogICAgICAgICB9
CkBAIC0yODE0LDEwICsyODY0LDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zp
c2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAg
ICAgICAgICAgTGF5b3V0UmVjdCB2aWV3UmVjdCA9IGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJl
Y3QoTGVnYWN5SU9TRG9jdW1lbnRWaXNpYmxlUmVjdCk7CiAgICAgICAgICAgICAgICAgTGF5b3V0
UmVjdCBleHBvc2VSZWN0ID0gZ2V0UmVjdFRvRXhwb3NlKHZpZXdSZWN0LCBhYnNvbHV0ZVJlY3Qs
IGluc2lkZUZpeGVkLCBvcHRpb25zLmFsaWduWCwgb3B0aW9ucy5hbGlnblkpOwogCi0gICAgICAg
ICAgICAgICAgSW50UG9pbnQgc2Nyb2xsT2Zmc2V0KHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0
LmxvY2F0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbihy
b3VuZGVkSW50UG9pbnQoZXhwb3NlUmVjdC5sb2NhdGlvbigpKSk7CiAgICAgICAgICAgICAgICAg
Ly8gQWRqdXN0IG9mZnNldHMgaWYgdGhleSdyZSBvdXRzaWRlIG9mIHRoZSBhbGxvd2FibGUgcmFu
Z2UuCi0gICAgICAgICAgICAgICAgc2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0LmNvbnN0cmFp
bmVkQmV0d2VlbihJbnRQb2ludCgpLCBJbnRQb2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkp
KTsKLSAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsT2Zm
c2V0KTsKKyAgICAgICAgICAgICAgICBzY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uLmNv
bnN0cmFpbmVkQmV0d2VlbihJbnRQb2ludCgpLCBJbnRQb2ludChmcmFtZVZpZXcuY29udGVudHNT
aXplKCkpKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBjb250ZW50
RG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgpPworICAgICAgICAgICAgICAgIC8vIFNlZSBo
dHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMjk3NworICAgICAgICAg
ICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpICYm
IG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpICYmIHVz
ZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCAqb3duZXJFbGVtZW50LT5jb250ZW50
RG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICAgICAgICAgIGZyYW1lVmll
dy5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgYW5pbWF0ZWQpOwogCiAgICAgICAg
ICAgICAgICAgaWYgKG9wdGlvbnMuc2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyA9PSBT
aG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMgfHwgZnJhbWVWaWV3LnNhZmVUb1By
b3BhZ2F0ZVNjcm9sbFRvUGFyZW50KCkpIHsKICAgICAgICAgICAgICAgICAgICAgcGFyZW50TGF5
ZXIgPSBvd25lckVsZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCk7CkBAIC0yODU2
LDcgKzI5MDksMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25z
dCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgICAgIC8vIEF2
b2lkIHNjcm9sbGluZyB0byB0aGUgcm91bmRlZCB2YWx1ZSBvZiByZXZlYWxSZWN0LmxvY2F0aW9u
KCkgaWYgd2UgZG9uJ3QgYWN0dWFsbHkgbmVlZCB0byBzY3JvbGwKICAgICAgICAgICAgIGlmIChy
ZXZlYWxSZWN0ICE9IHZpZXdSZWN0KSB7CiAgICAgICAgICAgICAgICAgU2Nyb2xsT2Zmc2V0IGNs
YW1wZWRTY3JvbGxQb3NpdGlvbiA9IHJvdW5kZWRJbnRQb2ludChyZXZlYWxSZWN0LmxvY2F0aW9u
KCkpLmNvbnN0cmFpbmVkQmV0d2VlbihtaW5TY3JvbGxQb3NpdGlvbiwgbWF4U2Nyb2xsUG9zaXRp
b24pOwotICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihjbGFtcGVk
U2Nyb2xsUG9zaXRpb24pOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNl
IGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAgICAgICAgICAgICAgICAvLyBTZWUg
aHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzI5NzcKKyAgICAgICAg
ICAgICAgICBib29sIGFuaW1hdGVkID0gcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxl
bWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCAqcmVuZGVyZXIo
KS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBmcmFtZVZp
ZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0aW9uLCBhbmltYXRlZCk7CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVybW9zdCB2aWV3
IG9mIGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0aGlzIHZpZXcgd2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNmNhNDIyYjdiMmIxYWNhMzUwZGViYzAy
NGM1MzllZGJkZTE3YTQzYi4uOGM5Nzc4Mzc0ZTJlMzE5NzIxY2Q1YTI0OTI2MTg2NzcxNTE0ZDQ0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTUwLDYgKzUwLDcg
QEAKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNs
dWRlICJSZW5kZXJQdHIuaCIKKyNpbmNsdWRlICJTY3JvbGxCZWhhdmlvci5oIgogI2luY2x1ZGUg
IlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CkBAIC0xMzQsNiArMTM1LDcgQEAgc3RydWN0IFNjcm9sbFJlY3RUb1Zpc2libGVPcHRp
b25zIHsKICAgICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCB7IFNjcm9sbEFsaWdubWVu
dDo6YWxpZ25DZW50ZXJJZk5lZWRlZCB9OwogICAgIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxp
Z25ZIHsgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkIH07CiAgICAgU2hvdWxk
QWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyBzaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5n
IHsgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfTsKKyAgICBTY3JvbGxCZWhh
dmlvciBiZWhhdmlvciB7IFNjcm9sbEJlaGF2aW9yOjpBdXRvIH07CiB9OwogCiBjbGFzcyBSZW5k
ZXJMYXllciBmaW5hbCA6IHB1YmxpYyBTY3JvbGxhYmxlQXJlYSB7CkBAIC00MzksOSArNDQxLDEz
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbEJ5UmVjdXJzaXZlbHkoY29uc3QgSW50U2l6ZSYg
ZGVsdGEsIFNjcm9sbGFibGVBcmVhKiogc2Nyb2xsZWRBcmVhID0gbnVsbHB0cik7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYsIFNj
cm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYsIFNjcm9sbFR5cGUgPSBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNs
YW1wZWQpOwogCi0gICAgdm9pZCBzY3JvbGxUb1hQb3NpdGlvbihpbnQgeCwgU2Nyb2xsVHlwZSwg
U2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7Ci0gICAgdm9pZCBzY3Jv
bGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCk7CisgICAgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUo
Y29uc3QgU2Nyb2xsUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2Nyb2xsVG9YUG9z
aXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0g
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24oaW50
IHksIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xh
bXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBTY3JvbGxQ
b3NpdGlvbiYsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCiAgICAgLy8gVGhlc2UgYXJlIG9ubHkgdXNlZCBieSBt
YXJxdWVlLgogICAgIHZvaWQgc2Nyb2xsVG9YT2Zmc2V0KGludCB4KSB7IHNjcm9sbFRvT2Zmc2V0
KFNjcm9sbE9mZnNldCh4LCBzY3JvbGxPZmZzZXQoKS55KCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFt
bWF0aWMsIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggOWM4MWQ3ZDljODRhZWIzYzE2ZDYzMTI2Mjli
NGRmNTEzNjdlZjA0OS4uZjMyNzFlNGZiYjA1NDZlNGQyMDNmMzM2NTRjYWY0YzA2NzBmMDg4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtNzQ0LDcg
Kzc0NCw3IEBAIGludCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxMZWZ0KCkgY29uc3QKICAgICByZXR1
cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlckxpc3RCb3g6OnNldFNjcm9sbExlZnQo
aW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKIH0KIApAQCAtNzYxLDcg
Kzc2MSw3IEBAIHN0YXRpYyB2b2lkIHNldHVwV2hlZWxFdmVudFRlc3RNb25pdG9yKFJlbmRlckxp
c3RCb3gmIHJlbmRlcmVyKQogICAgIHJlbmRlcmVyLnNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxF
dmVudFRlc3RNb25pdG9yKHJlbmRlcmVyLnBhZ2UoKS53aGVlbEV2ZW50VGVzdE1vbml0b3IoKSk7
CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9s
bFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3Ao
aW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpCiB7CiAgICAgLy8g
RGV0ZXJtaW5lIGFuIGluZGV4IGFuZCBzY3JvbGwgdG8gaXQuICAgIAogICAgIGludCBpbmRleCA9
IG5ld1RvcCAvIGl0ZW1IZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5oCmluZGV4IDY1ZDkyMjZiM2EwNTRlNjk3OGEwMjk2NzRlYTlkZjQ0MDQxZTM3YmMuLjI1
YzkwNjUxZGYwYjc1MTdhZmU3MjQxNDYwMTM2ZWIwNTMyOWU0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTA2LDggKzEwNiw4IEBAIHByaXZhdGU6CiAg
ICAgaW50IHNjcm9sbFRvcCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxXaWR0aCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxD
bGFtcGluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlw
ZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsVG9w
KGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwogCiAgICAg
Ym9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBj
b25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBv
aW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5jcHAKaW5kZXggOWVlODg4ODY3MTEwYjU2NjUyOWU4ZmJhMTAyNWNkNTE5MWUxYWMzOS4u
NGRmN2QzMThkYzc4Yzk0M2QzM2E4ZjVlMWE1ZDVlN2Y0ZjY2ODhmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5j
cHAKQEAgLTM3NiwxMyArMzc2LDEzIEBAIGludCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OnNjcm9sbFRvcCgpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2Nyb2xsVG9w
KCk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0
KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBl
LCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxlbWVudCgpKQog
ICAgICAgICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbExlZnQobmV3TGVmdCk7CiB9CiAK
LXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3AoaW50IG5ld1Rv
cCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9s
bENsYW1waW5nKQogewogICAgIGlmIChpbm5lclRleHRFbGVtZW50KCkpCiAgICAgICAgIGlubmVy
VGV4dEVsZW1lbnQoKS0+c2V0U2Nyb2xsVG9wKG5ld1RvcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggM2Y1
Nzg2ZGZlNDAwZWI4MGZkOGUyYjM5MDY2NjJiZDk5Yjk0ZjEzYS4uNjY2YWEzMTQ1MWIzMTU3MjAy
NzA1MmJjZGU1Yjg5NDllNWIwMGZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTcsOCArNTcsOCBAQCBw
cml2YXRlOgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Ny
b2xsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlw
ZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQs
IFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlk
ZTsKICAgICBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBm
bG9hdCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gbnVsbHB0ciwgUmVu
ZGVyQm94KiBzdGFydEJveCA9IG51bGxwdHIsIGNvbnN0IEludFBvaW50JiB3aGVlbEV2ZW50QWJz
b2x1dGVQb2ludCA9IEludFBvaW50KCkpIGZpbmFsOwogICAgIGJvb2wgbG9naWNhbFNjcm9sbChT
Y3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGll
ciA9IDEsIEVsZW1lbnQqKiBzdG9wRWxlbWVudCA9IDApIGZpbmFsOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGMyZWM0OGVkOWM0ZjhkNTE5
NDUyMTlhNjFjMmE0NTk0NDc4ODIzZTMuLjk5YTIzYzJjYTI1NjY3NDZjZGZmMTU0MGNlMzI2OGEx
MWI2N2YzZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCkBAIC03MzYsNiArNzM2LDggQEAgcHVibGljOgogICAgIGJvb2wgdXNlVG91Y2hPdmVyZmxv
d1Njcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnVzZVRvdWNo
T3ZlcmZsb3dTY3JvbGxpbmc7IH0KICNlbmRpZgogCisgICAgYm9vbCB1c2VTbW9vdGhTY3JvbGxp
bmcoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT51c2VTbW9vdGhTY3Jv
bGxpbmc7IH0KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgVGV4dFNpemVBZGp1
c3RtZW50IHRleHRTaXplQWRqdXN0KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlSW5oZXJpdGVkRGF0
YS0+dGV4dFNpemVBZGp1c3Q7IH0KICAgICBBdXRvc2l6ZVN0YXR1cyBhdXRvc2l6ZVN0YXR1cygp
IGNvbnN0OwpAQCAtMTI2Nyw2ICsxMjY5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlVG91
Y2hPdmVyZmxvd1Njcm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRh
LCB1c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nLCB2KTsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHNl
dFVzZVNtb290aFNjcm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWRE
YXRhLCB1c2VTbW9vdGhTY3JvbGxpbmcsIHYpOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0la
SU5HKQogICAgIHZvaWQgc2V0VGV4dFNpemVBZGp1c3QoVGV4dFNpemVBZGp1c3RtZW50IGFkanVz
dG1lbnQpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB0ZXh0U2l6ZUFkanVzdCwgYWRq
dXN0bWVudCk7IH0KICAgICB2b2lkIHNldEF1dG9zaXplU3RhdHVzKEF1dG9zaXplU3RhdHVzKTsK
QEAgLTE3MDQsNiArMTcwOCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNl
VG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorICAg
IHN0YXRpYyBib29sIGluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxzZTsg
fQorCiAgICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIoKSB7
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7
IH0KICAgICBzdGF0aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgaW5pdGlhbEFwcGxlQ29sb3JG
aWx0ZXIoKSB7IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJl
dHVybiBvcHM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGZiMzIwODIzMzc0Mjhi
MTFmZDY4MTUyMDdhZmU1MTNmNDJjZjEwMWYuLmIwMGYzZThiNjg2Y2I0ODQ2ZWQ4ZWI4Njc1NDhl
YzZhYjk2NzQ2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTgyLDYgKzgyLDcgQEAg
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAj
aWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogICAgICwgdG91Y2hBY3Rpb25zKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFRvdWNoQWN0aW9ucygpKSkKICNlbmRpZgor
ICAgICwgdXNlU21vb3RoU2Nyb2xsaW5nKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHls
ZTo6aW5pdGlhbFVzZVNtb290aFNjcm9sbGluZygpKSkKICAgICAsIHBhZ2VTaXplVHlwZShQQUdF
X1NJWkVfQVVUTykKICAgICAsIHRyYW5zZm9ybVN0eWxlM0Qoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFJlbmRlclN0eWxlOjppbml0aWFsVHJhbnNmb3JtU3R5bGUzRCgpKSkKICAgICAsIGJhY2tmYWNl
VmlzaWJpbGl0eShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxCYWNr
ZmFjZVZpc2liaWxpdHkoKSkpCkBAIC0xNzUsNiArMTc2LDcgQEAgaW5saW5lIFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJl
Tm9uSW4KICNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCiAgICAgLCB0b3VjaEFjdGlvbnMoby50
b3VjaEFjdGlvbnMpCiAjZW5kaWYKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhvLnVzZVNtb290
aFNjcm9sbGluZykKICAgICAsIHBhZ2VTaXplVHlwZShvLnBhZ2VTaXplVHlwZSkKICAgICAsIHRy
YW5zZm9ybVN0eWxlM0Qoby50cmFuc2Zvcm1TdHlsZTNEKQogICAgICwgYmFja2ZhY2VWaXNpYmls
aXR5KG8uYmFja2ZhY2VWaXNpYmlsaXR5KQpAQCAtMjg3LDYgKzI4OSw3IEBAIGJvb2wgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhJiBvKSBjCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogICAgICAgICAmJiB0b3Vj
aEFjdGlvbnMgPT0gby50b3VjaEFjdGlvbnMKICNlbmRpZgorICAgICAgICAmJiB1c2VTbW9vdGhT
Y3JvbGxpbmcgPT0gby51c2VTbW9vdGhTY3JvbGxpbmcKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lU
SU5HKQogICAgICAgICAmJiBlZmZlY3RpdmVCbGVuZE1vZGUgPT0gby5lZmZlY3RpdmVCbGVuZE1v
ZGUKICAgICAgICAgJiYgaXNvbGF0aW9uID09IG8uaXNvbGF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
aAppbmRleCAxOWM1OTFiMmQxMjRjOTY1ZDg5N2ViYTU4MDUxMTExNGE2YmM3NDM1Li41OGYxYzZj
Y2Y2NjA3NmY5ZjBhYjJiOGI2YWFkYTk3ZjJkN2I1ODBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgK
QEAgLTE3NSw2ICsxNzUsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgdG91Y2hBY3Rpb25zIDog
NjsgLy8gVG91Y2hBY3Rpb24KICNlbmRpZgogCisgICAgdW5zaWduZWQgdXNlU21vb3RoU2Nyb2xs
aW5nIDogMTsgLy8gU2Nyb2xsQmVoYXZpb3IKKwogICAgIHVuc2lnbmVkIHBhZ2VTaXplVHlwZSA6
IDI7IC8vIFBhZ2VTaXplVHlwZQogICAgIHVuc2lnbmVkIHRyYW5zZm9ybVN0eWxlM0QgOiAxOyAv
LyBUcmFuc2Zvcm1TdHlsZTNECiAgICAgdW5zaWduZWQgYmFja2ZhY2VWaXNpYmlsaXR5IDogMTsg
Ly8gQmFja2ZhY2VWaXNpYmlsaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRl
ckNvbnZlcnRlci5oCmluZGV4IDdmM2YwY2JjNGU1NTE1YmIxOGIyYWYzOTAwZmE2NWQ4ZDZiYTA5
OWYuLmUzODIwNGY2ODAzNTdkYjE4MjgzN2ViYjVkYjliMGVkZWMyNDk0OTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCkBAIC0xMjksNiArMTI5LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGNvbnZlcnRPdmVyZmxvd1Njcm9sbGluZyhCdWls
ZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOwogI2VuZGlmCiAgICAgc3RhdGljIEZvbnRGZWF0
dXJlU2V0dGluZ3MgY29udmVydEZvbnRGZWF0dXJlU2V0dGluZ3MoQnVpbGRlclN0YXRlJiwgY29u
c3QgQ1NTVmFsdWUmKTsKKyAgICBzdGF0aWMgYm9vbCBjb252ZXJ0U21vb3RoU2Nyb2xsaW5nKEJ1
aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIEZvbnRTZWxlY3Rpb25W
YWx1ZSBjb252ZXJ0Rm9udFdlaWdodEZyb21WYWx1ZShjb25zdCBDU1NWYWx1ZSYpOwogICAgIHN0
YXRpYyBGb250U2VsZWN0aW9uVmFsdWUgY29udmVydEZvbnRTdHJldGNoRnJvbVZhbHVlKGNvbnN0
IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIE9wdGlvbmFsPEZvbnRTZWxlY3Rpb25WYWx1ZT4gY29u
dmVydEZvbnRTdHlsZUZyb21WYWx1ZShjb25zdCBDU1NWYWx1ZSYpOwpAQCAtMTQwMyw2ICsxNDA0
LDExIEBAIGlubGluZSBib29sIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRPdmVyZmxvd1Njcm9s
bGluZyhCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWCiB9CiAjZW5kaWYKIAoraW5saW5lIGJvb2wg
QnVpbGRlckNvbnZlcnRlcjo6Y29udmVydFNtb290aFNjcm9sbGluZyhCdWlsZGVyU3RhdGUmLCBj
b25zdCBDU1NWYWx1ZSYgdmFsdWUpCit7CisgICAgcmV0dXJuIGRvd25jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlPih2YWx1ZSkudmFsdWVJRCgpID09IENTU1ZhbHVlU21vb3RoOworfQorCiBpbmxpbmUg
U1ZHTGVuZ3RoVmFsdWUgQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydFNWR0xlbmd0aFZhbHVlKEJ1
aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKIHsKICAgICByZXR1cm4gU1ZHTGVu
Z3RoVmFsdWU6OmZyb21DU1NQcmltaXRpdmVWYWx1ZShkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZT4odmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAxZTNkOGY0
YTRmNjllZWE1NTA1NWU4NzFhMDcyZTA5YzQ1NTc4MzQzLi41M2MzOTI2Mjg2YjU3Yzg3M2MyODRh
ZmEwZGY4ZjU1NTJiNjNhODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBA
IC0xNzM5LDcgKzE3MzksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnVuY29uc3Ry
YWluZWRTY3JvbGxUbyhFbGVtZW50JiBlbGVtZW50LCBkb3VibGUgeCwgZAogICAgIGlmICghZG9j
dW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkQWNjZXNzRXJyb3IgfTsKIAotICAgIGVsZW1lbnQuc2Nyb2xsVG8oeyB4LCB5IH0sIFNj
cm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOworICAgIGVsZW1lbnQuc2Nyb2xsVG8oU2Nyb2xsVG9P
cHRpb25zKHgsIHkpLCBTY3JvbGxDbGFtcGluZzo6VW5jbGFtcGVkKTsKICAgICByZXR1cm4geyB9
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2Fj
dGlvbi5jcHAKaW5kZXggZTgyNmEzMGIxMmUyNGVjZjQzMGM2OWI3NmIxYTZmMjhmNWJiOThkOC4u
Mzc4NzYyZDBhNDI5NmQxYWYzMGU1MDIwOWRjYjM4YTVkZWM0YWVjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcApAQCAtMTUyLDYg
KzE1Miw5IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNP
REUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcywgc2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbikKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFu
aW1hdGlvbikKKyNlbmRpZgogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQogICAgICAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4obm9k
ZS5zY3JvbGxDb250YWluZXJMYXllcigpKTsKQEAgLTI2MCw3ICsyNjMsMTQgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBTY3JvbGwKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgICAgIGJvb2wgc2Nyb2xsV2l0aEFuaW1hdGlvbjsKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShzY3JvbGxXaXRoQW5pbWF0aW9uKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihz
Y3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xsV2l0aEFu
aW1hdGlvbik7CisjZWxzZQogICAgICAgICBub2RlLnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uLCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyNlbmRpZgog
ICAgIH0KIAogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkgewpAQCAtNjA4LDYgKzYxOCw5IEBA
IHN0YXRpYyB2b2lkIGR1bXAoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZSYgbm9kZSwgYm9vbCBjCiAgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllc09ubHkg
fHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpS
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpIHsKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1
ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uIiwgbm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpKTsK
ICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLWlzLXBy
b2dyYW1hdGljIiwgbm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwoKSk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgdHMuZHVt
cFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLXdpdGgtYW5pbWF0aW9uIiwgbm9k
ZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSk7CisjZW5kaWYKICAgICB9
CiAKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGM2ZWY4M2U1MDA0
NDM1MzNiYzQyOTFjODQzMmQxNmUyMGZiNWU2NjQuLjkzYWYxMTE2MTM0ZGE5NDY5NjkxYzE0ODMy
MTY0OTQwYTU0NDY5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFt
bApAQCAtMTMxNyw2ICsxMzE3LDEzIEBAIEJsb2NraW5nT2ZTbWFsbFBsdWdpbnNFbmFibGVkOgog
ICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJTdG9wIHBsdWdpbnMgc21hbGxlciB0aGFuIGEg
Y2VydGFpbiB0aHJlc2hvbGQgZnJvbSBsb2FkaW5nLiIKICAgY2F0ZWdvcnk6IGludGVybmFsCiAK
K0NTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVs
dFZhbHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIkNTU09NIFZpZXcgU21vb3RoIFNj
cm9sbGluZyIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIERPTSBBUEkgYW5k
IENTUyBwcm9wZXJ0eSBmb3IgJ3Ntb290aCcgc2Nyb2xsIGJlaGF2aW9yIgorICBjYXRlZ29yeTog
ZXhwZXJpbWVudGFsCisKIFdlYkFuaW1hdGlvbnNFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRl
ZmF1bHRWYWx1ZTogdHJ1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KaW5kZXggYzQyNjhiNWY1NGZiNzEwNGNjYWNkOGNhOThlZGFhYWQ1NWNjOWFi
OS4uMjEyMjg1NThhZjU0OWRlZWVlNWEwMWEyY2EzMmNiZDdkMzcyZjljOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xNjE2LDYgKzE2
MTYsMTEgQEAgc3RhdGljIGlubGluZSBib29sIHBvaW50c0VxdWFsSW5EZXZpY2VQaXhlbHMoQ0dQ
b2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVMKICAgICAgICAgJiYgZmFicyhhLnkgKiBk
ZXZpY2VTY2FsZUZhY3RvciAtIGIueSAqIGRldmljZVNjYWxlRmFjdG9yKSA8IHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBwb2lu
dHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKENHUG9pbnQgYSwgQ0dQb2ludCBiLCBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICByZXR1cm4gQ0dSb3VuZChhLnggKiBkZXZpY2VTY2Fs
ZUZhY3RvcikgPT0gQ0dSb3VuZChiLnggKiBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICAgICAgJiYg
Q0dSb3VuZChhLnkgKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChiLnkgKiBkZXZpY2VT
Y2FsZUZhY3Rvcik7Cit9CiBzdGF0aWMgQ0dTaXplIHJvdW5kU2Nyb2xsVmlld0NvbnRlbnRTaXpl
KGNvbnN0IFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBDR1NpemUgY29udGVudFNpemUpCiB7
CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCk7
CkBAIC0yMzQwLDkgKzIzNDUsMTAgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3Ry
YWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKICAgICByZXR1
cm4gY29udGVudE9mZnNldC5jb25zdHJhaW5lZEJldHdlZW4oV2ViQ29yZTo6RmxvYXRQb2ludCgp
LCBXZWJDb3JlOjpGbG9hdFBvaW50KG1heGltdW1Db250ZW50T2Zmc2V0KSk7CiB9CiAKLS0gKHZv
aWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNj
cm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2lu
CistICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQ
b2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9s
bE9yaWdpbiBhbmltYXRlZDooQk9PTClhbmltYXRlZAogewotICAgIGlmIChfY29tbWl0RGlkUmVz
dG9yZVNjcm9sbFBvc2l0aW9uIHx8IF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlICE9IFdlYktp
dDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpCisgICAgLy8gQW5pbWF0
ZWQgc2Nyb2xsaW5nIHNob3VsZG4ndCBiZSBza2lwcGVkLgorICAgIGlmICghYW5pbWF0ZWQgJiYg
KF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0
ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykp
CiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZnNl
dCA9IFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Ny
b2xsUG9zaXRpb24sIHRvRmxvYXRTaXplKHNjcm9sbE9yaWdpbikpOwpAQCAtMjM1NiwxMyArMjM2
MiwyMSBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0
KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogCiAgICAgW19zY3JvbGxWaWV3IF9zdG9w
U2Nyb2xsaW5nQW5kWm9vbWluZ0FuaW1hdGlvbnNdOwogCi0gICAgaWYgKCFDR1BvaW50RXF1YWxU
b1BvaW50KGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3
IGNvbnRlbnRPZmZzZXRdKSkKLSAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6
Y29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzXTsKKyAgICAvLyBJdCdzIHBvc3Np
YmxlIHRoYXQgdGhleSBhcmUgbm90IGVxdWFsLCBidXQgaW4gdGhlIHNhbWUgZGV2aWNlIHBpeGVs
LCBzbyBfc2Nyb2xsVmlldyB3b24ndCBjaGFuZ2UuCisgICAgLy8gV2UgbmVlZCB0byBjYWxjdWxh
dGUgdGhlIHJvdW5kIHRvIGRldmljZSBwaXhlbCBoZXJlLgorICAgIGlmICghcG9pbnRzRXF1YWxJ
blJvdW5kVG9EZXZpY2VQaXhlbChjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMs
IFtfc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XSwgX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkp
KQorICAgICAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMgYW5pbWF0ZWQ6YW5pbWF0ZWRdOwogICAgIGVsc2UgewogICAg
ICAgICAvLyBJZiB3ZSBoYXZlbid0IGNoYW5nZWQgYW55dGhpbmcsIHRoZXJlIHdvdWxkIG5vdCBi
ZSBhbnkgVmlzaWJsZUNvbnRlbnRSZWN0IHVwZGF0ZSBzZW50IHRvIHRoZSBjb250ZW50LgogICAg
ICAgICAvLyBUaGUgV2ViUHJvY2VzcyB3b3VsZCBrZWVwIHRoZSBpbnZhbGlkIGNvbnRlbnRPZmZz
ZXQgYXMgaXRzIHNjcm9sbCBwb3NpdGlvbi4KICAgICAgICAgLy8gVG8gc3luY2hyb25pemUgdGhl
IFdlYlByb2Nlc3Mgd2l0aCB3aGF0IGlzIG9uIHNjcmVlbiwgd2Ugc2VuZCB0aGUgVmlzaWJsZUNv
bnRlbnRSZWN0IGFnYWluLgogICAgICAgICBfcGFnZS0+cmVzZW5kTGFzdFZpc2libGVDb250ZW50
UmVjdHMoKTsKKyAgICAgICAgLy8gSWYgX3Njcm9sbFZpZXcgd29uJ3QgY2hhbmdlLCB3ZSBzdGls
bCBuZWVkIHRvIHRlbGwgdGhlIFdlYiBwcm9jZXNzIHRoYXQgdGhlIGFuaW1hdGlvbiBzdG9wcGVk
LgorICAgICAgICBpZiAoYW5pbWF0ZWQpIHsKKyAgICAgICAgICAgIFdlYktpdDo6UmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eSogY29vcmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eSgpOworICAgICAgICAgICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICAg
ICAgICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0y
ODc4LDYgKzI4OTIsMTAgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29u
dGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKIC0gKHZvaWQpc2Nyb2xs
Vmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwog
ewogICAgIFtzZWxmIF9kaWRGaW5pc2hTY3JvbGxpbmddOworCisgICAgV2ViS2l0OjpSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5KCk7CisgICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICBjb29yZGlu
YXRvci0+c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlk
Q2hhbmdlKGZhbHNlKTsKIH0KIAogLSAodm9pZClfc2Nyb2xsVmlld0RpZEludGVycnVwdERlY2Vs
ZXJhdGluZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA0MzUwODBm
MzI0NDVjZThlN2Y1NmVlNWRjMDA0Mzk0YmNmMWFhNWQ5Li41Y2I1ZjU4MTcyNTYxYWYxZDgxNGYw
OWM1NTRjYjA1YzM0ZTE4NGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaApAQCAtOTcsNyArOTcsNyBAQCBzdHJ1Y3Qg
UHJpbnRJbmZvOwogCiAtIChSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1Nu
YXBzaG90OwogCi0tICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29y
ZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBv
aW50KXNjcm9sbE9yaWdpbjsKKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9u
OihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29y
ZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkOwogLSAoQk9P
TClfc2Nyb2xsVG9SZWN0OihXZWJDb3JlOjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdl
YkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIG1pbmltdW1TY3JvbGxEaXN0YW5jZTooZmxvYXQpbWlu
aW11bVNjcm9sbERpc3RhbmNlOwogLSAoZG91YmxlKV9pbml0aWFsU2NhbGVGYWN0b3I7CiAtIChk
b3VibGUpX2NvbnRlbnRab29tU2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
aW5kZXggMmEyOTg5OTM0ODViZGExYjgwMDA3N2NhYmNmYWVlZDEzNGUwZDQ3ZS4uYzMwYjZiOTEz
ZjA2OTE0Y2I5YzUxZThlMDE4NGY2NWRjMzcyYzBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaApAQCAtMTgxLDYgKzE4MSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gVGVsbCB0aGUg
dmlldyB0byBzY3JvbGwgdG8gdGhlIGdpdmVuIHBvc2l0aW9uLCBhbmQgd2hldGhlciB0aGlzIHdh
cyBhIHByb2dyYW1tYXRpYyBzY3JvbGwuCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGwo
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBzY3JvbGxPcmlnaW4pID0gMDsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
c2Nyb2xsT3JpZ2luKSB7IH0KKyNlbmRpZgorCiAgICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNj
cm9sbCBwb3NpdGlvbiAobm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNj
cm9sbCBwb3NpdGlvbiwgYmVjYXVzZSBvZiBzY2FsaW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0
dWFsIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgPSAwOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGI3YjA0
Njk1OTI1ZGM2OGZkYzY1NjM1OGU1OWYxNDIxNWU4NWNlNjAuLjY2YWQ5ZjQ3MGY4MDU3MWQyMmU4
YTI4MGRmMDA3MmFmZTRkOWM5MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0yMjQsOCArMjI0LDE0IEBAIHZvaWQgUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJl
ZVRyYW5zCiAKICAgICAvLyBIYW5kbGUgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVz
IGZyb20gdGhlIHNjcm9sbGluZyB0cmVlIHRyYW5zYWN0aW9uIGFmdGVyIGRpZENvbW1pdExheWVy
VHJlZSgpCiAgICAgLy8gaGFzIHVwZGF0ZWQgdGhlIHZpZXcgc2l6ZSBiYXNlZCBvbiB0aGUgY29u
dGVudCBzaXplLgotICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9z
aXRpb25VcGRhdGUpCi0gICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVz
dGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rp
b24uc2Nyb2xsT3JpZ2luKCkpOworICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3Rz
U2Nyb2xsUG9zaXRpb25VcGRhdGUpIHsKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNj
cm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uCisgICAgICAg
ICAgICAsIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbE9yaWdpbigpCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICAgICAgICAgICwgcmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0V2l0
aEFuaW1hdGlvbgorI2VuZGlmCisgICAgICAgICAgICApOworICAgIH0KICNlbmRpZiAvLyBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQogCiAgICAgaWYgKG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVI
b3N0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5j
cHAKaW5kZXggNDgyM2Y3NmE5NzcyZjk3N2NkNzZjMjVjM2Q1ZWE3ZDMyZjFkYWM2Ni4uYWFhODkx
NTUwOGFhMWNiNTJlYzg1MzhkNWU0NDEyMmFhMjgxNTc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApAQCAtMjA4LDcgKzIwOCwxMSBAQCB2
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmN1cnJlbnRTbmFwUG9pbnRJbmRp
Y2VzRGlkQ2hhbmdlKFdlYkNvcmU6OgogfQogCiAvLyBUaGlzIGNvbWVzIGZyb20gdGhlIHNjcm9s
bGluZyB0cmVlLgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05v
ZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24s
IGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xs
aW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBib29s
IGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKQorI2Vsc2UKIHZvaWQgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5n
Tm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlv
biwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3Jv
bGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pCisj
ZW5kaWYKIHsKICAgICAvLyBTY3JvbGwgdXBkYXRlcyBmb3IgdGhlIG1haW4gZnJhbWUgYXJlIHNl
bnQgdmlhIFdlYlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cygpCiAgICAgLy8g
c28gZG9uJ3Qgc2VuZCB0aGVtIGhlcmUuCkBAIC0yMjIsMjEgKzIyNiw0NSBAQCB2b2lkIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNj
cm9sbGluZ05vZGVJRAogICAgIG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVTY3JvbGxWaWV3
RGlkU2Nyb2xsKCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYg
KG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpICYmICFpbnN0
YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworI2Vsc2UKICAgICBp
ZiAobV9zY3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKCkpCiAgICAg
ICAgIHJldHVybjsKKyNlbmRpZgogCiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OlNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUo
c2Nyb2xsZWROb2RlSUQsIG5ld1Njcm9sbFBvc2l0aW9uLCBzY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uID09IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpKTsKIH0KIAorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9s
bGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24pCisjZWxzZQogdm9pZCBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3Rz
U2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKKyNlbmRp
ZgogewogICAgIGlmIChzY3JvbGxlZE5vZGVJRCA9PSByb290U2Nyb2xsaW5nTm9kZUlEKCkgJiYg
bV9yZXF1ZXN0ZWRTY3JvbGxJbmZvKSB7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+
cmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSA9IHRydWU7CiAgICAgICAgIG1fcmVxdWVzdGVk
U2Nyb2xsSW5mby0+cmVxdWVzdElzUHJvZ3JhbW1hdGljU2Nyb2xsID0gcmVwcmVzZW50c1Byb2dy
YW1tYXRpY1Njcm9sbDsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBtX3JlcXVl
c3RlZFNjcm9sbEluZm8tPnJlcXVlc3RXaXRoQW5pbWF0aW9uID0gd2l0aEFuaW1hdGlvbjsKKyNl
bmRpZgogICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uID0gc2Nyb2xsUG9zaXRpb247CiAgICAgfQogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5v
ZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlEIHNjcm9sbGVkTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykK
K3sKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHNjcm9sbGVk
Tm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsKK30KKwordm9pZCBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShyb290
U2Nyb2xsaW5nTm9kZUlEKCksIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOyAgICAKK30K
KyNlbmRpZgorCiBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xs
aW5nVHJlZUFzVGV4dCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhNzY5NDNm
MjQ1YmUxY2Q4MjJmMTk2MTNjZGQzNWY1NDBhOTRjZGEuLjIzNTUwN2MwNTRhMWUyZDZlMjkwN2Zl
MGJmZjlkZTNiOGU1ZjI1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaApAQCAtNTUsOSArNTUsMTcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5Jik7CiAgICAgdmlydHVh
bCB+UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOwogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKTsKKyAgICAvLyBJbmZvcm0gdGhlIHdlYiBwcm9jZXNzIHRoYXQgdGhlIHNjcm9sbCBw
b3NpdGlvbiBjaGFuZ2VkIChjYWxsZWQgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUpCisgICAgdm9p
ZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFdlYkNvcmU6OlNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmlt
YXRpb24gPSBmYWxzZSk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xs
KFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRo
QW5pbWF0aW9uID0gZmFsc2UpOworI2Vsc2UKICAgICAvLyBJbmZvcm0gdGhlIHdlYiBwcm9jZXNz
IHRoYXQgdGhlIHNjcm9sbCBwb3NpdGlvbiBjaGFuZ2VkIChjYWxsZWQgZnJvbSB0aGUgc2Nyb2xs
aW5nIHRyZWUpCiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0
aW9uLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRP
cmlnaW4sIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwogICAgIHZvaWQg
c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAKICAgICBXZWJDb3JlOjpUcmFja2luZ1R5
cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUs
IFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKIApAQCAtODAsNiArODgsOSBAQCBwdWJsaWM6CiAg
ICAgc3RydWN0IFJlcXVlc3RlZFNjcm9sbEluZm8gewogICAgICAgICBib29sIHJlcXVlc3RzU2Ny
b2xsUG9zaXRpb25VcGRhdGUgeyB9OwogICAgICAgICBib29sIHJlcXVlc3RJc1Byb2dyYW1tYXRp
Y1Njcm9sbCB7IH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgYm9vbCByZXF1
ZXN0V2l0aEFuaW1hdGlvbiB7IH07CisjZW5kaWYKICAgICAgICAgV2ViQ29yZTo6RmxvYXRQb2lu
dCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICB9OwogICAgIHZvaWQgY29tbWl0U2Nyb2xs
aW5nVHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24m
LCBSZXF1ZXN0ZWRTY3JvbGxJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5k
ZXggYWZhYmJjMWVhZTMxZjg2YjlkNGFiODlmNjc1NDVlZmVkZWM1NTBmMi4uNTY0NTg5M2RiOTFl
MWQ1OTNlODI1YzZmYmY3NDZiM2UxNjMxNDlhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVl
LmNwcApAQCAtMTA0LDEzICsxMDQsMjQgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3Jv
bGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYKICAgICBp
ZiAoaXM8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkpCiAgICAgICAgIGxh
eW91dFZpZXdwb3J0T3JpZ2luID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZT4obm9kZSkubGF5b3V0Vmlld3BvcnQoKS5sb2NhdGlvbigpOwogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xs
UG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb24sIG5vZGUubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpICYmICFub2RlLnJl
cXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKCkpOworI2Vsc2UKICAgICBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2Rl
SUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4s
IHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworI2VuZGlmCiB9CiAKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wg
d2l0aEFuaW1hdGlvbikKK3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xs
aW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBvc2l0aW9uLCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCB3aXRoQW5pbWF0aW9uKTsKK30KKyNlbHNlCiB2b2lkIFJl
bW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xs
aW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wg
cmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKIHsKICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBv
c2l0aW9uLCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIH0KKyNlbmRpZgogCiBSZWY8
U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1Ry
ZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
KQogewpAQCAtMTQzLDYgKzE1NCwxMyBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNj
cm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZAogICAgIHJl
dHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3Jv
bGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cykKK3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVJ
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9kZUlELCBpc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6
Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwg
dW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpCiB7CiAgICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKG5vZGVJ
RCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXgg
MjNiYWMwNmEzYjk2ZjJlODhkNWNlYmI3MWMwZDVhN2NlNTg5ZWNmNS4uNGJkNTYwZGQ4NTY5NmFk
ZDkzZGE1NjA2ODdkNzA2NzRkZDkxOGJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBA
IC01Miw3ICs1MiwxMiBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eSYgc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsgfQogCiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9k
ZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFdlYkNvcmU6
OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxp
bmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29s
IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNl
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MpIG92ZXJyaWRlOworI2Vsc2UKICAgICB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsKSBvdmVycmlkZTsKKyNlbmRpZgogCiAgICAgdm9pZCBjdXJyZW50U25hcFBv
aW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhv
cml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaAppbmRl
eCBlNjM3ZDYxNTMyNWQzODBjZTkyZDA3YTJiMTIxOTEzZmYxODFkZDJlLi4wMGI0ZGJjZDM3MGUx
OGNkZmQzOTllZTc2YjEzZmIwNTQzYjMzMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaApAQCAtNTcsNiArNTcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxEaWRFbmQoKSBjb25zdDsKICAgICB2b2lkIHNj
cm9sbFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxWaWV3
RGlkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9mZnNldCwgYm9vbCBp
blVzZXJJbnRlcmFjdGlvbik7CisgICAgdm9pZCBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5p
bWF0aW9uKCk7CiAKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKHVu
c2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBjb25zdDsKICAgICBDQUxheWVy
ICpzY3JvbGxMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUy5tbQppbmRleCBlNzY4OTgzNzU4MWI5ZDliOTViZmVhMDM3NmUxZTQ5MWNlZjM5YTQ2
Li43YTZlNjRhYjcyNDY4MTg5ZmZlOGVkOTc1YTcxZmJhNTE3ODAyNmM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Lm1tCkBAIC0xNTIsNiArMTUyLDExIEBACiAgICAgfQogfQogCistICh2b2lkKXNjcm9sbFZpZXdE
aWRFbmRTY3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKK3sKKyAg
ICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0Fu
aW1hdGlvbigpOworfQorCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogLSAoQ0dQb2ludClf
c2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNldEZvck9m
ZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRpb24gc3Rh
cnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludClsb2NhdGlvbklu
VmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2FsVmVsb2Np
dHk6KGlub3V0IGRvdWJsZSAqKXZ2CiB7CkBAIC0zMDAsMTUgKzMwNSwzNiBAQCB2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJl
bihjb25zdCBTY3JvbAogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bikpIHsKICAgICAgICAgYXV0byBzY3JvbGxUeXBlID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpID8gU2Nyb2xs
VHlwZTo6UHJvZ3JhbW1hdGljIDogU2Nyb2xsVHlwZTo6VXNlcjsKLSAgICAgICAgc2Nyb2xsaW5n
Tm9kZSgpLnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bigpLCBzY3JvbGxUeXBlKTsKKyAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ05v
ZGUoKS5zZXRSZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbih0cnVlKTsKKyAgICAgICAgLy8gSWYg
dGhlIHNjcm9sbCBwb3NpdGlvbnMgYXJlIG5vdCB0aGUgc2FtZSwgdGhlcmUncyBhIHBvc3NpYmls
aXR5IHRoYXQgdGhlIHNjcm9sbCBvZmZzZXQgZnJvbSB0aGUgV2ViIHByb2Nlc3MgaGFzIGJlZW4g
b3ZlcnJpZGRlbi4KKyAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCB0aGUgc2Nyb2xsIHBvc2l0aW9u
IG5lZWQgdG8gYmUgc2VudCB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIGJvb2wgc2hvdWxk
U3luY1Njcm9sbFBvc2l0aW9uID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbFBvc2l0aW9uKCkg
IT0gc2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxQb3NpdGlvbigpOworICAgICAgICBzY3Jv
bGxpbmdOb2RlKCkuc2Nyb2xsVG8oc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKCksIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2Vz
LCBzaG91bGRTeW5jU2Nyb2xsUG9zaXRpb24pOwogICAgIH0KIH0KIAogdm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpyZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkK
IHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbc2Nyb2xsVmlldygpIHNl
dENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07Ci0g
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIGJvb2wgYW5pbWF0aW9uSW5Qcm9ncmVz
cyA9IHNjcm9sbGluZ05vZGUoKS5zY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCk7CisgICAgYm9v
bCBuZWVkVG9TdG9wQW5pbWF0aW9uID0gc2Nyb2xsaW5nTm9kZSgpLm5lZWRzU3RvcEN1cnJlbnRT
Y3JvbGxBbmltYXRpb24oKTsKKyAgICBpZiAobmVlZFRvU3RvcEFuaW1hdGlvbiAmJiBhbmltYXRp
b25JblByb2dyZXNzKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAg
ICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsVmlldygpLmNvbnRlbnRP
ZmZzZXQgYW5pbWF0ZWQ6Tk9dOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisg
ICAgfQorCisgICAgaWYgKHNjcm9sbGluZ05vZGUoKS5yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlv
bigpKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Ny
b2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxP
ZmZzZXQoKSBhbmltYXRlZDpZRVNdOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CisKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mo
dHJ1ZSk7CisgICAgfSBlbHNlIGlmICghYW5pbWF0aW9uSW5Qcm9ncmVzcyB8fCBuZWVkVG9TdG9w
QW5pbWF0aW9uKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAg
ICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRT
Y3JvbGxPZmZzZXQoKV07CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9
CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xs
V2lsbFN0YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICszNjEsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0
UG9pbnQKICAgICBzY3JvbGxpbmdOb2RlKCkud2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGlu
ZyhzY3JvbGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJbnRlcmFjdGlvbiA/IFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb246OlN5bmMgOiBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQp
OwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9s
bFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKQoreworICAgIGF1dG8mIG5vZGUgPSBzY3Jv
bGxpbmdOb2RlKCk7CisgICAgaWYgKCEobm9kZS5yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbigp
ICYmIG5vZGUuc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpKSkgeworICAgICAgICBzY3JvbGxp
bmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2Uobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgZmFsc2UpOworICAgICAgICBub2RlLnNldFNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoZmFsc2UpOworICAgIH0KK30KKwogdm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0Rp
ZENoYW5nZSh1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3QKIHsK
ICAgICBpZiAobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCBlZmM4MmU4NWE3ODVlZDViMjNhMWVkNjgyMzc1YTMwNTEz
MmY4MzBiLi5hNWVjMzgzYzAyYTkxNDkzOTc1YTM0ZmM5YjNjNGIwNDIzZWQ3Y2VjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE3MzIsMTAgKzE3MzIsMjAg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJiBy
ZWdpb24pCiAgICAgcGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0K
IAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNj
cm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNj
cm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0aW9uKQoreworICAgIGlmICh3aXRoQW5p
bWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24o
c2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgZWxzZQorICAgICAgICBwYWdlQ2xp
ZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKK30KKyNl
bHNlCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKIHsKICAgICBwYWdl
Q2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKIH0K
KyNlbmRpZgogCiBXZWJDb3JlOjpGbG9hdFBvaW50IFdlYlBhZ2VQcm94eTo6dmlld1Njcm9sbFBv
c2l0aW9uKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggMTA5NDdmZjBkYmI3YmU5NDQ0YTAyZjFlMzIxM2I4Y2JlMWUxMDk4Ni4uOGUyOTJjYjI2MTFm
ZmVmZjM3M2M3YmQyOTIyMWJmMTg0MWJlZmIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTYxMiw3ICs2MTIsMTEgQEAgcHVibGljOgogICAgIFBhZ2VDbGllbnQm
IHBhZ2VDbGllbnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25z
dCBXZWJDb3JlOjpSZWdpb24mKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQg
cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgYm9vbCB3aXRoQW5pbWF0aW9u
ID0gZmFsc2UpOworI2Vsc2UKICAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3Jv
bGxPcmlnaW4pOworI2VuZGlmCiAgICAgCiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Ny
b2xsUG9zaXRpb24oKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBlYTUzNTI1N2RmY2RjNjAxMDA5Y2NiNTRjYjBiMmJi
ZDgwNDkyZmNjLi4yYTdkMjBjMWYwNTBhNWY0NDY3YzM2M2JjOTUwN2FlOWNkOWEyMzdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAt
NTcsNiArNTcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVBy
b3h5PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KFdlYlByb2Nlc3NQcm94eSYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKSBvdmVy
cmlkZTsKICAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIG92
ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBz
Y3JvbGxPcmlnaW4pIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9s
bFBvc2l0aW9uKCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92
ZXJyaWRlOwogICAgIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggZTEz
OTk2OGQ0ZjBlZTMzMjNkZDI4OWY0NzdkZDhkNjQxZDc3ZWMzYS4uNTM3ZmQ2MDUxZTM1NmRjNTE3
MWYxNzY2OTg3MWRiYTZhZjgyMWU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtOTUsNyArOTUsMTIgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBSZWdpb24mKQogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQogewotICAgIFttX3dlYlZpZXcgX3Njcm9s
bFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3Jv
bGxPcmlnaW5dOworICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9u
OnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6Tk9dOwor
fQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihjb25z
dCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdp
bikKK3sKKyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3Jv
bGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOllFU107CiB9CiAK
IFdlYkNvcmU6OkZsb2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5o
CmluZGV4IDhlNjQ5MzU1NDU4M2FiZjM5NWQ4OTFhY2FhYmYwMTVmMTc2NDQ1OTcuLjNkMzQ1ZDc2
OGUwYmI4N2Y5NTJkM2VjNzM2Mzg2NDlkOGM3NjEwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC03Myw2ICs3MywxMCBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBib29sIHN5bmNMYXllclBvc2l0aW9uKTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRp
Y2VzQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jp
em9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIHZvaWQgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2Vu
ZGlmCisKICAgICBXZWJQYWdlKiBtX3dlYlBhZ2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4K
aW5kZXggMmMwOThhMTA5NzAyMzY3YzM4MzM3MWU4OGU1YTc2MWQ0NWUxOTlhZC4uNTM3ZmQzNGQ2
MWE4MTlmZDYxZmFkMTMwOTQ3NWE2MDdiYjJkOTgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgpA
QCAtMjUsNiArMjUsOSBAQAogbWVzc2FnZXMgLT4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
ewogICAgIFNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCBXZWJD
b3JlOjpGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uLCBib29sIHN5bmNMYXllclBvc2l0aW9uKTsK
ICAgICBDdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJ
RCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2Rl
KHVpbnQ2NF90IG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2Vu
ZGlmCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4IDgzNTQ0
MWQzMTliOTVmNDY2ODc3NTg1Mzg5MDkyYzllZWEyOTM4NjEuLjY4OWQ1NTYyNmY5MjczZjQzYjlk
MjE0YjZhN2RhMjU1NGE3OTI4MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KQEAgLTEwNCw2ICsxMDQsMTMgQEAgdm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9y
Tm9kZShTY3JvbGxpbmcKICAgICBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhub2RlSUQsIGhv
cml6b250YWwsIHZlcnRpY2FsKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lk
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hh
bmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cyhub2RlSUQsIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cit9CisjZW5kaWYKKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYTMwMjBkYTY3NDUyMTczNmI1NjhiMWZhZDNjNTJjZDc5
MzFjYjBhOS4uZDdkYWRiYWE5NzJkZjg4NGUyNmMxMDZhOGZhMTc2Nzg2ODBhYmIyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCkBAIC0xODgsNiArMTg4LDcgQEAKICNkZWZpbmUgV2ViS2l0RGlyZWN0
b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFi
bGVkIgogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZCIKICNkZWZpbmUgV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFJlbW90
ZVBsYXliYWNrRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRSZW1vdGVQbGF5YmFja0VuYWJs
ZWQiCiAjZGVmaW5lIFdlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0U3VidGxlQ3J5cHRvRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDA1ZDAzZTAxMjQ4NzkyY2NlZjU3ZjllNzVk
YWU4MDA0OTJkZjY0ZGIuLjUzM2ExZTIzOTdmMmZkMTlhZDVkNGE5MzA2OTc5NDQ5MWEwZWI5ZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbQpAQCAtNjYzLDYgKzY2Myw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgICAgIEBZRVMs
IFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAorICAgICAg
ICBATk8sIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5
LAogICAgICAgICBAWUVTLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWly
a0tleSwKICAgICAgICAgQE5PLCBXZWJLaXRBbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9B
c2tGb3JDcmVkZW50aWFsc0tleSwKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtMzE4MSw2
ICszMTgyLDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAg
ICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2Vi
S2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCist
ICh2b2lkKXNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6KEJPT0wpZmxhZworewor
ICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiAtIChCT09MKXdlYkFuaW1hdGlv
bnNFbmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0V2Vi
QW5pbWF0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDI5ZDcw
ZWQ5NjIyN2Q4M2NhNWMyNDA1MWZkOThmYTc1ZjE1Y2ViZTguLjQ1MzUyOGUxNGI2ODAyYThkZDdh
MDk3ZWNmNTZjYWY0NWU5MDVjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjMyLDYgKzYzMiw3IEBA
IGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFs
Tm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
bGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgYW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgamF2YVNjcmlwdE1hcmt1cEVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYmRkNmYwZDU4YzA5M2M0YmVjM2RjNzY4ZTU4NGJl
OTIxYTI5Y2MzNi4uYmYzNDRjMjA2ZmMwMzBhZTg2MDA2NmJhMmYxNjg2YWE0M2Y1NDZhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjk5Miw2ICsy
OTkyLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmsoKQog
ICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgdmlz
dWFsVmlld3BvcnRBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRzRW5hYmxlZChbcHJlZmVyZW5jZXMgc3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5h
YmxlZF0pOwogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3By
ZWZlcmVuY2VzIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5z
ZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoW3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0XSk7CiAKICAgICBzd2l0Y2ggKFtwcmVmZXJlbmNlcyBz
dG9yYWdlQmxvY2tpbmdQb2xpY3ldKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAppbmRleCBh
NzE3NjIyMjFiYzE4MjljODRlZmQzOTIwNDVkOTBhOTBmODU5YjEyLi5jY2ZmOWYwNTk3MDIzYTFl
OTA0NzE1NTAyZDhmMjc5MTkxOWFhNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKQEAg
LTIyMyw2ICsyMjMsOCBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTYgOiBJV2Vi
UHJlZmVyZW5jZXNQcml2YXRlNQogICAgIEhSRVNVTFQgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFi
bGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CiAgICAgSFJFU1VMVCBzZXRDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKyAgICBIUkVTVUxUIENTU09N
Vmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CisgICAgSFJF
U1VMVCBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVk
KTsKICAgICBIUkVTVUxUIGZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChbb3V0LCByZXR2YWxdIEJP
T0wqIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgc2V0RmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKFtp
bl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIHNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChb
b3V0LCByZXR2YWxdIEJPT0wgKmVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAwOTkzNzQyMGU0NmVhOTA3ZGFm
MDc3M2JkZjU2ZTY2MDM5ZmM0MGY4Li4wOGM0NTY3MjdjMDMxNzJmMGI4ZjZiZTQzMWFhOTcwYTE2
NDgzMmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaApAQCAtMjA5LDYgKzIwOSw3IEBACiAjZGVmaW5lIFdlYktpdFNlcnZlclRp
bWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRTZXJ2ZXJUaW1pbmdFbmFibGVkIgogCiAj
ZGVmaW5lIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5ICJX
ZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgorI2RlZmluZSBXZWJLaXRDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZCIKIAogI2RlZmluZSBXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJs
ZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWQiCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCA5NWViZWEyNjhjMWQ3NGRm
MDdkYzJlZTgwYWQzZWIxMmIwZjYwYzY0Li5jOGUyMjVhYTQ4NThhODU4Zjk1NWNjNDNmMTQ5NTkz
ZjlhM2U5NmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJl
bmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
CkBAIC0zMzksNiArMzM5LDggQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1
bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIo
V2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxz
ZSk7CiAKKyAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0Q1NT
T01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFs
c2UpOworCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdENv
cmVNYXRoTUxFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKICAgICBD
RkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0UmVxdWVzdElkbGVDYWxs
YmFja0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKQEAgLTIyODMsNiAr
MjI4NSwyMCBAQCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRDb3JlTWF0aE1MRW5hYmxlZChC
T09MIGVuYWJsZWQpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hSRVNVTFQgV2ViUHJlZmVyZW5j
ZXM6OkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkK
K3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAgIHJldHVybiBFX1BPSU5URVI7CisgICAgKmVu
YWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdlYlBy
ZWZlcmVuY2VzOjpzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKEJPT0wgZW5hYmxl
ZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOworfQorCiBIUkVT
VUxUIFdlYlByZWZlcmVuY2VzOjpyZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZChfT3V0XyBCT09M
KiBlbmFibGVkKQogewogICAgIGlmICghZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlcy5oCmluZGV4IDFkYWFhNzMwMjVhZTVjZjgzNGZlM2ZmZWU5MTc5MjM3NDc1
MWJhNTMuLjYwNjZlNDY0M2VhMjFiOTYzODI2MmMzYWJjNmIzNzJkMjZlZGJhZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtMjcxLDYgKzI3MSw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0VmlzdWFsVmll
d3BvcnRBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5h
YmxlZChCT09MKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChfT3V0XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQo
Qk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGZldGNoQVBJS2Vl
cEFsaXZlRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHNldEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKF9PdXRf
IEJPT0wqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggN2VjNGZmMTFhNjky
NGQ2MGZkYTQ4YmM4MjI3NDNmOTNlMTQzY2QyMy4uOGZlNTdmZmY2YzM1MzZhOWJiY2ZkNzY0ZTBj
Y2I3MWIyMzI4MGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTUzMTYs
NiArNTMxNiwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJ
V2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBz
ZXR0aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCEhZW5hYmxlZCk7CiAKKyAg
ICBociA9IHByZWZzUHJpdmF0ZS0+Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCgmZW5h
YmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0
aW5ncy5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCEhZW5hYmxlZCk7CisKICAg
ICBociA9IHByZWZlcmVuY2VzLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCZlbmFibGVkKTsKICAg
ICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMyNmYyNzQzM2I0Y2ZhMzJiODJlNjJh
NzYwMGE0NmYxM2JkZTU4YTYuLjFlNmE4MWFmYzg1ZTg2NjMzY2ZlZmU0Y2RiNmFiMGY0MWNhZDFk
MWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxOS0xMi0wNSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMg
b24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBi
eSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9u
cy5jcHA6CisgICAgICAgIChUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMpOiBQYXJzZSBDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RP
cHRpb25zLmg6IEFkZCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkLCBkaXNhYmxlZCBi
eSBkZWZhdWx0LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bToKKyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOiBTZXQgQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCBmcm9tIHRoZSB0ZXN0IG9wdGlvbnMuCisKIDIwMTkt
MTItMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
SW50cm9kdWNlIGEgR1BVIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApp
bmRleCA1NTZlZWMyNzY2MzdlODFiOTNmNzdkOTY1OTM3NWNmYzJhNDk1OTU5Li45OWJiMmJhMzMy
MmIxYWNhNzgzMTFiYzg4MTk1MGE0NzFmNWY5NGJjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuY3BwCkBAIC0xMjEsNiArMTIxLDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNv
bnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUKICAg
ICAgICAgICAgIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBwYXJzZUJvb2xlYW5UZXN0SGVh
ZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpS
ZXNpemVPYnNlcnZlckVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlUmVzaXplT2JzZXJ2ZXIg
PSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIikKKyAg
ICAgICAgICAgIGVuYWJsZUNTU09NVmlld1Ntb290aFNjcm9sbGluZyA9IHBhcnNlQm9vbGVhblRl
c3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVu
dGFsOkNvcmVNYXRoTUxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZUNvcmVNYXRoTUwgPSBw
YXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkg
PT0gImV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZCIpCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuaAppbmRleCBlNTMzNWU4MzExNGU3OWU1YjU0ZDg2MWMzZDIzZmZjZWJi
YTcwYTBiLi5mN2U4ZDI5MTFkMTMwMzVlNjZjMTk2NWI3NzA2NDI4ZGRmZWE5YWFlIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTUwLDYgKzUwLDcgQEAgc3RydWN0IFRlc3RPcHRp
b25zIHsKICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAgIGJvb2wgYWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVSZXNpemVP
YnNlcnZlciB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmcgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlQ29yZU1hdGhNTCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBlbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJs
ZUFzeW5jQ2xpcGJvYXJkQVBJIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQppbmRleCBjY2ZmZTA1NWQzODM2YjJjMWY3Y2QwZTQ5Y2Q4MDEwOTI1
MDc5N2Y0Li42N2NhZWE3MThkM2ZiODg3OGM5ODUwNjQ3MjIwZmZlY2EyYjZmNDU1IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMDI5LDYgKzEwMjks
NyBAQCBzdGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRl
c3RPcHRpb25zJiBvcHRpb25zKQogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0g
b3B0aW9ucy5lbmFibGVDU1NMb2dpY2FsOwogICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1
dGlvbkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CiAgICAgcHJl
ZmVyZW5jZXMucmVzaXplT2JzZXJ2ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXNpemVPYnNl
cnZlcjsKKyAgICBwcmVmZXJlbmNlcy5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkID0g
b3B0aW9ucy5lbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmc7CiAgICAgcHJlZmVyZW5jZXMu
Y29yZU1hdGhNTEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNvcmVNYXRoTUw7CiAgICAgcHJlZmVy
ZW5jZXMucmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJlcXVlc3RJ
ZGxlQ2FsbGJhY2s7CiAgICAgcHJlZmVyZW5jZXMuYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkID0g
b3B0aW9ucy5lbmFibGVBc3luY0NsaXBib2FyZEFQSTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MGQyYWMxNGIxMjM4MjQz
MzM2NjkzMGY1MzgxNjNkNjBhNTZhMTFkLi44MTE3ZjRkMmViMTc2Y2I5YmNiODczMzhlOTY3MzE3
MzU2ZDc2NTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTktMTItMDUgIENhdGhpZSBDaGVu
ICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3Jv
bGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBs
YXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBC
YXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoZSBzY3Jv
bGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2luZyBuYXRpdmUgc2Nyb2xsIGFuaW1h
dGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQuIEluIG9yZGVyIHRvIHRlc3QgcHJv
cGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9yIHRlc3QgdG8gZmFzdC9zY3JvbGxp
bmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwt
YmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2ZVNjcm9sbGluZyk6CisgICAgICAg
ICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9sbE5vZGUpOgorICAgICAgICAoc2Ny
b2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sOiBDb3Bp
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1h
aW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sOiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXct
bmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmll
dy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwuCisgICAgICAgICog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sLgorICAgICAg
ICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKIDIwMTktMTItMDQgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgaW5z
cGVjdG9yIHRvIHBhdXNlIHByb3Zpc2lvbmFsIHBhZ2UgbG9hZCBhbmQgcmVzdG9yZSBpdHMgc3Rh
dGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDQ1ZmNmY2U1MDQwYmFhOWMwNDNi
MTAwZjQ5YjZjMDQ4Zjc2ZTE1Y2EuLjg4YzExZTNkZTJhYjY5YTk3YWRlZjdlMTAxNmI0NjlmOTcx
Y2Y5ODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDE5LTEyLTA1ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBuYXRpdmUgc2Nyb2xs
IGludGVyZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2Fu
Zy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0
YW5jZS1leHBlY3RlZC50eHQ6CisKIDIwMTktMTItMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGNzcy9jc3MtdmFsdWVzIFdQVApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwt
YmVoYXZpb3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Nj
cm9sbC1iZWhhdmlvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTA5NjhlMDI1YmQ4NjA0YzA3NjUzNTJkM2Ey
ZThiM2NjMTIzM2FhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKQEAgLTAsMCArMSw4NyBAQAorZnVu
Y3Rpb24gb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgY2FsbGJhY2spIHsKKyAgaWYgKCFBcnJh
eS5pc0FycmF5KGVsZW1lbnRzKSkKKyAgICAgIGVsZW1lbnRzID0gW2VsZW1lbnRzXTsKKyAgdmFy
IGxhc3RDaGFuZ2VkRnJhbWUgPSAwOworICB2YXIgbGFzdExlZnQgPSBuZXcgTWFwKCk7CisgIHZh
ciBsYXN0VG9wID0gbmV3IE1hcCgpOworICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7
CisgICAgbGFzdExlZnQuc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsTGVmdCk7CisgICAgbGFz
dFRvcC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOworICB9KTsKKyAgZnVuY3Rpb24g
dGljayhmcmFtZXMpIHsKKyAgICAvLyBXZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgZWl0aGVyIGZv
ciA1MDAgZnJhbWVzIG9yIHVudGlsIDIwIGZyYW1lcyB3aXRoCisgICAgLy8gbm8gY2hhbmdlIGhh
dmUgYmVlbiBvYnNlcnZlZC4KKyAgICBpZiAoZnJhbWVzID49IDUwMCB8fCBmcmFtZXMgLSBsYXN0
Q2hhbmdlZEZyYW1lID4gMjApIHsKKyAgICAgIGNhbGxiYWNrKHRydWUpOworICAgIH0gZWxzZSB7
CisgICAgICB2YXIgc2Nyb2xsSGFwcGVuZWQgPSBlbGVtZW50cy5zb21lKChlbGVtZW50KSA9PiB7
CisgICAgICAgIHJldHVybiBlbGVtZW50LnNjcm9sbExlZnQgIT0gbGFzdExlZnQuZ2V0KGVsZW1l
bnQpIHx8IGVsZW1lbnQuc2Nyb2xsVG9wICE9IGxhc3RUb3AuZ2V0KGVsZW1lbnQpOworICAgICAg
fSk7CisgICAgICBpZiAoc2Nyb2xsSGFwcGVuZWQpIHsKKyAgICAgICAgbGFzdENoYW5nZWRGcmFt
ZSA9IGZyYW1lczsKKyAgICAgICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4geworICAg
ICAgICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbExlZnQpOworICAgICAg
ICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsVG9wKTsKKyAgICAgICAgfSk7
CisgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsKKyAgICAgIH0KKyAgICAgIHJlcXVlc3RBbmltYXRp
b25GcmFtZSh0aWNrLmJpbmQobnVsbCwgZnJhbWVzICsgMSkpOworICAgIH0KKyAgfQorICB0aWNr
KDApOworfQorCitmdW5jdGlvbiB3YWl0Rm9yU2Nyb2xsRW5kKGVsZW1lbnRzKSB7CisgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgIG9ic2VydmVTY3JvbGxpbmcoZWxlbWVu
dHMsIChkb25lKSA9PiB7CisgICAgICBpZiAoZG9uZSkKKyAgICAgICAgcmVzb2x2ZSgpOworICAg
IH0pOworICB9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCkg
eworICAvLyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0aGUgZWxlbWVudCBwb3NpdGlv
biBpcyByZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID0g
MDsKKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOworICBzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImluc3RhbnQifSk7Cit9CisKK2Z1
bmN0aW9uIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdykgeworICAvLyBUcnkg
dmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0aGUgZWxlbWVudCBwb3NpdGlvbiBpcyByZXNldCBp
bW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5zY3JvbGwoe2xlZnQ6IDAsIHRv
cDogMCwgYmVoYXZpb3I6ICJpbnN0YW50In0pOworfQorCitmdW5jdGlvbiBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCBjbGFzc05hbWUpIHsKKyAgc3R5bGVkRWxlbWVudC5jbGFzc0xp
c3QucmVtb3ZlKCJhdXRvQmVoYXZpb3IiLCAic21vb3RoQmVoYXZpb3IiKTsKKyAgc3R5bGVkRWxl
bWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2aW9yLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFyZ3MgPSB7fTsKKyAgaWYgKGJl
aGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsKKyAgc3dpdGNoIChzY3JvbGxG
dW5jdGlvbikgeworICAgIGNhc2UgInNjcm9sbEludG9WaWV3IjoKKyAgICAgIGFyZ3MuaW5saW5l
ID0gInN0YXJ0IjsKKyAgICAgIGFyZ3MuYmxvY2sgPSAic3RhcnQiOworICAgICAgZWxlbWVudFRv
UmV2ZWFsLnNjcm9sbEludG9WaWV3KGFyZ3MpOworICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoK
KyAgICAgIGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7CisgICAgICBhcmdzLnRvcCA9
IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgICAgIHNjcm9sbGluZ0VsZW1lbnRbc2Nyb2xsRnVuY3Rp
b25dKGFyZ3MpOworICAgICAgYnJlYWs7CisgIH0KK30KKworZnVuY3Rpb24gc2Nyb2xsV2luZG93
KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2aW9yLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFyZ3MgPSB7fTsKKyAgaWYgKGJl
aGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsKKyAgYXJncy5sZWZ0ID0gZWxl
bWVudFRvUmV2ZWFsTGVmdDsKKyAgYXJncy50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHNj
cm9sbGluZ1dpbmRvd1tzY3JvbGxGdW5jdGlvbl0oYXJncyk7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNGNhNjQxNTVmNGY5ZGU4
ZjllMTA5M2Q5YjE3MTJmNDE3Y2U2OTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBJbnN0YW50IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50
IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCitQQVNTIFNtb290aCBzY3JvbGxpbmcgb2Yg
YW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3Nz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRl
ZmF1bHQtY3NzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzVjNjUwM2FiMjY1MDM1ZDAwOGM2MDA2Njg1ZDZj
YzEzNzE4MWQ4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMCwwICsxLDUyIEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dT
Y3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIGRlZmF1bHQgdmFsdWUg
b2Ygc2Nyb2xsLWJlaGF2aW9yPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9
ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVm
PSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12
aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Nj
cm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAg
ICBvdmVyZmxvdzogYXV0bzsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsK
KyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92ZXJmbG93
Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBo
ZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBn
cmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDog
NTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1JldmVhbCIg
c3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0
aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4KKyAgPC9k
aXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBzY3JvbGxpbmdFbGVtZW50ID0gb3ZlcmZsb3dO
b2RlOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1Jl
dmVhbFRvcCA9IDI1MDsKKyAgdmFyIHNjcm9sbEZ1bmN0aW9uID0gInNjcm9sbCI7CisKKyAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgp
OyB9KTsKKyAgfSwgIkluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0
IHNjcm9sbC1iZWhhdmlvciIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRT
Y3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgIHJl
dHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIlNtb290aCBzY3JvbGxpbmcg
b2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzYTk2MWVm
NTZhOTE4NTdjNmQyY2FiYjkwODQ4YzViMmQ5ZjA2NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKKworUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVu
dCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVt
ZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVs
ZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNtb290
aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBv
biBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDM4ZGZmZGVjZTU5YjM3NTBlOTZmMWEyODYyYzVlOTQ5N2E0MjM4
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFi
bGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZv
ciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50PC90aXRs
ZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3
aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuYXV0b0JlaGF2aW9yIHsK
KyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAg
ICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+
Cis8L2Rpdj4KKzxkaXYgaWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8
ZGl2IHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGlu
ZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlz
cGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+
PHNwYW4gaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsg
dmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3Jv
dW5kOiBibGFjazsiPjwvc3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBz
Y3JvbGxpbmdFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgc3R5bGVkRWxlbWVudCA9IG92
ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVt
ZW50VG9SZXZlYWxUb3AgPSAyNTA7CisKKyAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xs
QnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3Ii
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0Jl
aGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2
aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rp
b24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1l
bnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9
KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8i
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0
X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3Nl
cnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVy
biB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwg
YEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBv
ZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgfSk7CisgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgIH0pOworCisg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7
CisgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVu
dFRvUmV2ZWFsVG9wIC8gMik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5n
RWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7
CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24g
YW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNj
cm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcg
c21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmci
KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3Y2FlYTI3YmI1M2YxYTk0NGRjYTJkNjgxN2EzZWZiODVm
Y2E3NzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
NyBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Ny
b2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAor
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJh
bWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMyNWI0YjllMjRlZjdkYjdiYTY5ODA0YmUyYjU3Zjcz
OGEzNjlkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNjkgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAg
IG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6
IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBh
Z2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4K
KyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0g
YXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxl
ZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1
bmN0aW9uKCkgeworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAg
cGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiA1ICsg
InB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cuaW5uZXJI
ZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsgd2luZG93
LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQgPSBlbGVt
ZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUudG9wID0g
ZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNr
KCgpID0+IHsgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7IH0pOworCisgICAgWyJzY3Jv
bGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChz
Y3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29s
dmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAg
ICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNj
cm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwg
InNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0p
OworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBh
biBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJp
bnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21v
b3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5n
Iik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODIzODVhYWI0OTM1MTRiZGU3YmI1
OTVhNzlhNzQxNDAyNjQwNDM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyOSBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFu
IG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIg
c21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDU3YjBjZDEy
MTkxMDJhZWRhMDA4NDU5MTU1NjliYjdlMGFkMGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRv
dy5odG1sCkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRy
dWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0
aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCog
b24gdGhlIHdpbmRvdyBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1l
b3V0IiBjb250ZW50PSJsb25nIi8+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoLG1pbmltdW0tc2NhbGU9MSxpbml0aWFsLXNjYWxlPTEiPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0Bp
Z2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cu
b3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1i
b3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpz
Ij48L3NjcmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5h
dXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3Ro
QmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgor
PGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9S
ZXZlYWwiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsg
d2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwv
ZGl2PgorPHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRl
ZCIpOworICB2YXIgc2Nyb2xsaW5nV2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgcGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICBzY3JvbGxp
bmdXaW5kb3cgPSB3aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRvdy5pbm5l
cldpZHRoKSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9ICgyMCAr
IHdpbmRvdy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWxMZWZ0
ID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZlYWxUb3Ag
PSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5
bGUubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVh
bC5zdHlsZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRkX2NvbXBs
ZXRpb25fY2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbEZvcldpbmRvdyh3aW5kb3cpOyB9KTsK
KworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgoc2Nyb2xs
RnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0
U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsK
KyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9s
bEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAg
ICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlv
cmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZv
cldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
c2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAg
ICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1
bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOwor
ICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAg
c2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOwor
ICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsK
KyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAg
ICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2Fp
dEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCku
dGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7Cisg
ICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9s
bEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAg
ICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8i
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3Nl
cnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3Nl
cnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0
Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0p
OworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93
KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAg
ICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0
YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJl
c2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJl
aGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3Jv
bGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVs
ZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAi
c2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZl
YWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRv
dy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5n
IHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBz
Y3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9s
bEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNj
cm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJpbnN0YW50
IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cu
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFu
IG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3Rh
bnQgc2Nyb2xsaW5nIik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0
M2E4MjBlNTg1OTZkNTZlM2ZlODkyMTE5YmUwM2RjNDhkMGI5NWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGlu
dG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mgc2Nyb2xs
SW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJlaGF2
aW9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NWI1ZDhkN2M3ODQ0NWEwZDJjMDcyZmExN2Q3ZmM4YzE5NmNlNTRjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIHdpdGggc2Nyb2xsSW50b1ZpZXcgZm9yIG5lc3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxl
PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIGhl
aWdodDogMjAwcHg7CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZp
b3I6IHNtb290aDsKKyAgfQorICAuZ3JhZGllbnQgeworICAgIGJhY2tncm91bmQ6IGxpbmVhci1n
cmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9n
Ij4KKzwvZGl2PgorPGRpdj4KKyAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9vdGhCZWhhdmlv
ciIgc3R5bGU9IndpZHRoOiA0NTBweCI+CisgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxl
PSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJz
Y3JvbGxhYmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KKyAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDM1MHB4
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhl
aWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5
bGU9IndpZHRoOiAzMDBweCI+CisgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxl
PSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNs
YXNzPSJzY3JvbGxhYmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDI1MHB4Ij4KKyAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBz
dHlsZT0id2lkdGg6IDIwMHB4Ij4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQi
IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAg
ICAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDog
MTBweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4K
KyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0
eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8L2Rp
dj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsg
aGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9
ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+Cisg
ICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+
Cis8c2NyaXB0PgorICAvLyBUaGUgQ1NTT00tVmlldyBzcGVjIGFuZCBpbXBsZW1lbnRhdGlvbnMg
Zm9sbG93IGRpZmZlcmVudCBhbGdvcml0aG1zIChzY3JvbGxzIHBlcmZvcm1lZCBpbiBwYXJhbGxl
bCwgYXMgaW5uZXItdG8tb3V0ZXIgc2VxdWVuY2Ugb3IgYXMgb3V0ZXItdG8taW5uZXIgc2VxdWVu
Y2UpLgorICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVz
LzMxMjcKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICB2YXIgZGl2cyA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIi5zY3JvbGxhYmxlIik7CisgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFi
bGVEaXYpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsYWJsZURpdik7CisgICAgICB9
KTsKKyAgICAgIGVsZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyh7aW5saW5lOiAic3RhcnQi
LCBibG9jazogInN0YXJ0IiwgYmVoYXZpb3I6ICJhdXRvIn0pOworICAgICAgdmFyIHNjcm9sbFRv
cCA9IG5ldyBNYXAoKTsKKyAgICAgIHZhciBpc1Ntb290aCA9IG5ldyBNYXAoKTsKKyAgICAgIGRp
dnMuZm9yRWFjaCgoc2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICBzY3JvbGxUb3Auc2V0KHNj
cm9sbGFibGVEaXYsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgaXNTbW9vdGgu
c2V0KHNjcm9sbGFibGVEaXYsIHNjcm9sbGFibGVEaXYuY2xhc3NMaXN0LmNvbnRhaW5zKCJzbW9v
dGhCZWhhdmlvciIpKTsKKyAgICAgICAgLy8gSWYgc2Nyb2xsIG9wZXJhdGlvbnMgYXJlIG5vdCBw
ZXJmb3JtZWQgaW4gcGFyYWxsZWwsIHNjcm9sbCBib3hlcyB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
bWlnaHQgYWxzbyBuZWVkIHRvIHdhaXQgZm9yIHRoZWlyIHByZWRlY2Vzc29ycy4KKyAgICAgICAg
aWYgKGlzU21vb3RoLmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbFRvcC5nZXQoc2Nyb2xsYWJsZURpdiksIDUwMCwgIkVsZW1lbnQgd2l0aCBzbW9v
dGggYmVoYXZpb3Igc2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkiKTsKKyAgICAgIH0pOwor
CisgICAgICBvYnNlcnZlU2Nyb2xsaW5nKEFycmF5LmZyb20oZGl2cyksIGZ1bmN0aW9uKGRvbmUp
IHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYp
ID0+IHsKKyAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoc2Nyb2xsVG9wLmdldChz
Y3JvbGxhYmxlRGl2KSwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsICJTY3JvbGxUb3Aga2VlcHMg
aW5jcmVhc2luZyIpOworICAgICAgICAgICAgaWYgKCFpc1Ntb290aC5nZXQoc2Nyb2xsYWJsZURp
dikpCisgICAgICAgICAgICAgIGFzc2VydF9hbnkoYXNzZXJ0X2VxdWFscywgc2Nyb2xsYWJsZURp
di5zY3JvbGxUb3AsIFswLCA1MDBdLCAiRWxlbWVudCB3aXRoIGluc3RhbnQgYmVoYXZpb3Igc2hv
dWxkIGp1bXAgdG8gdGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBpZiAoZG9uZSkK
KyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgNTAw
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgICAgICBzY3JvbGxUb3Auc2V0
KHNjcm9sbGFibGVEaXYsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgICB9KTsK
KyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9Cisg
ICAgICAgIGlmIChkb25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0p
OworICB9LCAic2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJl
bnQgc2Nyb2xsLWJlaGF2aW9yIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1NWE2YTYxMGYzNzMx
YWM3ZWRmZGIwZTJkZGEzOGIwNThlYzkxZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKworUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4g
cGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNp
bmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkg
IAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9s
bCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwg
NTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9u
cyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9y
bWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcg
c2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290
aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkg
IAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgw
LCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRp
b25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1
MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBw
ZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVz
aW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBz
bW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3Jv
bGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNj
cm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkg
IAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBT
Y3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEw
MDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3Ro
ZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5n
IGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290
aC1wb3NpdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhNDFiOGIwOGRhZjIx
M2E5ZjlhODVmZjBhNDBkZjVjZGExNGU2YTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRt
bApAQCAtMCwwICsxLDE1MSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBp
bnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+
VGVzdGluZyBzY3JvbGwgcG9zaXRpb25zIHdoZW4gc2Nyb2xsaW5nIGFuIGVsZW1lbnQgd2l0aCBz
bW9vdGggYmVoYXZpb3I8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9u
ZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1h
aWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
cmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcv
I3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92
ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAg
IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4K
KzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxk
aXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5l
YXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48
c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2
ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgLy8gRm9y
IHNtb290aCBiZWhhdmlvciwgZXZvbHV0aW9uIG9mIHNjcm9sbCBwb3NpdGlvbnMgb3ZlciB0aW1l
IGlzIG5vdCBzcGVjaWZpZWQgYnkgQ1NTT00gVmlldy4KKyAgLy8gVGhpcyB0ZXN0IHJlbGllcyBv
biB0aGUgbWluaW1hbCBhc3N1bXB0aW9uIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGZ1bmN0aW9ucyBh
cmUgbW9ub3RvbmljLgorICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3Jv
bGxJbnRvVmlldyJdLmZvckVhY2goZnVuY3Rpb24oc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBbe2xl
ZnQ6MCwgdG9wOjB9LCB7bGVmdDoxMDAwLCB0b3A6MH0sIHtsZWZ0OjAsIHRvcDo1MDB9LCB7bGVm
dDoxMDAwLCB0b3A6NTAwfV0uZm9yRWFjaCgoaW5pdGlhbCkgPT4geworICAgICAgdmFyIGZpbmFs
TGVmdCA9IDUwMDsKKyAgICAgIHZhciBmaW5hbFRvcCA9IDI1MDsKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJp
bnN0YW50IiwgaW5pdGlhbC5sZWZ0LCBpbml0aWFsLnRvcCk7CisgICAgICAgICAgdmFyIG9sZExl
ZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgb2xkVG9wID0gb3Zl
cmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIGlu
aXRpYWwubGVmdCwgIlNjcm9sbExlZnQgc2hvdWxkIGJlIGF0IGluaXRpYWwgcG9zaXRpb24iKTsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgaW5pdGlhbC50b3AsICJTY3JvbGxUb3Ag
c2hvdWxkIGJlIGF0IGluaXRpYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBpZiAoc2Nyb2xsRnVu
Y3Rpb24gPT09ICJzY3JvbGxCeSIpCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9k
ZSwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBmaW5hbExlZnQgLSBpbml0aWFsLmxlZnQsIGZp
bmFsVG9wIC0gaW5pdGlhbC50b3ApOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcm9s
bE5vZGUob3ZlcmZsb3dOb2RlLCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCwg
ZmluYWxUb3ApOworICAgICAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5j
dGlvbihkb25lKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICB2YXIgbmV3TGVm
dCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICB2YXIgbmV3VG9wID0g
b3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9l
cXVhbChNYXRoLmh5cG90KGZpbmFsTGVmdCAtIG5ld0xlZnQsIGZpbmFsVG9wIC0gbmV3VG9wKSwg
TWF0aC5oeXBvdChmaW5hbExlZnQgLSBvbGRMZWZ0LCBmaW5hbFRvcCAtIG9sZFRvcCksICJTY3Jv
bGwgcG9zaXRpb24gc2hvdWxkIG1vdmUgdG93YXJkcyB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAg
ICAgICAgICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5l
d0xlZnQsIGZpbmFsTGVmdCwgIlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9u
Iik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIGZpbmFsVG9wLCAiU2Ny
b2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgIG9sZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgICAgICBvbGRUb3AgPSBu
ZXdUb3A7CisgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgcmVqZWN0KGUp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgke2luaXRpYWwu
bGVmdH0sICR7aW5pdGlhbC50b3B9KSB0byAoJHtmaW5hbExlZnR9LCAke2ZpbmFsVG9wfSkgdXNp
bmcgJHtzY3JvbGxGdW5jdGlvbn0oKSBgKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgICByZXNldFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRp
YWxTY3JvbGxBYm9ydGVkID0gZmFsc2U7CisgICAgICB2YXIgc2Nyb2xsRGlyZWN0aW9uQ2hhbmdl
ZCA9IGZhbHNlOworICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsK
KyAgICAgIHZhciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0
X2VxdWFscyhvbGRMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAg
ICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1
MCk7CisgICAgICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkg
eworICAgICAgICB0cnkgeworICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNj
cm9sbExlZnQ7CisgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7
CisgICAgICAgICAgaWYgKGluaXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAgICAgICAgICBpZiAo
c2Nyb2xsRGlyZWN0aW9uQ2hhbmdlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90
aGFuX2VxdWFsKG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGRlY3JlYXNpbmci
KTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1Rv
cCwgIlNjcm9sbFRvcCBrZWVwcyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgc2Nyb2xsRGlyZWN0aW9uQ2hhbmdlZCA9IG5ld0xlZnQgPD0gb2xkTGVmdCAm
JiBuZXdUb3AgPD0gb2xkVG9wOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGFz
c2VydF9sZXNzX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMg
aW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9sZFRv
cCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAg
aWYgKG5ld0xlZnQgPiAxMDAwICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAgICAgICAgICAgIC8v
IEFib3J0IHRoZSBpbml0aWFsIHNjcm9sbC4KKyAgICAgICAgICAgICAgICBpbml0aWFsU2Nyb2xs
QWJvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUs
ICJzY3JvbGwiLCAic21vb3RoIiwgNTAwLCAyNTApOworICAgICAgICAgICAgICAgIG5ld0xlZnQg
PSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAgICBuZXdUb3AgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAg
ICAgIGlmIChkb25lKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwg
IlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBw
b3NpdGlvbiIpOworICAgICAgICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAg
ICAgICAgICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAg
IHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBh
Ym9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmci
KTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7
CisgICAgICB2YXIgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBvbGRM
ZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZs
b3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7CisgICAg
ICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9k
ZSwgInNjcm9sbCIsICJzbW9vdGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNjcm9sbGlu
ZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBu
ZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmICghaW5pdGlhbFNj
cm9sbEFib3J0ZWQpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRM
ZWZ0LCBuZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAg
ICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2Vl
cHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3
VG9wID4gNTAwKSB7CisgICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xs
LgorICAgICAgICAgICAgICAgIGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgNTAw
LCAyNTApOworICAgICAgICAgICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVm
dDsKKyAgICAgICAgICAgICAgICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91
bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KG5ld1RvcCwgMjUwLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOwor
ICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHN0
YXkgYXQgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9w
LCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRpb24iKTsKKyAgICAg
ICAgICB9CisgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0g
bmV3VG9wOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7
CisgICAgfSk7CisgIH0sICJTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGgg
c2Nyb2xsaW5nIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJm
cmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc5
OWZkY2MyOWVkNTYzMzdhODkxMjFiMDU5MGEwOWI3YmVmNWMwNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUt
cm9vdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNyBAQAorCitQQVNTIGlmcmFtZSBsb2FkZWQg
CitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290
aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBT
dWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhl
ciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXJvb3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2ZDExYWI5NjIxNjM0Nzg0Mjlm
NmY4YThhN2E0YzIyMmIyZWYxNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMCww
ICsxLDE3MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBl
cmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpB
c3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3Jv
bGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJl
aGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9v
dCBvZiBhIHN1YmZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxv
bmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJt
YWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3
LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9s
bC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1l
IGlkPSJpZnJhbWVOb2RlIiB3aWR0aD0iNDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFE
T0NUWVBFPgorPGh0bWw+CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsK
KyAgICB9CisgICAgLmF1dG9CZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87
CisgICAgfQorICAgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRo
OiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1
ZGVnLCByZWQsIGdyZWVuKTsnPgorICAgICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1i
bG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVt
ZW50VG9SZXZlYWwnIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWdu
OiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48
L3NwYW4+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2Ny
aXB0PgorICB2YXIgaWZyYW1lTG9hZFRlc3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7
CisgIHZhciBzY3JvbGxpbmdFbGVtZW50LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7
CisgIHZhciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFs
VG9wID0gMjUwOworICBpZnJhbWVOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVM
b2FkVGVzdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGlm
cmFtZU5vZGUuY29udGVudERvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxl
bWVudCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBl
bGVtZW50VG9SZXZlYWwgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZWxlbWVudFRvUmV2ZWFsIik7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3Jv
bGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7Cisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0
aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJl
aGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShz
Y3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVo
YXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlv
biwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9s
bEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVu
dCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
ICAgIH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImlu
c3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJz
bW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7
CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsK
KyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJh
bWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9s
bEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5n
IGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFu
dCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVlYjMyNzJmNDA4ZTVl
NjRkMWJiN2VjMmEwN2UwYmZjYzkwNDc0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisKK1BBU1MgaWZyYW1lIGxvYWRlZCAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9y
dGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBh
bm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3Ro
IHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzMzZDY0
Zjg1MDcxNjcwYmQ0N2JjZTg2YjA2NTU5NjgyNTA0OTM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5k
b3cuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10
cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFs
OkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNj
cm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhh
dmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJp
YyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9s
bC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPgor
PC9kaXY+Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2RlIiB3aWR0aD0iNDAwcHgiIGhlaWdodD0iMjAw
cHgiIHNyY2RvYz0iPCFET0NUWVBFPgorPGh0bWw+CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAg
ICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgLmF1dG9CZWhhdmlvciB7CisgICAgICBzY3JvbGwt
YmVoYXZpb3I6IGF1dG87CisgICAgfQorICAgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgICBzY3Jv
bGwtYmVoYXZpb3I6IHNtb290aDsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxib2R5PgorICAgIDxk
aXYgc3R5bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5l
YXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsnPgorICAgICAgPHNwYW4gc3R5bGU9J2Rp
c3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4Oyc+PC9zcGFu
PjxzcGFuIGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dy
b3VuZDogYmxhY2s7Jz48L3NwYW4+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4iPgor
PC9pZnJhbWU+Cis8c2NyaXB0PgorICB2YXIgaWZyYW1lTG9hZFRlc3QgPSBhc3luY190ZXN0KCJp
ZnJhbWUgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdXaW5kb3csIHN0eWxlZEVsZW1lbnQsIGVs
ZW1lbnRUb1JldmVhbDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBl
bGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlmcmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxp
bmdXaW5kb3cgPSBpZnJhbWVOb2RlLmNvbnRlbnRXaW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9
IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50
VG9SZXZlYWwgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxl
bWVudFRvUmV2ZWFsIik7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJd
LmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhz
Y3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJl
c29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Ny
b2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwg
ImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0
aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNj
cm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBv
ZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7
CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVu
dC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93
KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9s
bEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2Fp
dEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCku
dGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7Cisg
ICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAg
c2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNj
cm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8g
MiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3Ag
LyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3Jv
bGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJz
Y3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7Cisg
IH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJh
bWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworCisgIH0pKTsKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVj
dGVkLnR4dAppbmRleCAzYWMwYTM3Y2ZmYmQ1YTE1NWNjZWJjNTI3MjhhZTZmMjEzMGI5NDE0Li44
NzVhNzI3Yzk1ODg3MDQ0NjM2MTZlYTYwMzVlNTU3MGUwOWJkMDQyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2lu
aGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDQgQEAKIAotRkFJTCBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRp
YWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogc2Nyb2xsLWJlaGF2aW9yIGRvZXNuJ3Qgc2VlbSB0
byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBkb2VzIG5vdCBpbmhlcml0IGFzc2Vy
dF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVo
YXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byAKK1BBU1MgUHJvcGVydHkgc2Nyb2xsLWJlaGF2
aW9yIGRvZXMgbm90IGluaGVyaXQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNmE5Y2NmMTdjNjA4YzRmNWQ3YzdhMDY2ODNlYzI5NGJjYmRmZmM5MS4u
Nzc5OGQxMTM5YmQ4OGMwYjg1NjUwNjYyNWZjMjljMjEwMDBmNWM1YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0NjQsNCArMzQ2NCwxNSBAQCB3ZWJr
aXQub3JnL2IvMjAzMzU2IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdHJhbnNpdGlvbgogd2Via2l0Lm9yZy9iLzIwMzQxNiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvYmVmb3JlLWxvYWQtMDAxLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIwMzQxNiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcHJvcGVydGllcy12YWx1ZS1hdXRvLTAw
MS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIwNDc1NyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uL2ZldGNo
LWRlc3RpbmF0aW9uLW5vLWxvYWQtZXZlbnQuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0Lm9yZy9iLzIwNDc1NyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uL2ZldGNo
LWRlc3RpbmF0aW9uLW5vLWxvYWQtZXZlbnQuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisK
KyMgV2UgbmVlZCBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQgdG8gdHVybiBvbiBzY3Jv
bGwgYmVoYXZpb3Igc3VwcG9ydGVkIGJ5IG5hdGl2ZSBzY3JvbGwuCisjIFRoZSBleHBlcmltZW50
YWwgZmxhZ3MgYXJlIHR1cm4gb24gYnkgZGVmYXVsdCwgYnV0IGludGVybmFsOkFzeW5jT3ZlcmZs
b3dTY3JvbGxpbmdFbmFibGVkIGlzIG5vdC4KKyMgU28gd2UgY2FuIHNraXAgdGhlIHNjcm9sbCBi
ZWhhdmlvciB0ZXN0IGluIHdwdCwgYW5kIGNvcHkgdGhlbSB0byBmYXN0L3Njcm9sbGluZy9pb3Mg
d2l0aCBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlLgord2Via2l0
Lm9yZy9iLzE4ODA0MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3Jn
L2IvMTg4MDQzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcv
c2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE4ODA0
MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE4ODA0
MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTg4
MDQzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3Jn
L2IvMTg4MDQzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcv
c2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzE4ODA0MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zbW9vdGguaHRtbCBbIFNraXAgXQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385155</attachid>
            <date>2019-12-09 08:51:55 -0800</date>
            <delta_ts>2019-12-11 00:45:55 -0800</delta_ts>
            <desc>UI-scroll-animation-for-review</desc>
            <filename>scroll-behavior-part3-for-review.diff</filename>
            <type>text/plain</type>
            <size>194016</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MGQyYWMxNGIxLi44MTE3ZjRkMmViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIw
MTktMTItMDUgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2lu
ZyBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQu
IEluIG9yZGVyIHRvIHRlc3QgcHJvcGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9y
IHRlc3QgdG8gZmFzdC9zY3JvbGxpbmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2
ZVNjcm9sbGluZyk6CisgICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9s
bE5vZGUpOgorICAgICAgICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0
bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKIDIwMTktMTIt
MDQgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogYWxsb3cgaW5zcGVjdG9yIHRvIHBhdXNlIHByb3Zpc2lvbmFsIHBhZ2UgbG9h
ZCBhbmQgcmVzdG9yZSBpdHMgc3RhdGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMGEwOTY4ZTAyNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9y
LmpzCkBAIC0wLDAgKzEsODcgQEAKK2Z1bmN0aW9uIG9ic2VydmVTY3JvbGxpbmcoZWxlbWVudHMs
IGNhbGxiYWNrKSB7CisgIGlmICghQXJyYXkuaXNBcnJheShlbGVtZW50cykpCisgICAgICBlbGVt
ZW50cyA9IFtlbGVtZW50c107CisgIHZhciBsYXN0Q2hhbmdlZEZyYW1lID0gMDsKKyAgdmFyIGxh
c3RMZWZ0ID0gbmV3IE1hcCgpOworICB2YXIgbGFzdFRvcCA9IG5ldyBNYXAoKTsKKyAgZWxlbWVu
dHMuZm9yRWFjaCgoZWxlbWVudCkgPT4geworICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVt
ZW50LnNjcm9sbExlZnQpOworICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xs
VG9wKTsKKyAgfSk7CisgIGZ1bmN0aW9uIHRpY2soZnJhbWVzKSB7CisgICAgLy8gV2UgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lIGVpdGhlciBmb3IgNTAwIGZyYW1lcyBvciB1bnRpbCAyMCBmcmFtZXMg
d2l0aAorICAgIC8vIG5vIGNoYW5nZSBoYXZlIGJlZW4gb2JzZXJ2ZWQuCisgICAgaWYgKGZyYW1l
cyA+PSA1MDAgfHwgZnJhbWVzIC0gbGFzdENoYW5nZWRGcmFtZSA+IDIwKSB7CisgICAgICBjYWxs
YmFjayh0cnVlKTsKKyAgICB9IGVsc2UgeworICAgICAgdmFyIHNjcm9sbEhhcHBlbmVkID0gZWxl
bWVudHMuc29tZSgoZWxlbWVudCkgPT4geworICAgICAgICByZXR1cm4gZWxlbWVudC5zY3JvbGxM
ZWZ0ICE9IGxhc3RMZWZ0LmdldChlbGVtZW50KSB8fCBlbGVtZW50LnNjcm9sbFRvcCAhPSBsYXN0
VG9wLmdldChlbGVtZW50KTsKKyAgICAgIH0pOworICAgICAgaWYgKHNjcm9sbEhhcHBlbmVkKSB7
CisgICAgICAgIGxhc3RDaGFuZ2VkRnJhbWUgPSBmcmFtZXM7CisgICAgICAgIGVsZW1lbnRzLmZv
ckVhY2goKGVsZW1lbnQpID0+IHsKKyAgICAgICAgICBsYXN0TGVmdC5zZXQoZWxlbWVudCwgZWxl
bWVudC5zY3JvbGxMZWZ0KTsKKyAgICAgICAgICBsYXN0VG9wLnNldChlbGVtZW50LCBlbGVtZW50
LnNjcm9sbFRvcCk7CisgICAgICAgIH0pOworICAgICAgICBjYWxsYmFjayhmYWxzZSk7CisgICAg
ICB9CisgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljay5iaW5kKG51bGwsIGZyYW1lcyAr
IDEpKTsKKyAgICB9CisgIH0KKyAgdGljaygwKTsKK30KKworZnVuY3Rpb24gd2FpdEZvclNjcm9s
bEVuZChlbGVtZW50cykgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAg
ICBvYnNlcnZlU2Nyb2xsaW5nKGVsZW1lbnRzLCAoZG9uZSkgPT4geworICAgICAgaWYgKGRvbmUp
CisgICAgICAgIHJlc29sdmUoKTsKKyAgICB9KTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBl
bnN1cmUgdGhlIGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
ID0gMDsKKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwgYmVoYXZp
b3I6ICJpbnN0YW50In0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbEZvcldpbmRvdyhzY3Jv
bGxpbmdXaW5kb3cpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhlIGVs
ZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ1dpbmRvdy5k
b2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdXaW5k
b3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOworICBzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30K
KworZnVuY3Rpb24gc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgY2xhc3NOYW1lKSB7
CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYXV0b0JlaGF2aW9yIiwgInNtb290
aEJlaGF2aW9yIik7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpOwor
fQorCitmdW5jdGlvbiBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9u
LCBiZWhhdmlvciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7Cisg
IHZhciBhcmdzID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVo
YXZpb3I7CisgIHN3aXRjaCAoc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBjYXNlICJzY3JvbGxJbnRv
VmlldyI6CisgICAgICBhcmdzLmlubGluZSA9ICJzdGFydCI7CisgICAgICBhcmdzLmJsb2NrID0g
InN0YXJ0IjsKKyAgICAgIGVsZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyhhcmdzKTsKKyAg
ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZl
YWxMZWZ0OworICAgICAgYXJncy50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3A7CisgICAgICBzY3Jv
bGxpbmdFbGVtZW50W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKKyAgICAgIGJyZWFrOworICB9Cit9
CisKK2Z1bmN0aW9uIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9u
LCBiZWhhdmlvciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7Cisg
IHZhciBhcmdzID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVo
YXZpb3I7CisgIGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7CisgIGFyZ3MudG9wID0g
ZWxlbWVudFRvUmV2ZWFsVG9wOworICBzY3JvbGxpbmdXaW5kb3dbc2Nyb2xsRnVuY3Rpb25dKGFy
Z3MpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44ZDRjYTY0MTU1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1k
ZWZhdWx0LWNzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgSW5zdGFudCBz
Y3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAorUEFT
UyBTbW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhh
dmlvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAuLjM1YzY1MDNhYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwK
QEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRl
cm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVz
dGluZyBkZWZhdWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRl
Zi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
ICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4Owor
ICAgIGhlaWdodDogMjAwcHg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+
Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAgPGRpdiBzdHls
ZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFk
aWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlu
bGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlk
PSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2Fs
LWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxh
Y2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgc2Nyb2xsaW5n
RWxlbWVudCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7
CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIHZhciBzY3JvbGxGdW5jdGlvbiA9
ICJzY3JvbGwiOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgIH0sICJJbnN0YW50IHNjcm9sbGluZyBvZiBhbiBl
bGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsKKworICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIp
OworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0s
ICJTbW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhh
dmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41M2E5NjFlZjU2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACisKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVs
ZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVu
dCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9W
aWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdp
dGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNt
b290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3ItZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAuLmQzOGRmZmRlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDE2MyBAQAor
PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NT
T01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93
U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25z
JyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4g
ZWxlbWVudDwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3
YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xs
aW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZp
b3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6
IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgIH0KKyAgLmF1
dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhC
ZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8
ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3Jv
bGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJh
Y2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNw
YW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1
MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBp
bmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDog
MTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2Ny
aXB0PgorICB2YXIgc2Nyb2xsaW5nRWxlbWVudCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIHN0eWxl
ZEVsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAw
OworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworCisgIFsic2Nyb2xsIiwgInNjcm9s
bFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rp
b24pID0+IHsKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rp
b24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Ny
b2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9s
bEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsK
KyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOwor
ICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChz
Y3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIp
OworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhh
dmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNj
cm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwg
InNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwg
YEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0Vs
ZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVs
ZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7
IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3Vs
ZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBv
ZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmAp
OworICB9KTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsK
KworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGlu
ZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3Rh
bnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwLi45N2NhZWEyN2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMzcgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcg
c21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNj
cm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRo
ZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1y
b290Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtcm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAuLmQzMjViNGI5ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEs
MTY5IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5j
T3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9s
bE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlv
ciBvbiB0aGUgcm9vdCBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1l
b3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6ly
aWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3Jv
bGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5
IHsKKyAgICBtYXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJl
aGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2
aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2
IGlkPSJwYWdlQ29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9w
OiAwOyI+CisgIDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxv
YWRlZCA9IGFzeW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50
LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3A7
CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcGFnZUxvYWRlZC5zdGVwX2Z1bmNf
ZG9uZShmdW5jdGlvbigpIHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gZG9jdW1lbnQuc2Nyb2xs
aW5nRWxlbWVudDsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
OworICAgIHBhZ2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgp
ICogNSArICJweCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93
LmlubmVySGVpZ2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAg
KyB3aW5kb3cuaW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCAr
IHdpbmRvdy5pbm5lckhlaWdodCkgKiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0
ID0gZWxlbWVudFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxl
LnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9j
YWxsYmFjaygoKSA9PiB7IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOyB9KTsKKworICAg
IFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9y
RWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
cmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNj
cm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVt
ZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rp
b24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOwor
ICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3Jv
bGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsK
KyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwi
LCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1
cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3Ag
LyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uMzgyMzg1YWFiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGlu
ZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMC4uOTA1N2IwY2QxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5k
b3cuaHRtbApAQCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10
cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IG9uIHRoZSB3aW5kb3cgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGlt
ZW91dCIgY29udGVudD0ibG9uZyIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCxtaW5pbXVtLXNjYWxlPTEsaW5pdGlhbC1zY2FsZT0xIj4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdA
aWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmct
Ym94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIG1hcmdpbjogMDsKKyAgfQorICAu
YXV0b0JlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290
aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4K
KzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBhZ2VDb250ZW50IiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4KKyAgPGRpdiBpZD0iZWxlbWVudFRv
UmV2ZWFsIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+Cis8
L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0gYXN5bmNfdGVzdCgiUGFnZSBsb2Fk
ZWQiKTsKKyAgdmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIHBhZ2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xs
aW5nV2luZG93ID0gd2luZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQ7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5u
ZXJXaWR0aCkgKiA1ICsgInB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAg
KyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVm
dCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9w
ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0
eWxlLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZl
YWwuc3R5bGUudG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21w
bGV0aW9uX2NhbGxiYWNrKCgpID0+IHsgcmVzZXRTY3JvbGxGb3JXaW5kb3cod2luZG93KTsgfSk7
CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9s
bEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNl
dFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGlu
Z1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7
CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3Jv
bGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93
KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAg
ICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZp
b3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxG
b3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3cs
IHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7Cisg
ICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsK
KyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAg
IHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0
X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1l
bnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsK
KyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9s
bEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAg
ICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOwor
ICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3Jv
bGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93
KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAg
ICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRv
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVy
biB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRv
dyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhh
dmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7Cisg
ICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5z
dGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hv
dWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5z
dGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChz
Y3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNj
cm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2
ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5k
b3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAy
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2lu
ZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGgg
c2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJz
Y3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFu
dCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93
LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBh
biBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0
YW50IHNjcm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40NDNhODIwZTU4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRv
dmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHNjcm9sbElu
dG9WaWV3IHdpdGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlv
ciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDViNWQ4ZDdjNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciB3
aXRoIHNjcm9sbEludG9WaWV3IGZvciBuZXN0ZWQgc2Nyb2xsaW5nIG5vZGVzPC90aXRsZT4KKzxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3
LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICBoZWlnaHQ6
IDIwMHB4OworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBz
bW9vdGg7CisgIH0KKyAgLmdyYWRpZW50IHsKKyAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGll
bnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8
L2Rpdj4KKzxkaXY+CisgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0
eWxlPSJ3aWR0aDogNDUwcHgiPgorICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xs
YWJsZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiA0MDBweCI+CisgICAgICA8ZGl2IGNs
YXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2
PgorICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAzNTBweCI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDUwMHB4OyI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3
aWR0aDogMzAwcHgiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0i
c2Nyb2xsYWJsZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiAyNTBweCI+CisgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1
MDBweDsiPjwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9
IndpZHRoOiAyMDBweCI+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHls
ZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICAgIDxk
aXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9IndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7
IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdy
YWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAg
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0i
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPC9kaXY+Cisg
ICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdo
dDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
PC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsg
aGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorPHNj
cmlwdD4KKyAgLy8gVGhlIENTU09NLVZpZXcgc3BlYyBhbmQgaW1wbGVtZW50YXRpb25zIGZvbGxv
dyBkaWZmZXJlbnQgYWxnb3JpdGhtcyAoc2Nyb2xscyBwZXJmb3JtZWQgaW4gcGFyYWxsZWwsIGFz
IGlubmVyLXRvLW91dGVyIHNlcXVlbmNlIG9yIGFzIG91dGVyLXRvLWlubmVyIHNlcXVlbmNlKS4K
KyAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMTI3
CisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u
KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFyIGRpdnMgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIuc2Nyb2xsYWJsZSIpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGFibGVEaXYpOworICAgICAgfSk7Cisg
ICAgICBlbGVtZW50VG9SZXZlYWwuc2Nyb2xsSW50b1ZpZXcoe2lubGluZTogInN0YXJ0IiwgYmxv
Y2s6ICJzdGFydCIsIGJlaGF2aW9yOiAiYXV0byJ9KTsKKyAgICAgIHZhciBzY3JvbGxUb3AgPSBu
ZXcgTWFwKCk7CisgICAgICB2YXIgaXNTbW9vdGggPSBuZXcgTWFwKCk7CisgICAgICBkaXZzLmZv
ckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsKKyAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxh
YmxlRGl2LCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgIGlzU21vb3RoLnNldChz
Y3JvbGxhYmxlRGl2LCBzY3JvbGxhYmxlRGl2LmNsYXNzTGlzdC5jb250YWlucygic21vb3RoQmVo
YXZpb3IiKSk7CisgICAgICAgIC8vIElmIHNjcm9sbCBvcGVyYXRpb25zIGFyZSBub3QgcGVyZm9y
bWVkIGluIHBhcmFsbGVsLCBzY3JvbGwgYm94ZXMgd2l0aCBpbnN0YW50IGJlaGF2aW9yIG1pZ2h0
IGFsc28gbmVlZCB0byB3YWl0IGZvciB0aGVpciBwcmVkZWNlc3NvcnMuCisgICAgICAgIGlmIChp
c1Ntb290aC5nZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxUb3AuZ2V0KHNjcm9sbGFibGVEaXYpLCA1MDAsICJFbGVtZW50IHdpdGggc21vb3RoIGJl
aGF2aW9yIHNob3VsZCBub3Qgc2Nyb2xsIGltbWVkaWF0ZWx5Iik7CisgICAgICB9KTsKKworICAg
ICAgb2JzZXJ2ZVNjcm9sbGluZyhBcnJheS5mcm9tKGRpdnMpLCBmdW5jdGlvbihkb25lKSB7Cisg
ICAgICAgIHRyeSB7CisgICAgICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7
CisgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKHNjcm9sbFRvcC5nZXQoc2Nyb2xs
YWJsZURpdiksIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3Jl
YXNpbmciKTsKKyAgICAgICAgICAgIGlmICghaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQor
ICAgICAgICAgICAgICBhc3NlcnRfYW55KGFzc2VydF9lcXVhbHMsIHNjcm9sbGFibGVEaXYuc2Ny
b2xsVG9wLCBbMCwgNTAwXSwgIkVsZW1lbnQgd2l0aCBpbnN0YW50IGJlaGF2aW9yIHNob3VsZCBq
dW1wIHRvIHRoZSBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgaWYgKGRvbmUpCisgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsIDUwMCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICAgICAgc2Nyb2xsVG9wLnNldChzY3Jv
bGxhYmxlRGl2LCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgICAgfSk7CisgICAg
ICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAg
fSwgInNjcm9sbEludG9WaWV3IHdpdGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNj
cm9sbC1iZWhhdmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9v
dGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwLi44NTVhNmE2MTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDIwIEBACisKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9s
bCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9s
bGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgw
LCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRp
b25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8g
KDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBw
ZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2lu
ZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21v
b3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRv
KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xs
aW5nIGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgx
MDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8g
KDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVu
IHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTAp
IHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWlu
ZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3Jv
bGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNj
cm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAg
CitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcg
ZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgx
MDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3Jv
bGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUw
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3Np
dGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290
aCBzY3JvbGxpbmcgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290
aCBzY3JvbGxpbmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXNtb290aC1wb3NpdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwLi4wYTQxYjhiMDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTAsMCAr
MSwxNTEgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJp
bWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5
bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2
aW9yPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdA
aWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmct
Ym94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0
bzsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBzY3JvbGwtYmVo
YXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxk
aXYgaWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3
aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50
KDEzNWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5l
LWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVs
ZW1lbnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxp
Z246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsi
Pjwvc3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIEZvciBzbW9vdGggYmVo
YXZpb3IsIGV2b2x1dGlvbiBvZiBzY3JvbGwgcG9zaXRpb25zIG92ZXIgdGltZSBpcyBub3Qgc3Bl
Y2lmaWVkIGJ5IENTU09NIFZpZXcuCisgIC8vIFRoaXMgdGVzdCByZWxpZXMgb24gdGhlIG1pbmlt
YWwgYXNzdW1wdGlvbiB0aGF0IHNjcm9sbCBwb3NpdGlvbiBmdW5jdGlvbnMgYXJlIG1vbm90b25p
Yy4KKyAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXci
XS5mb3JFYWNoKGZ1bmN0aW9uKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgW3tsZWZ0OjAsIHRvcDow
fSwge2xlZnQ6MTAwMCwgdG9wOjB9LCB7bGVmdDowLCB0b3A6NTAwfSwge2xlZnQ6MTAwMCwgdG9w
OjUwMH1dLmZvckVhY2goKGluaXRpYWwpID0+IHsKKyAgICAgIHZhciBmaW5hbExlZnQgPSA1MDA7
CisgICAgICB2YXIgZmluYWxUb3AgPSAyNTA7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIGlu
aXRpYWwubGVmdCwgaW5pdGlhbC50b3ApOworICAgICAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZs
b3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxUb3A7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCBpbml0aWFsLmxlZnQs
ICJTY3JvbGxMZWZ0IHNob3VsZCBiZSBhdCBpbml0aWFsIHBvc2l0aW9uIik7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhvbGRUb3AsIGluaXRpYWwudG9wLCAiU2Nyb2xsVG9wIHNob3VsZCBiZSBh
dCBpbml0aWFsIHBvc2l0aW9uIik7CisgICAgICAgICAgaWYgKHNjcm9sbEZ1bmN0aW9uID09PSAi
c2Nyb2xsQnkiKQorICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1
bmN0aW9uLCAic21vb3RoIiwgZmluYWxMZWZ0IC0gaW5pdGlhbC5sZWZ0LCBmaW5hbFRvcCAtIGlu
aXRpYWwudG9wKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJm
bG93Tm9kZSwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBmaW5hbExlZnQsIGZpbmFsVG9wKTsK
KyAgICAgICAgICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkg
eworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxv
d05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9k
ZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoTWF0aC5o
eXBvdChmaW5hbExlZnQgLSBuZXdMZWZ0LCBmaW5hbFRvcCAtIG5ld1RvcCksIE1hdGguaHlwb3Qo
ZmluYWxMZWZ0IC0gb2xkTGVmdCwgZmluYWxUb3AgLSBvbGRUb3ApLCAiU2Nyb2xsIHBvc2l0aW9u
IHNob3VsZCBtb3ZlIHRvd2FyZHMgdGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAg
IGlmIChkb25lKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCBmaW5h
bExlZnQsICJTY3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCBmaW5hbFRvcCwgIlNjcm9sbFRvcCBzaG91
bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAg
ICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICByZXNvbHZlKCk7Cisg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgfSwgYFNjcm9sbCBwb3NpdGlvbnMgd2hl
biBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoJHtpbml0aWFsLmxlZnR9LCAke2lu
aXRpYWwudG9wfSkgdG8gKCR7ZmluYWxMZWZ0fSwgJHtmaW5hbFRvcH0pIHVzaW5nICR7c2Nyb2xs
RnVuY3Rpb259KCkgYCk7CisgICAgfSk7CisgIH0pOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgcmVzZXRTY3JvbGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJv
cnRlZCA9IGZhbHNlOworICAgICAgdmFyIHNjcm9sbERpcmVjdGlvbkNoYW5nZWQgPSBmYWxzZTsK
KyAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICB2YXIg
b2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xk
TGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgMCk7CisgICAgICBzY3JvbGxO
b2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCAxNTAwLCA3NTApOworICAgICAg
b2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAg
dHJ5IHsKKyAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0Owor
ICAgICAgICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAg
IGlmIChpbml0aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgaWYgKHNjcm9sbERpcmVj
dGlvbkNoYW5nZWQpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChv
bGRMZWZ0LCBuZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBkZWNyZWFzaW5nIik7CisgICAgICAg
ICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxU
b3Aga2VlcHMgZGVjcmVhc2luZyIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
IHNjcm9sbERpcmVjdGlvbkNoYW5nZWQgPSBuZXdMZWZ0IDw9IG9sZExlZnQgJiYgbmV3VG9wIDw9
IG9sZFRvcDsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190
aGFuX2VxdWFsKG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmci
KTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwg
IlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0
ID4gMTAwMCAmJiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUg
aW5pdGlhbCBzY3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0
cnVlOworICAgICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwg
InNtb290aCIsIDUwMCwgMjUwKTsKKyAgICAgICAgICAgICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dO
b2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNj
cm9sbFRvcDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9u
ZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0
IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhuZXdUb3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsK
KyAgICAgICAgICB9CisgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xk
VG9wID0gbmV3VG9wOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgfSk7CisgICAgfSk7CisgIH0sICJTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBz
bW9vdGggc2Nyb2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICByZXNldFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFy
IGluaXRpYWxTY3JvbGxBYm9ydGVkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJm
bG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3Jv
bGxUb3A7CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhvbGRUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwi
LCAic21vb3RoIiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dO
b2RlLCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xl
ZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3Zl
cmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoIWluaXRpYWxTY3JvbGxBYm9ydGVk
KSB7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVm
dCwgIlNjcm9sbExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRf
bGVzc190aGFuX2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNp
bmciKTsKKyAgICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAwICYmIG5ld1RvcCA+IDUwMCkg
eworICAgICAgICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFsIHNjcm9sbC4KKyAgICAgICAg
ICAgICAgICBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2Ny
b2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIDUwMCwgMjUwKTsKKyAg
ICAgICAgICAgICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAg
ICAgICAgICAgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZp
bmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIDI1
MCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAg
ICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBzdGF5IGF0IGZpbmFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Ny
b2xsVG9wIHNob3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAg
ICAgICAgIG9sZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAg
ICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAg
ICAgIGlmIChkb25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOwor
ICB9LCAiU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3
aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLjI3OTlmZGNjMjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMzcgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
CitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5n
IHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9s
bGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3Vi
ZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1l
LXJvb3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45NmQxMWFi
OTYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVu
dC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIg
d2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgor
ICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRv
QmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21v
b3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8
L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6
IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7
Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHls
ZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2
PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFt
ZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5n
RWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVudFRv
UmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgaWZy
YW1lTm9kZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9mdW5j
X2RvbmUoKCkgPT4geworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5zY3JvbGxpbmdFbGVtZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2Rl
LmNvbnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0g
aWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVh
bCIpOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50
b1ZpZXciXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7
CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNj
cm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhl
bigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0p
OworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAg
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8i
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3Nl
cnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0s
IGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxp
bmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3Ai
KTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAg
fSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNt
b290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5n
IGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5z
dGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7Cisg
IH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA1ZWIz
MjcyZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
OSBAQAorCitQQVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9v
dGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xs
aW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1h
aW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u
MzMzM2Q2NGY4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzEg
QEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFs
OkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVy
Zmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5h
YmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBm
b3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBz
dWJmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3
YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xs
aW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZp
b3IuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZy
YW1lTm9kZSIgd2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4K
KzxodG1sPgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQor
ICAgIC5hdXRvQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0K
KyAgICAuc21vb3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
ICAgfQorICA8L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4
OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVk
LCBncmVlbik7Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdp
ZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2
ZWFsJyBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7
IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgor
ICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAg
dmFyIGlmcmFtZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIg
c2Nyb2xsaW5nV2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBl
bGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUw
OworICBpZnJhbWVOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5z
dGVwX2Z1bmNfZG9uZSgoKSA9PiB7CisgICAgc2Nyb2xsaW5nV2luZG93ID0gaWZyYW1lTm9kZS5j
b250ZW50V2luZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9kZS5j
b250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisgICAg
WyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlv
bikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxG
b3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3cs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAg
fSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3Jv
bGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93
KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxG
dW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxX
aW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3Jv
bGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVh
bFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3Vs
ZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZv
clNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhl
bigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAg
ICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1
bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3Jv
bGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5n
V2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
cmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJl
aGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwi
LCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAv
IDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3Ro
IHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGlu
ZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAw
KTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVu
dC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2lu
ZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmciKTsKKworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IGI5NzMwZDBkYTAuLjg4YzExZTNkZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwpAQCAtMSw3ICsxLDcgQEAKIDIwMTktMTItMDUgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hl
bkBpZ2FsaWEuY29tPgogCi0gICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3Ig
cGFyc2luZwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA0ODgyCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9u
IG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKIAogICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCA2YTljY2YxN2M2Li43Nzk4ZDExMzliIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzQ2NCw0ICszNDY0LDE1IEBAIHdlYmtp
dC5vcmcvYi8yMDMzNTYgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10cmFuc2l0aW9uCiB3ZWJraXQub3JnL2IvMjAzNDE2IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9iZWZvcmUtbG9hZC0wMDEuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjAzNDE2IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wcm9wZXJ0aWVzLXZhbHVlLWF1dG8tMDAx
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMjA0NzU3IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24vZmV0Y2gt
ZGVzdGluYXRpb24tbm8tbG9hZC1ldmVudC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3ZWJraXQub3JnL2IvMjA0NzU3IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24vZmV0Y2gt
ZGVzdGluYXRpb24tbm8tbG9hZC1ldmVudC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KKwor
IyBXZSBuZWVkIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkIGFuZCBleHBl
cmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCB0byB0dXJuIG9uIHNjcm9s
bCBiZWhhdmlvciBzdXBwb3J0ZWQgYnkgbmF0aXZlIHNjcm9sbC4KKyMgVGhlIGV4cGVyaW1lbnRh
bCBmbGFncyBhcmUgdHVybiBvbiBieSBkZWZhdWx0LCBidXQgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQgaXMgbm90LgorIyBTbyB3ZSBjYW4gc2tpcCB0aGUgc2Nyb2xsIGJl
aGF2aW9yIHRlc3QgaW4gd3B0LCBhbmQgY29weSB0aGVtIHRvIGZhc3Qvc2Nyb2xsaW5nL2lvcyB3
aXRoIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUuCit3ZWJraXQu
b3JnL2IvMTg4MDQzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcv
Yi8xODgwNDMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTg4MDQz
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTg4MDQz
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xODgw
NDMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwt
YmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcv
Yi8xODgwNDMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3Jn
L2IvMTg4MDQzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcv
c2Nyb2xsLWJlaGF2aW9yLXNtb290aC5odG1sIFsgU2tpcCBdClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ0NjZjNzc2YTcuLjlhZjlkYTRjMmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMTcgKzEsMzYgQEAKIDIwMTktMTItMDUgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBp
Z2FsaWEuY29tPgogCi0gICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFy
c2luZwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
ODgyCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5h
dGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKIAogICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KIAogICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLD
qWTDqXJpYyBXYW5nLgogCi0gICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nIHNjcm9sbC1i
ZWhhdmlvciBjc3MgcHJvcGVydHkgYW5kIFNjcm9sbE9wdGlvbnMuCi0KLSAgICAgICAgVGVzdHM6
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvaW5oZXJpdGFuY2UuaHRtbAorICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBwcm9n
cmFtbWF0aWMgc21vb3RoIHNjcm9sbGluZyBpbiBXZWJLaXQgZnJvbSB0aGUgQ1NTT00gVmlldwor
ICAgICAgICBzcGVjaWZpY2F0aW9uIFsxXS4gVG8gdXNlIHRoaXMgZWZmZWN0LCB3ZWIgZGV2ZWxv
cGVycyBjYW4gcGFzcyBhIGJlaGF2aW9yIHBhcmFtZXRlciAoYXV0bywKKyAgICAgICAgc21vb3Ro
LCBvciBpbnN0YW50KSB0byBFbGVtZW50LnNjcm9sbCwgRWxlbWVudC5zY3JvbGxUbywgRWxlbWVu
dC5zY3JvbGxCeSwKKyAgICAgICAgRWxlbWVudC5zY3JvbGxJbnRvVmlldywgV2luZG93LnNjcm9s
bCwgV2luZG93LnNjcm9sbFRvIG9yIFdpbmRvdy5zY3JvbGxCeSBbMl0uIFdoZW4gYmVoYXZpb3IK
KyAgICAgICAgaXMgYXV0bywgdGhlIGluc3RhbnQvc21vb3RoIGNoYXJhY3RlcmlzdGljIGlzIGFj
dHVhbGx5IHRha2VuIGZyb20gdGhlIHZhbHVlIG9mIGEgbmV3IENTUworICAgICAgICBzY3JvbGwt
YmVoYXZpb3IgcHJvcGVydHkgWzNdLiBCb3RoIHRoZSBuZXcgQ1NTIGFuZCBET00gYmVoYXZpb3Ig
YXJlIHByb3RlY3RlZCBieSBhIHJ1bnRpbWUKKyAgICAgICAgZmxhZy4gVGhpcyBwYXRjaCBpcyBw
YXJ0IHNjcm9sbCBiZWhhdmlvciwgb25seSBzdXBwb3J0IGlPUyBwbGF0Zm9ybS4gSXQgcmVsaWVz
IG9uIFVJU2Nyb2xsVmlldydzCisgICAgICAgIG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uIHN1cHBv
cnQgYW5kIGlzIGV4ZWN1dGVkIGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgIFsxXSBodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldworICAgICAgICBbMl0gaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI2RpY3RkZWYtc2Nyb2xsb3B0aW9ucworICAgICAgICBb
M10gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJl
aGF2aW9yCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZGVmYXVsdC1jc3MuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3Jv
bGxpbnRvdmlldy1uZXN0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdp
bmRvdy5odG1sCiAKICAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIElETCBmaWxlcyBmb3Ig
U2Nyb2xsT3B0aW9ucyBhbmQgU2Nyb2xsQmVoYXZpb3IuCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogRGl0dG8uCiAgICAgICAgICogSGVhZGVycy5jbWFrZTogQWRkIGhlYWRlcnMgZm9y
IFNjcm9sbEJlaGF2b3IgYW5kIFNjcm9sbE9wdGlvbnMuCiAgICAgICAgICogU291cmNlcy50eHQ6
IEFkZCBTY3JvbGxCZWhhdm9yIGFuZCBTY3JvbGxPcHRpb25zIGltcGxlbWVudGF0aW9uLiBBbHNv
IGJ1aWxkCiAgICAgICAgIFNjcm9sbEFuaW1hdGlvblNtb290aC5jcHAgb24gYWxsIHBsYXRmb3Jt
cy4KQEAgLTI2LDE0ICs0NSwzMSBAQAogICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CiAg
ICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0Lmg6IERpdHRvLgogICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyQ29udGV4dEhhc2g6Omhhc2gpOgotICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcDogUmVtb3ZlIHNjcm9sbC1iZWhhdmlvciB0ZW1wbGF0
ZXMuIEl0IGlzIGhhbmRsZWQgaW4gdGhlIHNsb3cgcGF0aCBzaW5jZSBwcm9wZXJ0eSBjYW4gYmUg
ZGlzYWJsZWQuCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwOiBS
ZW1vdmUgc2Nyb2xsLWJlaGF2aW9yIHRlbXBsYXRlcy4gSXQgaXMgaGFuZGxlZCBpbiB0aGUKKyAg
ICAgICAgc2xvdyBwYXRoIHNpbmNlIHByb3BlcnR5IGNhbiBiZSBkaXNhYmxlZC4KICAgICAgICAg
KFdlYkNvcmU6OkNTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZh
bHVlKToKICAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckZhc3RQYXRoczo6aXNLZXl3b3JkUHJv
cGVydHlJRCk6CiAgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CiAg
ICAgICAgIChXZWJDb3JlOjpjb25zdW1lU2Nyb2xsQmVoYXZpb3IpOgogICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUpOiBQYXJzZSBzY3JvbGwtYmVo
YXZpb3IgKG9ubHkgaWYgZW5hYmxlZCkuCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcpOiBQYXNzIHNjcm9sbCBiZWhh
dmlvciwgaWYgYW55LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsQnkpOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsVG8pOiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiBz
Y3JvbGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0
U2Nyb2xsTGVmdCk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9v
dGguCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRTY3JvbGxUb3ApOiBIYW5kbGUgdGhl
IGNhc2Ugd2hlbiBzY3JvbGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2Nyb2xsQnkgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzY3JvbGxUbyBjb25zdCk6IEhhbmRsZSB0
aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgIFRoZSBvcHRp
bWl6YXRpb24gb2YgY2FuY2VsICgwLCAwKSBzY3JvbGxpbmcgaXMgc2tpcHBlZCBpZiBhbiBhbmlt
YXRlZCBzY3JvbGwgaXMgaW4gcHJvZ3Jlc3MuCisgICAgICAgIE90aGVyd2lzZSwgdGhlIHByZXZp
b3VzIHNjcm9sbCB3b24ndCBiZSBzdG9wcGVkIGJ5IGEgZm9sbG93LXVwIHNjcm9sbC4KKyAgICAg
ICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNl
dFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKTogU3RhcnQgYW4gYW5pbWF0ZWQgc2Nyb2xsIGZvciBpT1MgcGxh
dGZvcm0uIEluIG5vbi1pT1MgcGxhdGZvcm1zLCBpdCdzIGFuIGluc3RhbGwgc2Nyb2xsLgorICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CiAgICAgICAgICogcGFnZS9TY3JvbGxCZWhhdmlvci5j
cHA6IEFkZGVkLgotICAgICAgICAoV2ViQ29yZTo6dXNlU21vb3RoU2Nyb2xsaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OnVzZVNtb290aFNjcm9sbGluZyk6IEhlbHBlciBmdW5jaXRvbiB0byBkZXRl
cm1pbmUgdGhlIHNjcm9sbCBiZWhhdmlvciB0byBhcHBseSB0bworICAgICAgICBhbiBlbGVtZW50
IGZyb20gdGhlIENTUyBhbmQgRE9NIGJlaGF2aW9yLgogICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVo
YXZpb3IuaDogQWRkZWQuCiAgICAgICAgICogcGFnZS9TY3JvbGxCZWhhdmlvci5pZGw6IEFkZGVk
LgogICAgICAgICAqIHBhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmg6IE1ha2UgdGhpcyBjbGFz
cyBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbi4gQWxzbyByZW1vdmUgdW5uZWNlc3NhcnkgZm9y
d2FyZCBkZWNsYXJhdGlvbi4KQEAgLTQ1LDE2ICs4MSw5MiBAQAogICAgICAgICAoV2ViQ29yZTo6
bm9ybWFsaXplTm9uRmluaXRlQ29vcmRpbmF0ZXNPckZhbGxCYWNrVG8pOiBDb3B5IHRoZSBjdXJy
ZW50IFNjcm9sbFRvT3B0aW9ucyBzbyB0aGF0IHRoZSBzY3JvbGwgYmVoYXZpb3IgaXMgcHJlc2Vy
dmVkLgogICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbDogTWFrZSB0aGlzIGNsYXNz
IGluaGVyaXQgZnJvbSBTY3JvbGxPcHRpb25zLgogICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFt
bDogTmV3IHNldHRpbmcgZm9yIENTU09NIFZpZXcgc21vb3RoIHNjcm9sbGluZy4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlv
blVwZGF0ZSk6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBz
Y3JvbGwgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk6IFVwZGF0ZSB0aGUgc2Nyb2xsIGFuaW1h
dGlvbiBzdGF0dXMgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKTogQWRk
IG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIHRvIGluZGljYXRlIGl0J3Mg
YW5pbWF0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzIGNvbnN0KTogRGl0dG8u
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmg6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBBZGQgd2l0aEFuaW1hdGlv
bi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlSXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5p
bWF0aW9uIHN0YXR1cy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSB0
aGUgc2Nyb2xsIGlzIGFuaW1hdGVkIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyk6IElmIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24g
aXMgdHJ1ZSwgc2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJvY2VzcywgZXZl
biBpZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGRvZXNuJ3QgY2hhbmdlLgorICAgICAgICBNYWludGFp
biB0aGUgc3RhdHVzIG9mIG1fc3RvcFNjcm9sbEFuaW1hdGlvbiBhbmQgbV9yZXF1ZXN0U2Nyb2xs
V2l0aEFuaW1hdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0
IGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGltbWVkaWF0ZWx5LCBzbyBkb24ndCBub3RpZnkg
dGhlIHNjcm9sbGluZyBpbmZvIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbik6IG1fcmVxdWVzdFNj
cm9sbFdpdGhBbmltYXRpb24gaW5kaWNhdGVzIHRoYXQgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3Jv
bGwgcmVxdWVzdC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24pOiBJZiB0aGUgTm9k
ZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHByZXZpb3VzIHNjcm9sbCBh
bmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbiBjb25zdCk6
IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2
aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQgb3Igc21vb3RoIHNjcm9sbC4KKyAgICAg
ICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGluZGljYXRlIHRoZSBzdGF0dXMgb2Ygc2Ny
b2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBGb2xsb3cgdGhlIENTU09NIFZp
ZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGludGVycnVw
dCBpdCBhbmQgY29udGludWUgdGhlIHNjcm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJlIGF0IHRo
ZSBmaW5hbAorICAgICAgICBwb3NpdGlvbikuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3
Ojp1cGRhdGVTY3JvbGxiYXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsYWJsZUFyZWE6OlNjcm9sbGFibGVBcmVhKTogQWRkIG1fY3VycmVudFNjcm9sbEJlaGF2
aW9yVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppc1Njcm9sbEluUHJv
Z3Jlc3MpOiBIZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgd2hldGhlciBzY3JvbGwKKyAgICAgICAg
YW5pbWF0aW9uIGlzIGluIHByb2dyZXNzIG9uIHRoZSBhbmltYXRvci4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGFibGVBcmVhOjppc1dlYlNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOiBDaGVj
ayBpZiB0aGUgbV9zY3JvbGxBbmltYXRvciBvZgorICAgICAgICB0aGUgV2ViIHByb2Nlc3MgaXMg
cGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9uKTogVG8gYXZv
aWQgaXRlcmF0ZSBjYWxsaW5nLAorICAgICAgICBtb3ZlIHRoZSByZXF1ZXN0U2Nyb2xsUG9zaXRp
b25VcGRhdGUocG9zaXRpb24pIGNoZWNraW5nIG91dCBvZiBzZXRTY3JvbGxPZmZzZXRGcm9tQW5p
bWF0aW9uKCkuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMgY29u
c3QpOiBNYWludGFpbiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgY29uc3Qp
OiBNYWludGFpbiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsYWJsZUFyZWE6OnNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpz
ZXRTY3JvbGxMZWZ0KTogQWRkIGZsYWcgdG8gaW5kaWNhdGUgYW5pbWF0ZWQgb3Igbm90LgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRTY3JvbGxUb3ApOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9ZUG9zaXRpb24pOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb1Bvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldCk6IEZvbGxvdyB0aGUg
Q1NTT00gVmlldyBzcGVjOiBJZiBhIHNjcm9sbCBpcyBpbgorICAgICAgICBwcm9ncmVzcywgd2Ug
aW50ZXJydXB0IGl0IGFuZCBjb250aW51ZSB0aGUgc2Nyb2xsIGNhbGwgKGV2ZW4gd2hlbiB3ZSBh
cmUgYXQgdGhlIGZpbmFsCisgICAgICAgIHBvc2l0aW9uKS4gSXQncyBTY3JvbGxCZWhhdmlvclR5
cGU6Okluc3RhbnQgc2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlcXVl
c3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKTogRGl0dG8uIFRoaXMgaXMgc2ltaWxhciB0byBz
Y3JvbGxUb09mZnNldAorICAgICAgICBidXQgYW5pbWF0ZXMgdGhlIHNjcm9sbCBvbiBpT1MgcGxh
dGZvcm0uIEl0J3MgU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGggc2Nyb2xsLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKTogVXNlIHNjcm9sbFRvUG9zaXRpb24gdG8gaGFu
ZGxlIGluc3RhbnQgb3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaDogQWRkIHNjcm9sbCBiZWhhdmlvciB0byBTY3JvbGxUZWN0VG9WaXNpYmxlT3B0aW9u
cy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KTogQWRkIGFuaW1hdGVkIGZsYWcuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3ApOiBEaXR0by4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CiAgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6IEhhbmRsZSAnc21vb3RoIHNjcm9sbGluZycgYm9vbGVh
biBkYXRhLgogICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnVzZVNtb290aFNjcm9sbGlu
ZyBjb25zdCk6CiAgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0VXNlU21vb3RoU2Ny
b2xsaW5nKToKICAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjppbml0aWFsVXNlU21vb3Ro
U2Nyb2xsaW5nKToKLSAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuY3BwOiBEaXR0by4KICAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgogICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6Ci0gICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOiBEaXR0by4KICAgICAg
ICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKICAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U21vb3RoU2Nyb2xsaW5nKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVu
Y29uc3RyYWluZWRTY3JvbGxUbyk6CiAKIDIwMTktMTItMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBjOTQ2M2IxZmQ3
Li5iYzU4ZjRkNjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC04MzIsNyArODMyLDYgQEAg
dm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlldyhPcHRpb25hbDxWYXJpYW50PGJvb2wsIFNjcm9s
bEludG9WaWV3T3B0aW9ucz4+JiYgYXIKICAgICBib29sIGluc2lkZUZpeGVkOwogICAgIExheW91
dFJlY3QgYWJzb2x1dGVCb3VuZHMgPSByZW5kZXJlcigpLT5hYnNvbHV0ZUFuY2hvclJlY3QoJmlu
c2lkZUZpeGVkKTsKIAotICAgIC8vIEZJWE1FKHdlYmtpdC5vcmcvYi8xODgwNDMpOiBTdXBwb3J0
IFNjcm9sbEJlaGF2aW9yLgogICAgIFNjcm9sbEludG9WaWV3T3B0aW9ucyBvcHRpb25zOwogICAg
IGlmIChhcmcpIHsKICAgICAgICAgYXV0byB2YWx1ZSA9IGFyZy52YWx1ZSgpOwpAQCAtODUxLDcg
Kzg1MCw4IEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoT3B0aW9uYWw8VmFyaWFudDxi
b29sLCBTY3JvbGxJbnRvVmlld09wdGlvbnM+PiYmIGFyCiAgICAgICAgIFNlbGVjdGlvblJldmVh
bE1vZGU6OlJldmVhbCwKICAgICAgICAgaXNIb3Jpem9udGFsID8gYWxpZ25YIDogYWxpZ25ZLAog
ICAgICAgICBpc0hvcml6b250YWwgPyBhbGlnblkgOiBhbGlnblgsCi0gICAgICAgIFNob3VsZEFs
bG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Ok5vCisgICAgICAgIFNob3VsZEFsbG93Q3Jvc3NPcmln
aW5TY3JvbGxpbmc6Ok5vLAorICAgICAgICBvcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xs
QmVoYXZpb3I6OkF1dG8pCiAgICAgfTsKICAgICByZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNp
YmxlKGFic29sdXRlQm91bmRzLCBpbnNpZGVGaXhlZCwgdmlzaWJsZU9wdGlvbnMpOwogfQpAQCAt
OTEyLDcgKzkxMiw3IEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsQnkoY29uc3QgU2Nyb2xsVG9PcHRp
b25zJiBvcHRpb25zKQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5KGRvdWJsZSB4LCBkb3VibGUg
eSkKIHsKLSAgICBzY3JvbGxCeSh7IHgsIHkgfSk7CisgICAgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRp
b25zKHgsIHkpKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09w
dGlvbnMmIG9wdGlvbnMsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQpAQCAtOTQ4LDEzICs5NDgs
MTcgQEAgdm9pZCBFbGVtZW50OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlv
bnMsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogICAgICAgICBhZGp1c3RGb3JBYnNvbHV0ZVpv
b20ocmVuZGVyZXItPnNjcm9sbExlZnQoKSwgKnJlbmRlcmVyKSwKICAgICAgICAgYWRqdXN0Rm9y
QWJzb2x1dGVab29tKHJlbmRlcmVyLT5zY3JvbGxUb3AoKSwgKnJlbmRlcmVyKQogICAgICk7Ci0g
ICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25z
LmxlZnQudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksIFNjcm9s
bFR5cGU6OlByb2dyYW1tYXRpYywgY2xhbXBpbmcpOwotICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxU
b3AoY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLnRvcC52YWx1ZSgpICogcmVuZGVyZXIt
PnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFt
cGluZyk7CisgICAgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb24oCisgICAgICAgIGNsYW1wVG9JbnRl
Z2VyKHNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZl
Y3RpdmVab29tKCkpLAorICAgICAgICBjbGFtcFRvSW50ZWdlcihzY3JvbGxUb09wdGlvbnMudG9w
LnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpCisgICAgKTsKKyAg
ICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKHNjcm9sbFRvT3B0aW9ucy5iZWhh
dmlvci52YWx1ZU9yKFNjcm9sbEJlaGF2aW9yOjpBdXRvKSwgKnRoaXMpOworICAgIHJlbmRlcmVy
LT5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1h
dGljLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbFRvKGRv
dWJsZSB4LCBkb3VibGUgeSkKIHsKLSAgICBzY3JvbGxUbyh7IHgsIHkgfSk7CisgICAgc2Nyb2xs
VG8oU2Nyb2xsVG9PcHRpb25zKHgsIHkpKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxCeVVu
aXRzKGludCB1bml0cywgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0xMjg4LDEz
ICsxMjkyLDE5IEBAIHZvaWQgRWxlbWVudDo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCkKICAg
ICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAg
ICAgaWYgKGRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpID09IHRoaXMpIHsKLSAgICAgICAg
aWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFtZVdpdGhOb25OdWxsVmlldygpKQotICAgICAg
ICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoc3RhdGljX2Nh
c3Q8aW50PihuZXdMZWZ0ICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+ZnJhbWVT
Y2FsZUZhY3RvcigpKSwgZnJhbWUtPnZpZXcoKS0+c2Nyb2xsWSgpKSk7CisgICAgICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkgeworICAgICAgICAg
ICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgp
PworICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRz
L2lzc3Vlcy8yOTc3CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gZG9jdW1lbnQoKS5kb2N1
bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8s
ICpkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT52aWV3
KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4obmV3TGVmdCAq
IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSksIGZy
YW1lLT52aWV3KCktPnNjcm9sbFkoKSksIGFuaW1hdGVkKTsKKyAgICAgICAgfQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcmVuZGVyQm94KCkpIHsK
LSAgICAgICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoc3RhdGljX2Nhc3Q8aW50PihuZXdMZWZ0
ICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3Jh
bW1hdGljKTsKKyAgICAgICAgaW50IGVmZmVjdGl2ZUxlZnQgPSBjbGFtcFRvSW50ZWdlcihuZXdM
ZWZ0ICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKTsKKyAgICAgICAgYm9vbCBh
bmltYXRlZCA9IHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvcjo6QXV0bywgKnRoaXMp
OworICAgICAgICByZW5kZXJlci0+c2V0U2Nyb2xsTGVmdChlZmZlY3RpdmVMZWZ0LCBTY3JvbGxU
eXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAg
ICAgICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IHJlbmRlcmVyLT5sYXllcigpKQogICAg
ICAgICAgICAgc2Nyb2xsYWJsZUFyZWEtPnNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRl
KHRydWUpOwogICAgIH0KQEAgLTEzMDUsMTMgKzEzMTUsMTkgQEAgdm9pZCBFbGVtZW50OjpzZXRT
Y3JvbGxUb3AoaW50IG5ld1RvcCkKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgaWYgKGRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVu
dCgpID09IHRoaXMpIHsKLSAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFtZVdp
dGhOb25OdWxsVmlldygpKQotICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xsUG9z
aXRpb24oSW50UG9pbnQoZnJhbWUtPnZpZXcoKS0+c2Nyb2xsWCgpLCBzdGF0aWNfY2FzdDxpbnQ+
KG5ld1RvcCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVGYWN0
b3IoKSkpKTsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFtZVdpdGhOb25O
dWxsVmlldygpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBkb2N1bWVu
dCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRo
dWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzI5NzcKKyAgICAgICAgICAgIGJvb2wgYW5p
bWF0ZWQgPSBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGlu
ZyhTY3JvbGxCZWhhdmlvcjo6QXV0bywgKmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpOwor
ICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoZnJh
bWUtPnZpZXcoKS0+c2Nyb2xsWCgpLCBzdGF0aWNfY2FzdDxpbnQ+KG5ld1RvcCAqIGZyYW1lLT5w
YWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSkpLCBhbmltYXRlZCk7
CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChhdXRvKiByZW5k
ZXJlciA9IHJlbmRlckJveCgpKSB7Ci0gICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3Aoc3Rh
dGljX2Nhc3Q8aW50PihuZXdUb3AgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOworICAgICAgICBpbnQgZWZmZWN0aXZlVG9wID0g
Y2xhbXBUb0ludGVnZXIobmV3VG9wICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgp
KTsKKyAgICAgICAgYm9vbCBhbmltYXRlZCA9IHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhh
dmlvcjo6QXV0bywgKnRoaXMpOworICAgICAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKGVmZmVj
dGl2ZVRvcCwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBp
bmc6OkNsYW1wZWQpOwogICAgICAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSByZW5kZXJl
ci0+bGF5ZXIoKSkKICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxTaG91bGRD
bGVhckxhdGNoZWRTdGF0ZSh0cnVlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
aW5kZXggMDU2OGIwNjlkYy4uNDFmNWI2NDllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cApAQCAtMTU5NSw3ICsxNTk1LDcgQEAgZG91YmxlIERPTVdpbmRvdzo6ZGV2aWNlUGl4ZWxSYXRp
bygpIGNvbnN0CiAKIHZvaWQgRE9NV2luZG93OjpzY3JvbGxCeShkb3VibGUgeCwgZG91YmxlIHkp
IGNvbnN0CiB7Ci0gICAgc2Nyb2xsQnkoeyB4LCB5IH0pOworICAgIHNjcm9sbEJ5KFNjcm9sbFRv
T3B0aW9ucyh4LCB5KSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpzY3JvbGxCeShjb25zdCBTY3Jv
bGxUb09wdGlvbnMmIG9wdGlvbnMpIGNvbnN0CkBAIC0xNjE3LDEwICsxNjE3LDEwIEBAIHZvaWQg
RE9NV2luZG93OjpzY3JvbGxCeShjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMpIGNvbnN0
CiAKIHZvaWQgRE9NV2luZG93OjpzY3JvbGxUbyhkb3VibGUgeCwgZG91YmxlIHksIFNjcm9sbENs
YW1waW5nIGNsYW1waW5nKSBjb25zdAogewotICAgIHNjcm9sbFRvKHsgeCwgeSB9LCBjbGFtcGlu
Zyk7CisgICAgc2Nyb2xsVG8oU2Nyb2xsVG9PcHRpb25zKHgsIHkpLCBjbGFtcGluZyk7CiB9CiAK
LXZvaWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMs
IFNjcm9sbENsYW1waW5nKSBjb25zdAordm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNvbnN0IFNj
cm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpIGNvbnN0CiB7
CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMTYzMywxMiArMTYzMywyMCBAQCB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3Qg
U2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3JvbGxDbGFtcGluZykgY29uc3QKICAgICAgICAg
dmlldy0+Y29udGVudHNTY3JvbGxQb3NpdGlvbigpLngoKSwgdmlldy0+Y29udGVudHNTY3JvbGxQ
b3NpdGlvbigpLnkoKQogICAgICk7CiAKLSAgICBpZiAoIXNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZh
bHVlKCkgJiYgIXNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAmJiB2aWV3LT5jb250ZW50c1Nj
cm9sbFBvc2l0aW9uKCkgPT0gSW50UG9pbnQoMCwgMCkpCisgICAgaWYgKCF2aWV3LT5pc1Njcm9s
bEluUHJvZ3Jlc3MoKSAmJiAhc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Nyb2xs
VG9PcHRpb25zLnRvcC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKSA9
PSBJbnRQb2ludCgwLCAwKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZG9jdW1lbnQoKS0+dXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBJbnRQb2ludCBsYXlv
dXRQb3Modmlldy0+bWFwRnJvbUNTU1RvTGF5b3V0VW5pdHMoc2Nyb2xsVG9PcHRpb25zLmxlZnQu
dmFsdWUoKSksIHZpZXctPm1hcEZyb21DU1NUb0xheW91dFVuaXRzKHNjcm9sbFRvT3B0aW9ucy50
b3AudmFsdWUoKSkpOworCisgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+
c2Nyb2xsaW5nRWxlbWVudCgpPworICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nz
c3dnLWRyYWZ0cy9pc3N1ZXMvMjk3NworICAgIGlmIChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1l
bnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVl
T3IoU2Nyb2xsQmVoYXZpb3I6OkF1dG8pLCAqZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkp
KSB7CisgICAgICAgIHZpZXctPnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihsYXlvdXRQb3Ms
IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgY2xhbXBpbmcpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgdmlldy0+c2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihsYXlvdXRQb3MpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMDQwMTJmOWVmZi4uMDk1NTJiMzBj
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjI3OSw3ICsyMjc5LDcgQEAgdm9p
ZCBGcmFtZVZpZXc6OnNjcm9sbEVsZW1lbnRUb1JlY3QoY29uc3QgRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBzZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChib3Vu
ZHMueCgpIC0gY2VudGVyaW5nT2Zmc2V0WCAtIHJlY3QueCgpLCBib3VuZHMueSgpIC0gY2VudGVy
aW5nT2Zmc2V0WSAtIHJlY3QueSgpKSk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQ
b3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIEZyYW1l
Vmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0
aW9uLCBib29sIGFuaW1hdGVkKQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0
cmVhbSA8PCAiRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9u
IDw8ICIgLCBjbGVhcmluZyBhbmNob3IiKTsKIApAQCAtMjI5Miw4ICsyMjkyLDEwIEBAIHZvaWQg
RnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xs
UG9zaXRpb24pCiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwogICAgIGlmIChwYWdl
ICYmIHBhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiAgICAgICAgIHNjcm9sbEFuaW1h
dG9yKCkuc2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKHBhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRv
cigpKTsKLSAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7
Ci0KKyAgICBpZiAoYW5pbWF0ZWQpCisgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pLCBjdXJyZW50U2Nyb2xs
VHlwZSgpKTsKKyAgICBlbHNlCisgICAgICAgIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShvbGRTY3JvbGxUeXBl
KTsKIH0KIApAQCAtMzY2MCw2ICszNjYyLDI0IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUbyhj
b25zdCBTY3JvbGxQb3NpdGlvbiYgbmV3UG9zaXRpb24pCiAgICAgZGlkQ2hhbmdlU2Nyb2xsT2Zm
c2V0KCk7CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24o
Y29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xs
VHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOworCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsKKyAgICBp
ZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChv
ZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5
cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisgICAgLy8gTm9uLWlPUyBwbGF0
Zm9ybXMgcGVyZm9ybSBpbnN0YW50IHNjcm9sbCBpbnN0ZWFkLgorICAgIGlmIChvZmZzZXQgIT0g
dGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09m
ZnNldFdpdGhvdXRBbmltYXRpb24ob2Zmc2V0KTsKKyAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShw
cmV2aW91c1Njcm9sbFR5cGUpOworfQorCiBmbG9hdCBGcmFtZVZpZXc6OmFkanVzdFNjcm9sbFN0
ZXBGb3JGaXhlZENvbnRlbnQoZmxvYXQgc3RlcCwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50
YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlmIChncmFudWxh
cml0eSAhPSBTY3JvbGxCeVBhZ2UgfHwgb3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJh
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGUzNmY5OTY4MDQuLmIzN2YwNjBlMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMjIzLDcgKzIyMyw3IEBAIHB1YmxpYzoKICNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGaXhl
ZFZpc2libGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JikgZmluYWw7CiAjZW5kaWYKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9u
JikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSkgZmluYWw7CiAgICAgdm9p
ZCByZXN0b3JlU2Nyb2xsYmFyKCk7CiAgICAgdm9pZCBzY2hlZHVsZVNjcm9sbFRvRm9jdXNlZEVs
ZW1lbnQoU2VsZWN0aW9uUmV2ZWFsTW9kZSk7CiAgICAgdm9pZCBzY3JvbGxUb0ZvY3VzZWRFbGVt
ZW50SW1tZWRpYXRlbHlJZk5lZWRlZCgpOwpAQCAtNjU5LDYgKzY1OSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgcmVuZGVyTGF5ZXJEaWRTY3JvbGwoY29uc3QgUmVuZGVyTGF5ZXImKTsKIAorICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNj
cm9sbE9mZnNldCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworCiBwcm90ZWN0ZWQ6CiAgICAg
Ym9vbCBzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBj
b25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KSBmaW5h
bDsKICAgICB2b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3QgSW50UmVjdCYgdXBkYXRl
UmVjdCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDQyOWVlZTlhOTYuLjA0OTcw
MjQzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0yNDgsNyArMjQ4LDE0IEBAIGJvb2wg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNj
cm9sbGFibGVBcmVhJiBzY3JvCiAKICAgICBib29sIGluQmFja0ZvcndhcmRDYWNoZSA9IGZyYW1l
Vmlldy0+ZnJhbWUoKS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1
bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlOwogICAgIGJvb2wgaW5Qcm9ncmFtbWF0aWNTY3Jv
bGwgPSBzY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlBy
b2dyYW1tYXRpYzsKLSAgICBpZiAoaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5CYWNrRm9yd2Fy
ZENhY2hlKQorCisgICAgYm9vbCB1cGRhdGVTY3JvbGxQb3NpdGlvbiA9IGluUHJvZ3JhbW1hdGlj
U2Nyb2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGJvb2wgYW5pbWF0ZWQgPSBzY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsQmVoYXZpb3JU
eXBlKCkgPT0gU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGg7CisgICAgLy8gVGhlIHNjcm9sbCBw
b3NpdGlvbiBvZiBhbmltYXRlZCBzY3JvbGxpbmcgd2lsbCBiZSBzZXQgZnJvbSB0aGUgdGhlIFVJ
IHByb2Nlc3MuIFNvIGl0IHNob3VsZG4ndCBiZSBzZXQgbm93LgorICAgIHVwZGF0ZVNjcm9sbFBv
c2l0aW9uID0gIWFuaW1hdGVkICYmIHVwZGF0ZVNjcm9sbFBvc2l0aW9uOworI2VuZGlmCisgICAg
aWYgKHVwZGF0ZVNjcm9sbFBvc2l0aW9uKQogICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFm
dGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7
CiAKICAgICAvLyBJZiB0aGlzIGZyYW1lIHZpZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQgaW50
byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB3ZSBkb24ndCB3YW50IHRvIHVwZGF0ZSBvdXIKQEAg
LTI2MCw3ICsyNjcsMTUgQEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0
U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIXN0YXRl
Tm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBpZiAoYW5pbWF0ZWQpCisgICAgICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJblVJTmF0aXZlQW5pbWF0aW9uKTsKKyAg
ICBlbHNlCisgICAgICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgc3RhdGVOb2RlLT5zZXRS
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9ncmFtbWF0aWNTY3Jv
bGwsIGFuaW1hdGVkKTsKKyNlbHNlCiAgICAgc3RhdGVOb2RlLT5zZXRSZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI5MSw2ICszMDYsMzIgQEAgdm9pZCBBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbChTY3IKICAgICBtX3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVyLnN0YXJ0T25lU2hv
dCgwX3MpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUobm9kZUlE
KTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5vZGVJ
RCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAgIGlmICghaXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3LT5zZXRTY3JvbGxC
ZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xsIGFyZWEuCisgICAg
aWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYUZvclNj
cm9sbExheWVySUQobm9kZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzcykKKyAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxCZWhhdmlvclN0
YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgIH0KK30KKyNl
bmRpZgorCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0
aW9uQWZ0ZXJBc3luY1Njcm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0ZVNjcm9sbFBvc2l0
aW9uQWZ0ZXJBc3luY1Njcm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5ub2RlSUQsIG1fc2No
ZWR1bGVkU2Nyb2xsVXBkYXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0
ZS5sYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9zY2hlZHVsZWRTY3Jv
bGxVcGRhdGUudXBkYXRlTGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5k
ZXggOWJlNjlhYWZiMS4uM2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTIsNiAr
NTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQcm9wZXJ0aWVzQ2hh
bmdlZCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBv
c2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQm
LCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIAorICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxp
bmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBY3RpdmVTY3Jv
bGxTbmFwSW5kaWNlcyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWxJbmRleCwg
dW5zaWduZWQgdmVydGljYWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3
MTdiZmMyYTU1Li43ZTIxODhjMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTU2
LDYgKzU2LDkgQEAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgogICAgICwgbV9zY3Jv
bGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygp
KQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCgpKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBtX3JlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25XaXRoQW5pbWF0aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25pdG9yaW5nV2hlZWxF
dmVudHMoc3RhdGVOb2RlLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7CiAgICAgaWYgKGhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0yMTksMTIgKzIyMiwy
MiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsYWJsZUFyZWFQ
YXJhbWV0ZXJzKGNvbnN0IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3Jv
bGxhYmxlQXJlYVBhcmFtcyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlvbikKK3sKKyAgICBt
X3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CisgICAg
bV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgPSBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b25XaXRoQW5pbWF0aW9uID0gcmVxdWVzdGVkV2l0aEFuaW1hdGlvbjsKKyAgICBzZXRQcm9wZXJ0
eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOworfQorI2Vsc2UKIHZvaWQgU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBG
bG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsKQogewogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24gPSByZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbjsKICAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGw7CiAgICAg
c2V0UHJvcGVydHlDaGFuZ2VkKFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKTsKIH0KKyNlbmRpZgog
CiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SXNNb25pdG9yaW5nV2hlZWxF
dmVudHMoYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cykKIHsKQEAgLTMxNCw2ICszMjcsMTEg
QEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRT
dHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVQKICAgICBpZiAobV9yZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0
eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiByZXByZXNlbnRzIHByb2dyYW1tYXRpYyBzY3Jv
bGwiLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9s
bCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChtX3JlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uV2l0aEFuaW1hdGlvbikKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0
ZWQgc2Nyb2xsIHBvc2l0aW9uIHdpdGggYW5pbWF0aW9uIiwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbldpdGhBbmltYXRpb24pOworI2VuZGlmCisKICAgICBpZiAoIW1fcGFyZW50UmVsYXRpdmVT
Y3JvbGxhYmxlUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicGFyZW50
IHJlbGF0aXZlIHNjcm9sbGFibGUgcmVjdCIsIG1fcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVj
dCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNDk2N2E2Y2U4MS4uNmUyNWQ3YmJhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKQEAgLTExMSw3ICsxMTEsMTIgQEAgcHVibGljOgogCiAg
ICAgY29uc3QgRmxvYXRQb2ludCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IHJl
dHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOyB9CiAgICAgYm9vbCByZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSBjb25zdCB7IHJldHVybiBt
X3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsgfQor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
V2l0aEFuaW1hdGlvbjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbCwgYm9vbCByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uID0gZmFsc2UpOworI2Vsc2UKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAK
ICAgICBib29sIGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pc01v
bml0b3JpbmdXaGVlbEV2ZW50czsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoYm9vbCk7CkBAIC0xNzEsNiArMTc2LDkgQEAgcHJpdmF0ZToKICAg
ICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM7CiAK
ICAgICBib29sIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsIHsgZmFsc2UgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgbV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24geyBmYWxzZSB9OworI2VuZGlmCiAg
ICAgYm9vbCBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCAxNTFhYzI5
ZjhhLi5jOWYwNDRiNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5oCkBAIC04Miw4ICs4MiwxNyBAQCBwdWJsaWM6CiAgICAgLy8gVXBkYXRlcyBG
cmFtZVZpZXcvUmVuZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBHcmFwaGljc0xheWVycy4K
ICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUmLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgPSAwOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAvLyBDYWxsZWQgZm9yIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzIHVwZGF0ZXMuCisg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCAvKmlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyovKSB7IH0KKworICAgIC8vIENhbGxlZCBmb3IgcmVxdWVzdGVkIHNj
cm9sbCBwb3NpdGlvbiB1cGRhdGVzLgorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgLypzY3Jv
bGxQb3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCovLCBib29s
IC8qd2l0aEFuaW1hdGlvbiovKSB7IH0KKyNlbHNlCiAgICAgLy8gQ2FsbGVkIGZvciByZXF1ZXN0
ZWQgc2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMuCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiAv
KnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKi8p
IHsgfQorI2VuZGlmCisKIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxpbmcvem9vbWluZyBoYXMg
Y2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2aWV3cG9ydC1jb25zdHJh
aW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5GcmFtZVZpZXdwb3J0Q2hh
bmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwgZG91YmxlIHNjYWxl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYxLi42MmUwNDdkMTc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3LDE2IEBAIHZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Ny
b2xsaW5nU3RhdGVOCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCiB7CiAg
ICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3JvbGxpbmdTdGF0ZU5vZGUg
PSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7Ci0gICAg
aWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpCi0gICAgICAgIHNjcm9sbGlu
Z1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgp
LCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5n
U3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCgpKTsKKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewor
ICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCgK
KyAgICAgICAgICAgIHNjcm9sbGluZ05vZGVJRCgpCisgICAgICAgICAgICAsIHNjcm9sbGluZ1N0
YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpCisgICAgICAgICAgICAsIHNjcm9sbGlu
Z1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwoKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgICAgICAsIHNjcm9sbGlu
Z1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKQorI2VuZGlm
CisgICAgICAgICAgICApOworICAgIH0KIAogICAgIG1faXNGaXJzdENvbW1pdCA9IGZhbHNlOwog
fQpAQCAtMTU3LDYgKzE2NSwzNSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpz
Y3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBTY3JvbGxQb3NpdGlvbgogICAgIHNjcm9s
bFRvKGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpICsgZGVsdGEsIFNjcm9sbFR5cGU6OlVzZXIsIGNs
YW1wKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xs
VHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wLCBib29sIG5lZWRTeW5j
U2Nyb2xsUG9zaXRpb24pCit7CisgICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBv
c2l0aW9uKSB7CisgICAgICAgIC8vIFNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2Vi
IHByb2Nlc3MuCisgICAgICAgIGlmIChyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbigpICYmIG5l
ZWRTeW5jU2Nyb2xsUG9zaXRpb24pCisgICAgICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xs
aW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246
OlN5bmMpOworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uoc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsK
KyAgICAgICAgc2V0UmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oZmFsc2UpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgLy8gSWYgZHVyaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgbmVl
ZCB0byBzdG9wIGl0IGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuCisgICAgaWYgKHNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MoKSkKKyAgICAgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFu
aW1hdGlvbih0cnVlKTsKKyAgICBzY3JvbGxpbmdUcmVlKCkuc2V0SXNIYW5kbGluZ1Byb2dyYW1t
YXRpY1Njcm9sbChzY3JvbGxUeXBlID09IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyk7CisgICAg
CisgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHBv
c2l0aW9uLCBjbGFtcCk7CisgICAgCisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3Ry
ZWFtIDw8ICJTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSAiIDw8IHNjcm9sbGluZ05vZGVJRCgp
IDw8ICIgc2Nyb2xsVG8gIiA8PCBwb3NpdGlvbiA8PCAiIChkZWx0YSBmcm9tIGxhc3QgY29tbWl0
dGVkIHBvc2l0aW9uICIgPDwgKG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uIC0gbV9jdXJy
ZW50U2Nyb2xsUG9zaXRpb24pIDw8ICIpIik7CisKKyAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJl
bnRTY3JvbGxQb3NpdGlvbigpOworICAgIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKTsK
KworICAgIHNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oZmFsc2UpOworICAgIHNl
dFJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGZhbHNlKTsKKyAgICBzY3JvbGxpbmdUcmVlKCku
c2V0SXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbChmYWxzZSk7Cit9CisjZWxzZQogdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYgcG9z
aXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcCBjbGFtcCkK
IHsKICAgICBpZiAocG9zaXRpb24gPT0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24pCkBAIC0xNzMs
MTQgKzIxMCwyMCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZQogCiAgICAgc2Nyb2xsaW5nVHJl
ZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOwogfQorI2VuZGlmCiAK
IHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNo
YW5nZWQoKQogewogICAgIHJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKTsKICAgICByZXBvc2l0
aW9uUmVsYXRlZExheWVycygpOwogCi0gICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlmeVJlbGF0ZWRO
b2Rlc0FmdGVyU2Nyb2xsUG9zaXRpb25DaGFuZ2UoKnRoaXMpOwotICAgIHNjcm9sbGluZ1RyZWUo
KS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcyk7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBpZiAoIXJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKCkpIAorI2VuZGlmCisg
ICAgeworICAgICAgICBzY3JvbGxpbmdUcmVlKCkubm90aWZ5UmVsYXRlZE5vZGVzQWZ0ZXJTY3Jv
bGxQb3NpdGlvbkNoYW5nZSgqdGhpcyk7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcyk7CisgICAgfQogfQogCiBib29sIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxQb3NpdGlvbkFuZExheW91dFZpZXdwb3J0TWF0Y2goY29u
c3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UmVjdD4pCkBAIC0yNjYsNiAr
MzA5LDM3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVz
KFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAgdHMuZHVtcFByb3BlcnR5KCJz
Y3JvbGxhYmxlIGFyZWEgcGFyYW1ldGVycyIsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKTsK
IH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlOjpzZXRSZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihib29sIHdpdGhBbmltYXRpb24p
Cit7CisgICAgbV9yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbiA9IHdpdGhBbmltYXRpb247Cit9
CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RTY3JvbGxXaXRoQW5p
bWF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlv
bjsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyhib29sIGluUHJvZ3Jlc3MpCit7CisgICAgbV9zY3JvbGxBbmltYXRpb25J
blByb2dyZXNzID0gaW5Qcm9ncmVzczsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzczsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29sIHN0b3ApCit7
CisgICAgbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uID0gc3RvcDsKK30KKworYm9v
bCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbjsKK30KKyNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDRjYmY0ZDFhZjAu
LjU1MGI3MWM4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNjAsNyArNjAsMTEgQEAgcHVi
bGljOgogICAgIEZsb2F0U2l6ZSBzY3JvbGxEZWx0YVNpbmNlTGFzdENvbW1pdCgpIGNvbnN0IHsg
cmV0dXJuIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uIC0gbV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9z
aXRpb247IH0KIAogICAgIC8vIFRoZXNlIGFyZSBpbXBlcmF0aXZlOyB0aGV5IGFkanVzdCB0aGUg
c2Nyb2xsaW5nIGxheWVycy4KKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Ny
b2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBT
Y3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMs
IGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiA9IGZhbHNlKTsKKyNlbHNlCiAgICAgdm9pZCBz
Y3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIs
IFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdl
cyk7CisjZW5kaWYKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYsIFNjcm9sbFBv
c2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcyk7CiAKICAg
ICB2b2lkIHdhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYg
cG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UmVjdD4gb3ZlcnJpZGVMYXlvdXRWaWV3cG9ydCA9IHsg
fSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb246OlN5bmMpOwpAQCAtOTEsNiArOTUsMTUgQEAgcHVibGljOgogICAgIGNvbnN0IExheWVy
UmVwcmVzZW50YXRpb24mIHNjcm9sbENvbnRhaW5lckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9z
Y3JvbGxDb250YWluZXJMYXllcjsgfQogICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNj
cm9sbGVkQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsZWRDb250ZW50c0xh
eWVyOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2V0UmVxdWVzdFNj
cm9sbFdpdGhBbmltYXRpb24oYm9vbCk7CisgICAgYm9vbCByZXF1ZXN0U2Nyb2xsV2l0aEFuaW1h
dGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29s
KTsKKyAgICBib29sIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSBjb25zdDsKKyAgICB2b2lk
IHNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oYm9vbCk7CisgICAgYm9vbCBuZWVk
c1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVk
OgogICAgIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxp
bmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKIApAQCAtMTQ4LDYgKzE2MSwxMiBAQCBwcml2
YXRlOgogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1l
dGVyczsKICAgICBib29sIG1faXNGaXJzdENvbW1pdCB7IHRydWUgfTsKIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgYm9vbCBtX3JlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uIHsgZmFs
c2UgfTsKKyAgICBib29sIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24geyBmYWxzZSB9OworI2Vu
ZGlmCisKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXI7CiAg
ICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAppbmRleCA4OTExNDkxMDNkLi43MTQ3Njk2NDQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKQEAgLTU0LDYgKzU0LDIxIEBA
IGVudW0gY2xhc3MgU2Nyb2xsUG9zaXRpb25DbGFtcCA6IHVpbnQ4X3QgewogICAgIFRvQ29udGVu
dEVkZ2VzLAogfTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2aW9yVHlwZSA6IHVpbnQ4X3QgeworICAg
IEluc3RhbnQsCisgICAgU21vb3RoLAorfTsKKyNlbmRpZgorCitlbnVtIGNsYXNzIFNjcm9sbEJl
aGF2aW9yU3RhdHVzIDogdWludDhfdCB7CisgICAgTm90SW5BbmltYXRpb24sCisgICAgV2ViQW5p
bWF0aW9uVGltZXJTdGFydGVkLAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShB
U1lOQ19TQ1JPTExJTkcpCisgICAgSW5VSU5hdGl2ZUFuaW1hdGlvbiwKKyNlbmRpZgorfTsKKwog
aW5saW5lIFNjcm9sbERpcmVjdGlvbiBsb2dpY2FsVG9QaHlzaWNhbChTY3JvbGxMb2dpY2FsRGly
ZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBpc1ZlcnRpY2FsLCBib29sIGlzRmxpcHBlZCkKIHsKICAg
ICBzd2l0Y2ggKGRpcmVjdGlvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNw
cAppbmRleCBiMTI2YTljMmI3Li42YzE1ODIwYTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcApAQCAtNDYxLDEwICs0NjEsMTQgQEAgdm9pZCBTY3JvbGxWaWV3Ojpjb21w
bGV0ZVVwZGF0ZXNBZnRlclNjcm9sbFRvKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQogICAg
IHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxpbmcoKTsKIH0KIAotdm9pZCBTY3Jv
bGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9z
aXRpb24pCit2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgYm9vbC8qIGFuaW1hdGVkKi8pCiB7CiAgICAgTE9HX1dJ
VEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3Np
dGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZShTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpOworI2VuZGlmCisKICAgICBpZiAocHJvaGli
aXRzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDc1LDEzICs0NzksMTQgQEAg
dm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYg
c2Nyb2xsUG9zaXRpb24pCiAKICAgICBTY3JvbGxQb3NpdGlvbiBuZXdTY3JvbGxQb3NpdGlvbiA9
ICFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSA/IGFkanVzdFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2Uo
c2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xsUG9zaXRpb247CiAKLSAgICBpZiAoKCFkZWxlZ2F0ZXNT
Y3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlVzZXIpICYm
IG5ld1Njcm9sbFBvc2l0aW9uID09IHRoaXMtPnNjcm9sbFBvc2l0aW9uKCkpCisgICAgaWYgKCgh
ZGVsZWdhdGVzU2Nyb2xsaW5nKCkgfHwgY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBl
OjpVc2VyKSAmJiAhaXNTY3JvbGxJblByb2dyZXNzKCkgJiYgbmV3U2Nyb2xsUG9zaXRpb24gPT0g
dGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHJlcXVl
c3RTY3JvbGxQb3NpdGlvblVwZGF0ZShuZXdTY3JvbGxQb3NpdGlvbikpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIHVwZGF0ZVNjcm9sbGJhcnMobmV3U2Nyb2xsUG9zaXRpb24pOworICAgIHNldFNj
cm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7
CiB9CiAKIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24s
IFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtNTM4LDcgKzU0Myw4IEBAIHZvaWQg
U2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgZGVzaXJl
ZFBvc2l0aW9uKQogICAgIAogICAgIGlmICghbWFuYWdlc1Njcm9sbGJhcnMoKSkgewogICAgICAg
ICBpZiAoc2Nyb2xsT3JpZ2luQ2hhbmdlZCgpKSB7Ci0gICAgICAgICAgICBTY3JvbGxhYmxlQXJl
YTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKHNjcm9sbE9mZnNldEZyb21Qb3NpdGlv
bihkZXNpcmVkUG9zaXRpb24pKTsKKyAgICAgICAgICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKGRlc2lyZWRQb3NpdGlvbikpCisgICAgICAgICAgICAgICAgU2Nyb2xsYWJsZUFy
ZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRp
b24oZGVzaXJlZFBvc2l0aW9uKSk7CiAgICAgICAgICAgICByZXNldFNjcm9sbE9yaWdpbkNoYW5n
ZWQoKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmgKaW5kZXggNDMwMTYwZDZhZS4uNTM5ODEwODM5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuaApAQCAtMjYwLDcgKzI2MCw3IEBAIHB1YmxpYzoKICAgICBTY3JvbGxQ
b3NpdGlvbiBjYWNoZWRTY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2Ny
b2xsUG9zaXRpb247IH0KIAogICAgIC8vIEZ1bmN0aW9ucyBmb3Igc2Nyb2xsaW5nIHRoZSB2aWV3
LgotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlv
biYpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3Np
dGlvbiYsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSk7CiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBJ
bnRTaXplJiBzKSB7IHJldHVybiBzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbigpICsg
cyk7IH0KIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gc2Nyb2xscyBieSBsaW5lcywgcGFnZXMgb3Ig
cGl4ZWxzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4
IDk2ZDBmMzAwYjMuLmNmMzlkYWZiYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5jcHAKQEAgLTcxLDYgKzcxLDkgQEAgU2Nyb2xsYWJsZUFyZWE6OlNjcm9sbGFi
bGVBcmVhKCkKICAgICAsIG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZChmYWxzZSkKICAgICAsIG1fY3Vy
cmVudFNjcm9sbFR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFNjcm9sbFR5cGU6OlVzZXIpKQog
ICAgICwgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZShmYWxzZSkKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgICwgbV9jdXJyZW50
U2Nyb2xsQmVoYXZpb3JUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihTY3JvbGxCZWhhdmlvclR5
cGU6Okluc3RhbnQpKQorI2VuZGlmCiB7CiB9CiAKQEAgLTEwNCw2ICsxMDcsMTEgQEAgZmxvYXQg
U2Nyb2xsYWJsZUFyZWE6OmFkanVzdFNjcm9sbFN0ZXBGb3JGaXhlZENvbnRlbnQoZmxvYXQgc3Rl
cCwgU2Nyb2xsYmFyT3JpZW4KICAgICByZXR1cm4gc3RlcDsKIH0KIAorYm9vbCBTY3JvbGxhYmxl
QXJlYTo6aXNTY3JvbGxJblByb2dyZXNzKCkKK3sKKyAgICByZXR1cm4gbV9jdXJyZW50U2Nyb2xs
QmVoYXZpb3JTdGF0dXMgIT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOwor
fQorCiBib29sIFNjcm9sbGFibGVBcmVhOjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIpCiB7CiAg
ICAgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb247CkBAIC0yMjEsMTYgKzIyOSwxNSBA
QCBib29sIFNjcm9sbGFibGVBcmVhOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91
Y2hFdmVudCYgdG91Y2hFdmVudCkKIC8vIE5PVEU6IE9ubHkgY2FsbGVkIGZyb20gSW50ZXJuYWxz
IGZvciB0ZXN0aW5nLgogdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUlu
dGVybmFscyhjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKIHsKKyAgICBpZiAocmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKSkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgc2V0U2Nyb2xsT2Zmc2V0RnJvbUFuaW1hdGlvbihvZmZzZXQp
OwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9u
KGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogewotICAgIFNjcm9sbFBvc2l0aW9uIHBvc2l0
aW9uID0gc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCk7Ci0gICAgaWYgKHJlcXVlc3RT
Y3JvbGxQb3NpdGlvblVwZGF0ZShwb3NpdGlvbikpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNj
cm9sbFBvc2l0aW9uQ2hhbmdlZChwb3NpdGlvbik7CisgICAgc2Nyb2xsUG9zaXRpb25DaGFuZ2Vk
KHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKTsKIH0KIAogdm9pZCBTY3JvbGxhYmxl
QXJlYTo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaAppbmRleCBkNzQzOGMxNWNkLi4xNGI2MTBiZWE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTYyLDYgKzYyLDEwIEBAIGlubGluZSBpbnQg
b2Zmc2V0Rm9yT3JpZW50YXRpb24oU2Nyb2xsT2Zmc2V0IG9mZnNldCwgU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50CiAKIGNsYXNzIFNjcm9sbGFibGVBcmVhIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPFNjcm9sbGFibGVBcmVhPiB7CiBwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBp
c1Njcm9sbEluUHJvZ3Jlc3MoKTsKKyAgICBTY3JvbGxCZWhhdmlvclN0YXR1cyBjdXJyZW50U2Ny
b2xsQmVoYXZpb3JTdGF0dXMoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRTY3JvbGxCZWhhdmlv
clN0YXR1czsgfQorICAgIHZvaWQgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZp
b3JTdGF0dXMgc3RhdHVzKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzID0gc3RhdHVz
OyB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNj
cm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYs
IFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIHZvaWQgc2Ny
b2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKFNjcm9sbGJhck9yaWVudGF0aW9uLCBmbG9hdCBv
ZmZzZXQpOwpAQCAtMjQyLDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsVHlwZSBjdXJy
ZW50U2Nyb2xsVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbFR5cGU+KG1f
Y3VycmVudFNjcm9sbFR5cGUpOyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsVHlwZShTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihzY3JvbGxUeXBlKTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3VycmVudFNjcm9s
bEJlaGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbEJlaGF2aW9y
VHlwZT4obV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQgc2V0Q3VycmVu
dFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVoYXZpb3JUeXBl
KSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihz
Y3JvbGxCZWhhdmlvclR5cGUpOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xsU2hvdWxkQ2xl
YXJMYXRjaGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hl
ZFN0YXRlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZShib29s
IHNob3VsZENsZWFyKSB7IG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUgPSBzaG91bGRD
bGVhcjsgfQogCkBAIC0zNzgsNiArMzg3LDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2N1
cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4IHsgMCB9OwogI2VuZGlmCiAKKyAgICBTY3JvbGxC
ZWhhdmlvclN0YXR1cyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyB7IFNjcm9sbEJlaGF2
aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiB9OworCiAgICAgLy8gVGhlcmUgYXJlIDggcG9zc2li
bGUgY29tYmluYXRpb25zIG9mIHdyaXRpbmcgbW9kZSBhbmQgZGlyZWN0aW9uLiBTY3JvbGwgb3Jp
Z2luIHdpbGwgYmUgbm9uLXplcm8gaW4gdGhlIHggb3IgeSBheGlzCiAgICAgLy8gaWYgdGhlcmUg
aXMgYW55IHJldmVyc2VkIGRpcmVjdGlvbiBvciB3cml0aW5nLW1vZGUuIFRoZSBjb21iaW5hdGlv
bnMgYXJlOgogICAgIC8vIHdyaXRpbmctbW9kZSAvIGRpcmVjdGlvbiAgICAgc2Nyb2xsT3JpZ2lu
LngoKSBzZXQgICAgc2Nyb2xsT3JpZ2luLnkoKSBzZXQKQEAgLTQwMyw2ICs0MTQsOSBAQCBwcml2
YXRlOgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZCA6IDE7CiAgICAgdW5zaWdu
ZWQgbV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9sbFR5cGUKICAgICB1bnNpZ25lZCBt
X3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHVuc2lnbmVkIG1fY3VycmVudFNj
cm9sbEJlaGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggZjhkM2E0OTI1YS4u
NmQxZjg1N2M4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTU4
MSwyMCArNTgxLDI4IEBAIHN0YXRpYyB2b2lkIHNldHVwV2hlZWxFdmVudE1vbml0b3IoUmVuZGVy
TGF5ZXImIGxheWVyKQogICAgIGxheWVyLnNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVudFRl
c3RNb25pdG9yKHBhZ2Uud2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwogfQogCi12b2lkIFJlbmRl
ckJveDo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBT
Y3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxMZWZ0KGlu
dCBuZXdMZWZ0LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENs
YW1waW5nIGNsYW1waW5nKQogewogICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkgfHwgIWxheWVy
KCkpCiAgICAgICAgIHJldHVybjsKICAgICBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKCpsYXllcigp
KTsKLSAgICBsYXllcigpLT5zY3JvbGxUb1hQb3NpdGlvbihuZXdMZWZ0LCBzY3JvbGxUeXBlLCBj
bGFtcGluZyk7CisgICAgbGF5ZXIoKS0+c2Nyb2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Nyb2xs
VHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldFNjcm9s
bFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNs
YW1waW5nKQordm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxU
eXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQog
ewogICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkgfHwgIWxheWVyKCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKCpsYXllcigpKTsKLSAgICBsYXllcigpLT5z
Y3JvbGxUb1lQb3NpdGlvbihuZXdUb3AsIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICBsYXll
cigpLT5zY3JvbGxUb1lQb3NpdGlvbihuZXdUb3AsIHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFt
cGluZyk7Cit9CisKK3ZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRl
ZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAo
KSB8fCAhbGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHNldHVwV2hlZWxFdmVudE1vbml0
b3IoKmxheWVyKCkpOworICAgIGxheWVyKCktPnNjcm9sbFRvUG9zaXRpb24ocG9zaXRpb24sIHNj
cm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7CiB9CiAKIHZvaWQgUmVuZGVyQm94OjphYnNv
bHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhY2N1
bXVsYXRlZE9mZnNldCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRl
eCA0OTU0ODE0MDU0Li4yMjE5MjgwNTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCkBAIC0yNDcsOCArMjQ3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IHNjcm9sbFRv
cCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IHNjcm9sbFdpZHRoKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9s
bExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpD
bGFtcGVkKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwg
U2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgdmlydHVhbCB2
b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkID0gZmFsc2Us
IFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZpcnR1YWwg
dm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkID0gZmFsc2Us
IFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2V0
U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlLCBib29sIGFu
aW1hdGVkID0gZmFsc2UsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQp
OwogCiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X21hcmdpbkJveC50b3AoKTsgfQogICAgIExheW91dFVuaXQgbWFyZ2luQm90dG9tKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9tYXJnaW5Cb3guYm90dG9tKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDU4ODQ5OGNkZTUuLmEzNTQyOTRlYWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjU3NiwxNiArMjU3
NiwyNCBAQCB2b2lkIFJlbmRlckxheWVyOjphcHBseVBvc3RMYXlvdXRTY3JvbGxQb3NpdGlvbklm
TmVlZGVkKCkKICAgICBtX3Bvc3RMYXlvdXRTY3JvbGxQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsK
IH0KIAotdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5
cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckxheWVy
OjpzY3JvbGxUb1hQb3NpdGlvbihpbnQgeCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFu
aW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBTY3JvbGxQb3NpdGlvbiBw
b3NpdGlvbih4LCBtX3Njcm9sbFBvc2l0aW9uLnkoKSk7Ci0gICAgc2Nyb2xsVG9PZmZzZXQoc2Ny
b2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOwor
ICAgIHNjcm9sbFRvUG9zaXRpb24ocG9zaXRpb24sIHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFt
cGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5k
ZXJMYXllcjo6c2Nyb2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwg
Ym9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgU2Nyb2xsUG9z
aXRpb24gcG9zaXRpb24obV9zY3JvbGxQb3NpdGlvbi54KCksIHkpOwotICAgIHNjcm9sbFRvT2Zm
c2V0KHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1w
aW5nKTsKKyAgICBzY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRl
ZCwgY2xhbXBpbmcpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1Bvc2l0aW9uKGNv
bnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29s
IGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3sKKyAgICBpZiAoYW5pbWF0ZWQp
CisgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9z
aXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgZWxzZQorICAgICAg
ICBzY3JvbGxUb09mZnNldChzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3Jv
bGxUeXBlLCBjbGFtcGluZyk7CiB9CiAKIFNjcm9sbE9mZnNldCBSZW5kZXJMYXllcjo6Y2xhbXBT
Y3JvbGxPZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiBzY3JvbGxPZmZzZXQpIGNvbnN0CkBAIC0y
NTk1LDIzICsyNjAzLDY0IEBAIFNjcm9sbE9mZnNldCBSZW5kZXJMYXllcjo6Y2xhbXBTY3JvbGxP
ZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiBzY3JvbGxPZmZzZXQpIGNvCiAKIHZvaWQgUmVuZGVy
TGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0LCBT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogeworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3Vy
cmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpOworI2Vu
ZGlmCisKICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1waW5nID09
IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0
KSA6IHNjcm9sbE9mZnNldDsKLSAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5z
Y3JvbGxPZmZzZXQoKSkKKyAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3Jv
bGxPZmZzZXQoKSkgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpCisgICAgICAgIC8vIElmIFVJU2Nyb2xsVmlldyBpcyBwZXJmb3JtaW5nIGEgc2Ny
b2xsIGFuaW1hdGlvbiwgdGhlIHNjcm9sbCBvZmZzZXQgb2YgdGhlIFdlYiBwcm9jZXNzIG1pZ2h0
IGJlIG92ZXJyaWRkZW4uCisgICAgICAgIC8vIFNvIHdlIG5lZWQgdG8gY2FsbCByZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUgaGVyZSBhbmQgbGV0IGl0IGJlIGNoZWNrZWQgb24gdGhlIFVJIHBy
b2Nlc3MuCisgICAgICAgIC8vIElmIHRoZSBzY3JvbGwgb2Zmc2V0IG9uIHRoZSBVSSBwcm9jZXNz
IGlzIGRpZmZlcmVudCwgdGhlIGNvcnJlY3Qgc2Nyb2xsIG9mZnNldCBuZWVkcyB0byBzeW5jIGJh
Y2sgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9y
U3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluVUlOYXRpdmVBbmltYXRpb24pCisg
ICAgICAgICAgICByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9t
T2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47Cisg
ICAgfQogCiAgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgp
OwogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwogCiAgICAgYm9vbCBoYW5k
bGVkID0gZmFsc2U7CiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKLSAgICBpZiAoU2Nyb2xs
aW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZSgpLnNjcm9sbGluZ0Nv
b3JkaW5hdG9yKCkpCi0gICAgICAgIGhhbmRsZWQgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+cmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKCp0aGlzLCBzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQo
Y2xhbXBlZFNjcm9sbE9mZnNldCkpOworICAgIGhhbmRsZWQgPSByZXF1ZXN0U2Nyb2xsUG9zaXRp
b25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpKTsK
ICNlbmRpZgogCiAgICAgaWYgKCFoYW5kbGVkKQogICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhv
dXRBbmltYXRpb24oY2xhbXBlZFNjcm9sbE9mZnNldCwgY2xhbXBpbmcpOwogCiAgICAgc2V0Q3Vy
cmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICBzZXRTY3JvbGxCZWhhdmlv
clN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworfQorCitib29s
IFJlbmRlckxheWVyOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9z
aXRpb24mIHBvc2l0aW9uKQoreworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgaWYg
KFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5zY3Jv
bGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3It
PnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgcG9zaXRpb24pOworI2VuZGlmCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9s
bFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNj
cm9sbFR5cGUpOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9y
VHlwZTo6U21vb3RoKTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9s
bFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xs
VHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlm
CisKKyAgICAvLyBOb24taU9TIHBsYXRmb3JtcyBwZXJmb3JtIGluc3RhbnQgc2Nyb2xsIGluc3Rl
YWQuCisgICAgU2Nyb2xsT2Zmc2V0IG5ld1Njcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9s
bENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQob2Zmc2V0KSA6IG9mZnNldDsK
KyAgICBpZiAobmV3U2Nyb2xsT2Zmc2V0ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAg
ICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKG5ld1Njcm9s
bE9mZnNldCk7CisgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsK
IH0KIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBv
c2l0aW9uKQpAQCAtMjY0Niw3ICsyNjk1LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8o
Y29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uKQogI2VuZGlmCiAgICAgfQogICAgIAotICAg
IGlmIChtX3Njcm9sbFBvc2l0aW9uID09IG5ld1Bvc2l0aW9uKSB7CisgICAgaWYgKG1fc2Nyb2xs
UG9zaXRpb24gPT0gbmV3UG9zaXRpb24gJiYgIWlzU2Nyb2xsSW5Qcm9ncmVzcygpKSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBOb3RoaW5nIGd1YXJhbnRlZXMgd2UgZ2V0IGEgc2Nyb2xsVG8oKSB3aXRo
IGFuIHVuY2hhbmdlZCBwb3NpdGlvbiBhdCB0aGUgZW5kIG9mIGEgdXNlciBnZXN0dXJlLgogICAg
ICAgICAvLyBUaGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgcHJvYmFibHkgbmVlZHMgdG8gbWVzc2Fn
ZSB0aGUgbWFpbiB0aHJlYWQgd2hlbiBhIGdlc3R1cmUgZW5kcy4KICAgICAgICAgaWYgKHJlcXVp
cmVzU2Nyb2xsUG9zaXRpb25SZWNvbmNpbGlhdGlvbigpKSB7CkBAIC0yNzkxLDEwICsyODQwLDEx
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVj
dCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgIExheW91dFJlY3QgcmV2ZWFsUmVj
dCA9IGdldFJlY3RUb0V4cG9zZShsYXllckJvdW5kcywgbG9jYWxFeHBvc2VSZWN0LCBpbnNpZGVG
aXhlZCwgb3B0aW9ucy5hbGlnblgsIG9wdGlvbnMuYWxpZ25ZKTsKIAogICAgICAgICBTY3JvbGxP
ZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNl
dCgpICsgdG9JbnRTaXplKHJvdW5kZWRJbnRSZWN0KHJldmVhbFJlY3QpLmxvY2F0aW9uKCkpKTsK
LSAgICAgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkpIHsKKyAg
ICAgICAgaWYgKGlzU2Nyb2xsSW5Qcm9ncmVzcygpIHx8IGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0g
c2Nyb2xsT2Zmc2V0KCkpIHsKICAgICAgICAgICAgIFNjcm9sbE9mZnNldCBvbGRTY3JvbGxPZmZz
ZXQgPSBzY3JvbGxPZmZzZXQoKTsKLSAgICAgICAgICAgIHNjcm9sbFRvT2Zmc2V0KGNsYW1wZWRT
Y3JvbGxPZmZzZXQpOwotICAgICAgICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXREaWZmZXJlbmNl
ID0gc2Nyb2xsT2Zmc2V0KCkgLSBvbGRTY3JvbGxPZmZzZXQ7CisgICAgICAgICAgICBib29sIGFu
aW1hdGVkID0gKGJveC0+ZWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJl
aGF2aW9yLCAqYm94LT5lbGVtZW50KCkpKTsKKyAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zm
c2V0RGlmZmVyZW5jZSA9IGNsYW1wZWRTY3JvbGxPZmZzZXQgLSBvbGRTY3JvbGxPZmZzZXQ7CiAg
ICAgICAgICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZSgtc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSk7
CiAgICAgICAgICAgICBuZXdSZWN0ID0gTGF5b3V0UmVjdChib3gtPmxvY2FsVG9BYnNvbHV0ZVF1
YWQoRmxvYXRRdWFkKEZsb2F0UmVjdChsb2NhbEV4cG9zZVJlY3QpKSwgVXNlVHJhbnNmb3Jtcyku
Ym91bmRpbmdCb3goKSk7CiAgICAgICAgIH0KQEAgLTI4MTQsMTAgKzI4NjQsMTMgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0
ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0g
ZnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdChMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0
KTsKICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IGV4cG9zZVJlY3QgPSBnZXRSZWN0VG9FeHBv
c2Uodmlld1JlY3QsIGFic29sdXRlUmVjdCwgaW5zaWRlRml4ZWQsIG9wdGlvbnMuYWxpZ25YLCBv
cHRpb25zLmFsaWduWSk7CiAKLSAgICAgICAgICAgICAgICBJbnRQb2ludCBzY3JvbGxPZmZzZXQo
cm91bmRlZEludFBvaW50KGV4cG9zZVJlY3QubG9jYXRpb24oKSkpOworICAgICAgICAgICAgICAg
IEludFBvaW50IHNjcm9sbFBvc2l0aW9uKHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0
aW9uKCkpKTsKICAgICAgICAgICAgICAgICAvLyBBZGp1c3Qgb2Zmc2V0cyBpZiB0aGV5J3JlIG91
dHNpZGUgb2YgdGhlIGFsbG93YWJsZSByYW5nZS4KLSAgICAgICAgICAgICAgICBzY3JvbGxPZmZz
ZXQgPSBzY3JvbGxPZmZzZXQuY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50
KGZyYW1lVmlldy5jb250ZW50c1NpemUoKSkpOwotICAgICAgICAgICAgICAgIGZyYW1lVmlldy5z
ZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxPZmZzZXQpOworICAgICAgICAgICAgICAgIHNjcm9sbFBv
c2l0aW9uID0gc2Nyb2xsUG9zaXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIElu
dFBvaW50KGZyYW1lVmlldy5jb250ZW50c1NpemUoKSkpOworICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBTaG91bGQgd2UgdXNlIGNvbnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/
CisgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJh
ZnRzL2lzc3Vlcy8yOTc3CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9IG93bmVyRWxl
bWVudC0+Y29udGVudERvY3VtZW50KCkgJiYgb3duZXJFbGVtZW50LT5jb250ZW50RG9jdW1lbnQo
KS0+ZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVoYXZp
b3IsICpvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSk7
CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0
aW9uLCBhbmltYXRlZCk7CiAKICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5zaG91bGRBbGxv
d0Nyb3NzT3JpZ2luU2Nyb2xsaW5nID09IFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6
OlllcyB8fCBmcmFtZVZpZXcuc2FmZVRvUHJvcGFnYXRlU2Nyb2xsVG9QYXJlbnQoKSkgewogICAg
ICAgICAgICAgICAgICAgICBwYXJlbnRMYXllciA9IG93bmVyRWxlbWVudC0+cmVuZGVyZXIoKS0+
ZW5jbG9zaW5nTGF5ZXIoKTsKQEAgLTI4NTYsNyArMjkwOSwxMCBAQCB2b2lkIFJlbmRlckxheWVy
OjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9v
bCBpbnNpZAogICAgICAgICAgICAgLy8gQXZvaWQgc2Nyb2xsaW5nIHRvIHRoZSByb3VuZGVkIHZh
bHVlIG9mIHJldmVhbFJlY3QubG9jYXRpb24oKSBpZiB3ZSBkb24ndCBhY3R1YWxseSBuZWVkIHRv
IHNjcm9sbAogICAgICAgICAgICAgaWYgKHJldmVhbFJlY3QgIT0gdmlld1JlY3QpIHsKICAgICAg
ICAgICAgICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbFBvc2l0aW9uID0gcm91bmRlZElu
dFBvaW50KHJldmVhbFJlY3QubG9jYXRpb24oKSkuY29uc3RyYWluZWRCZXR3ZWVuKG1pblNjcm9s
bFBvc2l0aW9uLCBtYXhTY3JvbGxQb3NpdGlvbik7Ci0gICAgICAgICAgICAgICAgZnJhbWVWaWV3
LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7CisgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgp
PworICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRy
YWZ0cy9pc3N1ZXMvMjk3NworICAgICAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSByZW5kZXJl
cigpLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9w
dGlvbnMuYmVoYXZpb3IsICpyZW5kZXJlcigpLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkp
OworICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihjbGFtcGVkU2Ny
b2xsUG9zaXRpb24sIGFuaW1hdGVkKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8g
VGhpcyBpcyB0aGUgb3V0ZXJtb3N0IHZpZXcgb2YgYSB3ZWIgcGFnZSwgc28gYWZ0ZXIgc2Nyb2xs
aW5nIHRoaXMgdmlldyB3ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRl
eCA2Y2E0MjJiN2IyLi44Yzk3NzgzNzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIlBhaW50SW5mby5oIgogI2luY2x1
ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclB0ci5oIgorI2luY2x1ZGUgIlNjcm9s
bEJlaGF2aW9yLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTEzNCw2ICsxMzUsNyBAQCBzdHJ1Y3Qg
U2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMgewogICAgIGNvbnN0IFNjcm9sbEFsaWdubWVudCYg
YWxpZ25YIHsgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkIH07CiAgICAgY29u
c3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblkgeyBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVy
SWZOZWVkZWQgfTsKICAgICBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nIHNob3VsZEFs
bG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgeyBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5n
OjpObyB9OworICAgIFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yIHsgU2Nyb2xsQmVoYXZpb3I6OkF1
dG8gfTsKIH07CiAKIGNsYXNzIFJlbmRlckxheWVyIGZpbmFsIDogcHVibGljIFNjcm9sbGFibGVB
cmVhIHsKQEAgLTQzOSw5ICs0NDEsMTMgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsQnlSZWN1
cnNpdmVseShjb25zdCBJbnRTaXplJiBkZWx0YSwgU2Nyb2xsYWJsZUFyZWEqKiBzY3JvbGxlZEFy
ZWEgPSBudWxscHRyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXQo
Y29uc3QgU2Nyb2xsT2Zmc2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRp
YywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zm
c2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBp
bmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAKLSAgICB2b2lkIHNjcm9sbFRvWFBvc2l0
aW9uKGludCB4LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpD
bGFtcGVkKTsKLSAgICB2b2lkIHNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlLCBT
Y3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICBib29sIHJlcXVl
c3RTY3JvbGxQb3NpdGlvblVwZGF0ZShjb25zdCBTY3JvbGxQb3NpdGlvbiYpIG92ZXJyaWRlOwor
CisgICAgdm9pZCBzY3JvbGxUb1hQb3NpdGlvbihpbnQgeCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmlt
YXRlZCwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgdm9p
ZCBzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwgU2Ny
b2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgdm9pZCBzY3JvbGxU
b1Bvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRl
ZCwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAKICAgICAvLyBU
aGVzZSBhcmUgb25seSB1c2VkIGJ5IG1hcnF1ZWUuCiAgICAgdm9pZCBzY3JvbGxUb1hPZmZzZXQo
aW50IHgpIHsgc2Nyb2xsVG9PZmZzZXQoU2Nyb2xsT2Zmc2V0KHgsIHNjcm9sbE9mZnNldCgpLnko
KSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCA5Yzgx
ZDdkOWM4Li5mMzI3MWU0ZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCkBAIC03NDQsNyArNzQ0LDcgQEAgaW50IFJlbmRlckxpc3RCb3g6OnNjcm9sbExl
ZnQoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlbmRlckxpc3RCb3g6OnNldFNj
cm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgUmVuZGVyTGlz
dEJveDo6c2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5n
KQogewogfQogCkBAIC03NjEsNyArNzYxLDcgQEAgc3RhdGljIHZvaWQgc2V0dXBXaGVlbEV2ZW50
VGVzdE1vbml0b3IoUmVuZGVyTGlzdEJveCYgcmVuZGVyZXIpCiAgICAgcmVuZGVyZXIuc2Nyb2xs
QW5pbWF0b3IoKS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocmVuZGVyZXIucGFnZSgpLndoZWVs
RXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxU
b3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlckxp
c3RCb3g6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxD
bGFtcGluZykKIHsKICAgICAvLyBEZXRlcm1pbmUgYW4gaW5kZXggYW5kIHNjcm9sbCB0byBpdC4g
ICAgCiAgICAgaW50IGluZGV4ID0gbmV3VG9wIC8gaXRlbUhlaWdodCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5kZXggNjVkOTIyNmIzYS4uMjVjOTA2NTFkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC0xMDYsOCArMTA2
LDggQEAgcHJpdmF0ZToKICAgICBpbnQgc2Nyb2xsVG9wKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
aW50IHNjcm9sbFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IHNjcm9sbEhlaWdodCgp
IGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUs
IFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNj
cm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNjcm9sbExl
ZnQoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CisgICAg
dm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykg
b3ZlcnJpZGU7CiAKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0Jiwg
SGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5l
ciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCA5ZWU4ODg4NjcxLi40ZGY3ZDMxOGRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmNwcApAQCAtMzc2LDEzICszNzYsMTMgQEAgaW50IFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6c2Nyb2xsVG9wKCkgY29uc3QKICAgICByZXR1cm4gUmVuZGVyQmxvY2tG
bG93OjpzY3JvbGxUb3AoKTsKIH0KIAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQor
dm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbExlZnQoaW50IG5ld0xl
ZnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKQogewogICAgIGlmIChpbm5lclRl
eHRFbGVtZW50KCkpCiAgICAgICAgIGlubmVyVGV4dEVsZW1lbnQoKS0+c2V0U2Nyb2xsTGVmdChu
ZXdMZWZ0KTsKIH0KIAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9s
bFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlw
ZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpCiB7CiAgICAgaWYgKGlubmVyVGV4dEVsZW1lbnQoKSkK
ICAgICAgICAgaW5uZXJUZXh0RWxlbWVudCgpLT5zZXRTY3JvbGxUb3AobmV3VG9wKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuaAppbmRleCAzZjU3ODZkZmU0Li42NjZhYTMxNDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCkBAIC01Nyw4
ICs1Nyw4IEBAIHByaXZhdGU6CiAgICAgaW50IHNjcm9sbFRvcCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxIZWln
aHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxU
eXBlLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50
LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTY3Jv
bGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBp
bmcpIG92ZXJyaWRlOwogICAgIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3Jh
bnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLCBFbGVtZW50Kiogc3RvcEVsZW1lbnQgPSBu
dWxscHRyLCBSZW5kZXJCb3gqIHN0YXJ0Qm94ID0gbnVsbHB0ciwgY29uc3QgSW50UG9pbnQmIHdo
ZWVsRXZlbnRBYnNvbHV0ZVBvaW50ID0gSW50UG9pbnQoKSkgZmluYWw7CiAgICAgYm9vbCBsb2dp
Y2FsU2Nyb2xsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9h
dCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gMCkgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAxZTNkOGY0YTRmLi41M2MzOTI2Mjg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNzM5LDcgKzE3MzksNyBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnVuY29uc3RyYWluZWRTY3JvbGxUbyhFbGVt
ZW50JiBlbGVtZW50LCBkb3VibGUgeCwgZAogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50
LT52aWV3KCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Ig
fTsKIAotICAgIGVsZW1lbnQuc2Nyb2xsVG8oeyB4LCB5IH0sIFNjcm9sbENsYW1waW5nOjpVbmNs
YW1wZWQpOworICAgIGVsZW1lbnQuc2Nyb2xsVG8oU2Nyb2xsVG9PcHRpb25zKHgsIHkpLCBTY3Jv
bGxDbGFtcGluZzo6VW5jbGFtcGVkKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDM0NjYzM2U3MzcuLmRlMWNlZDRiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDEzICsxLDYwIEBACiAyMDE5
LTEyLTA1ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAotICAgICAgICBB
ZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg4MgorICAgICAgICBBZGQgc3VwcG9y
dCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBuYXRpdmUgc2Nyb2xsIGludGVyZmFjZXMg
Zm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA0OTM2CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
ICAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KIAorICAgICAg
ICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4g
T24gaW9zIHBsYXRmb3JtLCB1c2UgbmF0aXZlIGFuaW1hdGVkIHNjcm9sbGluZworICAgICAgICBp
bnRlcmZhY2VzIHRvIHBlcmZvcm1hbmNlIHNtb290aCBzY3JvbGwgYW5kIHNlbmQgdGhlIHNjcm9s
bCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisKKyAgICAgICAgKiBTaGFyZWQvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwOiBEZWFs
IHdpdGggcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIGVuY29kZSBhbmQgZGVj
b2RlLgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+
OjplbmNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU+OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpkdW1wKToKICAgICAgICAgKiBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKHBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwpOiBI
ZWxwIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHR3byBmbG9hdCBwb2ludHMgYXJlIG5vdCBlcXVhbCBi
dXQgaW4gdGhlIHNhbWUgZGV2aWNlIHBpeGVsLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9s
bFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbE9yaWdpbjphbmltYXRlZDpdKTogQWRkIGFu
aW1hdGVkIGZsYWcgdG8gc3RhcnQgYSBhbmltYXRlZCBzY3JvbGwgaWYgbmVlZGVkLgorICAgICAg
ICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjpdKTogU2Vu
ZCBzcm9sbCBlbmQgbWVzc2FnZSB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsT3JpZ2luOl0pOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50OjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbik6IFByb3ZpZGUgaW50ZXJmYWNlIGZv
ciBhbmltYXRlZCBzY3JvbGxpbmcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOiBBZGQgYW5p
bWF0ZWQgZmxhZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6IFN5bmMg
dGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVz
dHNTY3JvbGwpOiBBZGQgYW5pbWF0ZWQgc2Nyb2xsaW5nIGluZm8gdG8gbV9yZXF1ZXN0ZWRTY3Jv
bGxJbmZvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6
IFN5bmMgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1Ry
ZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IERpdHRvLiBJ
dCdzIHNwZWNpZmljIHRvIHRoZSByb290IG5vZGUuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3Jv
bGwpOiBBZGQgYW5pbWF0ZWQgaW5mby4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5n
VHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IERpdHRvLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tOgorICAgICAgICAoLVtXS1Njcm9sbGluZ05v
ZGVTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjpd
KTogU2VuZCBzY29sbCBlbmQgaW5mbyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJL
aXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0
ZXJDaGlsZHJlbik6IElmIHRoZSBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzIGlz
bid0IGVxdWFsIHRvIHRoZSBVSSBwcm9jZXNzLAorICAgICAgICB0aGUgc2Nyb2xsIHBvc2l0aW9u
IHNob3VsZCBiZSBzeW5jaHJvbml6ZWQsIGV2ZW4gdGhlcmUncyBubyBzY3JvbGxpbmcgcGVyZm9y
bWVkIGluIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TOjpyZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKTogQ2FsbGlu
ZyB0aGUgbmF0aXZlIGFuaW1hdGVkIHNjcm9sbGluZyBpbnRlcmZhY2UgZm9yIHNtb290aCBzY3Jv
bGwuCisgICAgICAgIElmIHRoZXJlJ3MgYSBzY3JvbGwgYW5pbWF0aW9uIHBlcmZvcm1pbmcsIGl0
IHNob3VsZCBiZSBzdG9wcGVkIGZpcnN0LCB0aGVuIHN0YXJ0IGEgbmV3IHNjcm9sbGluZy4KKyAg
ICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Ny
b2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbik6IFN5bmMgc2Nyb2xsIGVuZCBpbmZvIHRv
IHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0U2Nyb2xsKTogVG8gY2FsbCBk
aWZmZXJlbnQgZnVuY3Rpb25zIGZvciBzbW9vdGggYW5kIGluc3RhbnQgc2Nyb2xsLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmlt
YXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3IubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUpOgogCiAyMDE5
LTEyLTA0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKaW5kZXgg
ZTgyNmEzMGIxMi4uMzc4NzYyZDBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcApAQCAtMTUyLDYgKzE1Miw5IEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcywgc2Nyb2xsYWJsZUFyZWFQYXJhbWV0
ZXJzKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikKICAg
ICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgU0NST0xMSU5H
X05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbikKKyNlbmRpZgog
CiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19j
YXN0PEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4obm9kZS5zY3JvbGxDb250YWluZXJM
YXllcigpKTsKQEAgLTI2MCw3ICsyNjMsMTQgQEAgYm9vbCBBcmd1bWVudENvZGVyPFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTY3JvbGwKICAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgICAgIGJvb2wgc2Nyb2xsV2l0aEFuaW1hdGlvbjsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzY3JvbGxXaXRoQW5pbWF0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xsV2l0aEFuaW1hdGlvbik7CisjZWxzZQog
ICAgICAgICBub2RlLnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmIChu
b2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9s
bENvbnRhaW5lckxheWVyKSkgewpAQCAtNjA4LDYgKzYxOCw5IEBAIHN0YXRpYyB2b2lkIGR1bXAo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYgbm9kZSwg
Ym9vbCBjCiAgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllc09ubHkgfHwgbm9kZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbikpIHsKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0
aW9uIiwgbm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpKTsKICAgICAgICAgdHMuZHVtcFBy
b3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLWlzLXByb2dyYW1hdGljIiwgbm9kZS5y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSk7Cisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0
ZWQtc2Nyb2xsLXBvc2l0aW9uLXdpdGgtYW5pbWF0aW9uIiwgbm9kZS5yZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbldpdGhBbmltYXRpb24oKSk7CisjZW5kaWYKICAgICB9CiAKICAgICBpZiAoIWNoYW5n
ZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGM0MjY4YjVmNTQuLjIxMjI4
NTU4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQpAQCAtMTYxNiw2ICsxNjE2LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwb2ludHNFcXVh
bEluRGV2aWNlUGl4ZWxzKENHUG9pbnQgYSwgQ0dQb2ludCBiLCBmbG9hdCBkZXZpY2VTCiAgICAg
ICAgICYmIGZhYnMoYS55ICogZGV2aWNlU2NhbGVGYWN0b3IgLSBiLnkgKiBkZXZpY2VTY2FsZUZh
Y3RvcikgPCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpOwogfQogCitzdGF0
aWMgaW5saW5lIGJvb2wgcG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbChDR1BvaW50IGEs
IENHUG9pbnQgYiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAgcmV0dXJuIENHUm91
bmQoYS54ICogZGV2aWNlU2NhbGVGYWN0b3IpID09IENHUm91bmQoYi54ICogZGV2aWNlU2NhbGVG
YWN0b3IpCisgICAgICAgICYmIENHUm91bmQoYS55ICogZGV2aWNlU2NhbGVGYWN0b3IpID09IENH
Um91bmQoYi55ICogZGV2aWNlU2NhbGVGYWN0b3IpOworfQogc3RhdGljIENHU2l6ZSByb3VuZFNj
cm9sbFZpZXdDb250ZW50U2l6ZShjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgQ0dT
aXplIGNvbnRlbnRTaXplKQogewogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gcGFnZS5k
ZXZpY2VTY2FsZUZhY3RvcigpOwpAQCAtMjM0MCw5ICsyMzQ1LDEwIEBAIHN0YXRpYyBXZWJDb3Jl
OjpGbG9hdFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBj
b250ZW50T2ZmCiAgICAgcmV0dXJuIGNvbnRlbnRPZmZzZXQuY29uc3RyYWluZWRCZXR3ZWVuKFdl
YkNvcmU6OkZsb2F0UG9pbnQoKSwgV2ViQ29yZTo6RmxvYXRQb2ludChtYXhpbXVtQ29udGVudE9m
ZnNldCkpOwogfQogCi0tICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2Vi
Q29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6Oklu
dFBvaW50KXNjcm9sbE9yaWdpbgorLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRp
b246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJD
b3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQKIHsKLSAg
ICBpZiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8fCBfZHluYW1pY1ZpZXdwb3J0
VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6
aW5nKQorICAgIC8vIEFuaW1hdGVkIHNjcm9sbGluZyBzaG91bGRuJ3QgYmUgc2tpcHBlZC4KKyAg
ICBpZiAoIWFuaW1hdGVkICYmIChfY29tbWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uIHx8IF9k
eW5hbWljVmlld3BvcnRVcGRhdGVNb2RlICE9IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRl
TW9kZTo6Tm90UmVzaXppbmcpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJDb3JlOjpGbG9h
dFBvaW50IGNvbnRlbnRPZmZzZXQgPSBXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zm
c2V0RnJvbVBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCB0b0Zsb2F0U2l6ZShzY3JvbGxPcmlnaW4p
KTsKQEAgLTIzNTYsMTMgKzIzNjIsMjEgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29u
c3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKIAogICAg
IFtfc2Nyb2xsVmlldyBfc3RvcFNjcm9sbGluZ0FuZFpvb21pbmdBbmltYXRpb25zXTsKIAotICAg
IGlmICghQ0dQb2ludEVxdWFsVG9Qb2ludChjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXMsIFtfc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XSkpCi0gICAgICAgIFtfc2Nyb2xsVmll
dyBzZXRDb250ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlc107
CisgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRoZXkgYXJlIG5vdCBlcXVhbCwgYnV0IGluIHRo
ZSBzYW1lIGRldmljZSBwaXhlbCwgc28gX3Njcm9sbFZpZXcgd29uJ3QgY2hhbmdlLgorICAgIC8v
IFdlIG5lZWQgdG8gY2FsY3VsYXRlIHRoZSByb3VuZCB0byBkZXZpY2UgcGl4ZWwgaGVyZS4KKyAg
ICBpZiAoIXBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoY29udGVudE9mZnNldEluU2Ny
b2xsVmlld0Nvb3JkaW5hdGVzLCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0sIF9wYWdlLT5k
ZXZpY2VTY2FsZUZhY3RvcigpKSkKKyAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZz
ZXQ6Y29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzIGFuaW1hdGVkOmFuaW1hdGVk
XTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gSWYgd2UgaGF2ZW4ndCBjaGFuZ2VkIGFueXRoaW5n
LCB0aGVyZSB3b3VsZCBub3QgYmUgYW55IFZpc2libGVDb250ZW50UmVjdCB1cGRhdGUgc2VudCB0
byB0aGUgY29udGVudC4KICAgICAgICAgLy8gVGhlIFdlYlByb2Nlc3Mgd291bGQga2VlcCB0aGUg
aW52YWxpZCBjb250ZW50T2Zmc2V0IGFzIGl0cyBzY3JvbGwgcG9zaXRpb24uCiAgICAgICAgIC8v
IFRvIHN5bmNocm9uaXplIHRoZSBXZWJQcm9jZXNzIHdpdGggd2hhdCBpcyBvbiBzY3JlZW4sIHdl
IHNlbmQgdGhlIFZpc2libGVDb250ZW50UmVjdCBhZ2Fpbi4KICAgICAgICAgX3BhZ2UtPnJlc2Vu
ZExhc3RWaXNpYmxlQ29udGVudFJlY3RzKCk7CisgICAgICAgIC8vIElmIF9zY3JvbGxWaWV3IHdv
bid0IGNoYW5nZSwgd2Ugc3RpbGwgbmVlZCB0byB0ZWxsIHRoZSBXZWIgcHJvY2VzcyB0aGF0IHRo
ZSBhbmltYXRpb24gc3RvcHBlZC4KKyAgICAgICAgaWYgKGFuaW1hdGVkKSB7CisgICAgICAgICAg
ICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9yID0g
X3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICAgICAgICAgIGlmIChjb29y
ZGluYXRvcikKKyAgICAgICAgICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZVJvb3RO
b2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsKKyAgICAgICAg
fQogICAgIH0KIH0KIApAQCAtMjg3OCw2ICsyODkyLDEwIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9h
dFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50
T2ZmCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcKIHsKICAgICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xsaW5nXTsKKwor
ICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSogY29vcmRpbmF0b3Ig
PSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOworICAgIGlmIChjb29yZGluYXRv
cikKKyAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CiB9CiAKIC0gKHZvaWQpX3Njcm9sbFZp
ZXdEaWRJbnRlcnJ1cHREZWNlbGVyYXRpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRl
cm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVy
bmFsLmgKaW5kZXggNDM1MDgwZjMyNC4uNWNiNWY1ODE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTk3LDcg
Kzk3LDcgQEAgc3RydWN0IFByaW50SW5mbzsKIAogLSAoUmVmUHRyPFdlYktpdDo6Vmlld1NuYXBz
aG90PilfdGFrZVZpZXdTbmFwc2hvdDsKIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xs
UG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2lu
OihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW47CistICh2b2lkKV9zY3JvbGxUb0NvbnRl
bnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3Jv
bGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDooQk9PTClh
bmltYXRlZDsKIC0gKEJPT0wpX3Njcm9sbFRvUmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0KXRhcmdl
dFJlY3Qgb3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KW9yaWdpbiBtaW5pbXVtU2Nyb2xsRGlz
dGFuY2U6KGZsb2F0KW1pbmltdW1TY3JvbGxEaXN0YW5jZTsKIC0gKGRvdWJsZSlfaW5pdGlhbFNj
YWxlRmFjdG9yOwogLSAoZG91YmxlKV9jb250ZW50Wm9vbVNjYWxlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCmluZGV4IDJhMjk4OTkzNDguLmMzMGI2YjkxM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTE4MSw2ICsxODEsMTAgQEAgcHVibGljOgogICAg
IC8vIFRlbGwgdGhlIHZpZXcgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBwb3NpdGlvbiwgYW5kIHdo
ZXRoZXIgdGhpcyB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgogICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7CiAKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlv
bihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgeyB9CisjZW5kaWYKKwogICAgIC8vIFJldHVybiB0
aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gKG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0
aGUgV2ViQ29yZSBzY3JvbGwgcG9zaXRpb24sIGJlY2F1c2Ugb2Ygc2NhbGluZywgaW5zZXRzIGV0
Yy4pCiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigp
ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5t
bQppbmRleCBiN2IwNDY5NTkyLi42NmFkOWY0NzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMjI0LDggKzIyNCwxNCBAQCB2b2lkIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZShjb25zdCBSZW1v
dGVMYXllclRyZWVUcmFucwogCiAgICAgLy8gSGFuZGxlIHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRp
b24gdXBkYXRlcyBmcm9tIHRoZSBzY3JvbGxpbmcgdHJlZSB0cmFuc2FjdGlvbiBhZnRlciBkaWRD
b21taXRMYXllclRyZWUoKQogICAgIC8vIGhhcyB1cGRhdGVkIHRoZSB2aWV3IHNpemUgYmFzZWQg
b24gdGhlIGNvbnRlbnQgc2l6ZS4KLSAgICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0
c1Njcm9sbFBvc2l0aW9uVXBkYXRlKQotICAgICAgICBtX3dlYlBhZ2VQcm94eS5yZXF1ZXN0U2Ny
b2xsKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGxheWVyVHJl
ZVRyYW5zYWN0aW9uLnNjcm9sbE9yaWdpbigpKTsKKyAgICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5m
by5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlKSB7CisgICAgICAgIG1fd2ViUGFnZVByb3h5
LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bgorICAgICAgICAgICAgLCBsYXllclRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKQorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgICAgICAsIHJlcXVlc3RlZFNjcm9sbEluZm8u
cmVxdWVzdFdpdGhBbmltYXRpb24KKyNlbmRpZgorICAgICAgICAgICAgKTsKKyAgICB9CiAjZW5k
aWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIAogICAgIGlmIChtX2RlYnVnSW5kaWNhdG9y
TGF5ZXJUcmVlSG9zdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuY3BwCmluZGV4IDQ4MjNmNzZhOTcuLmFhYTg5MTU1MDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTIwOCw3ICsyMDgs
MTEgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpjdXJyZW50U25hcFBv
aW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjoKIH0KIAogLy8gVGhpcyBjb21lcyBmcm9tIHRo
ZSBzY3JvbGxpbmcgdHJlZS4KKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3Jv
bGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Njcm9sbFBv
c2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4s
IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKKyNlbHNlCiB2b2lkIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNj
cm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xs
UG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdp
biwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uKQorI2VuZGlmCiB7CiAgICAgLy8gU2Nyb2xsIHVwZGF0ZXMgZm9yIHRoZSBtYWluIGZyYW1l
IGFyZSBzZW50IHZpYSBXZWJQYWdlUHJveHk6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoKQog
ICAgIC8vIHNvIGRvbid0IHNlbmQgdGhlbSBoZXJlLgpAQCAtMjIyLDIxICsyMjYsNDUgQEAgdm9p
ZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNj
cm9sbChTY3JvbGxpbmdOb2RlSUQKICAgICBtX3dlYlBhZ2VQcm94eS5zY3JvbGxpbmdOb2RlU2Ny
b2xsVmlld0RpZFNjcm9sbCgpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSAm
JiAhaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKyNlbHNl
CiAgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgp
KQogICAgICAgICByZXR1cm47CisjZW5kaWYKIAogICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpTY3JvbGxQb3NpdGlvbkNoYW5nZWRG
b3JOb2RlKHNjcm9sbGVkTm9kZUlELCBuZXdTY3JvbGxQb3NpdGlvbiwgc2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbiA9PSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSk7CiB9
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJ
RCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wg
cmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQorI2Vsc2UK
IHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVS
ZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
CisjZW5kaWYKIHsKICAgICBpZiAoc2Nyb2xsZWROb2RlSUQgPT0gcm9vdFNjcm9sbGluZ05vZGVJ
RCgpICYmIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbykgewogICAgICAgICBtX3JlcXVlc3RlZFNjcm9s
bEluZm8tPnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgPSB0cnVlOwogICAgICAgICBtX3Jl
cXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGw7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAg
bV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0V2l0aEFuaW1hdGlvbiA9IHdpdGhBbmltYXRp
b247CisjZW5kaWYKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwogICAgIH0KIH0KIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGlu
Z1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNj
cm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShz
Y3JvbGxlZE5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKSk7Cit9CisKK3ZvaWQg
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5v
ZGUocm9vdFNjcm9sbGluZ05vZGVJRCgpLCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsg
ICAgCit9CisjZW5kaWYKKwogU3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OnNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9sbGluZ1RyZWUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAppbmRleCAx
YTc2OTQzZjI0Li4yMzU1MDdjMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmgKQEAgLTU1LDkgKzU1LDE3IEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYpOwogICAgIHZp
cnR1YWwgflJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVSb290Tm9kZUlz
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzcyk7CisgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJvY2VzcyB0aGF0IHRoZSBzY3Jv
bGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlKQorICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0
aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJDb3Jl
OjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBib29sIGluc3RhbnRTY3JvbGxEaWRTdG9w
QW5pbWF0aW9uID0gZmFsc2UpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wg
d2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKKyNlbHNlCiAgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJv
Y2VzcyB0aGF0IHRoZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNj
cm9sbGluZyB0cmVlKQogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQ
b3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdw
b3J0T3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKICAgICB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyNlbmRpZgogCiAgICAgV2ViQ29yZTo6VHJhY2tp
bmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRO
YW1lLCBXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CiAKQEAgLTgwLDYgKzg4LDkgQEAgcHVibGlj
OgogICAgIHN0cnVjdCBSZXF1ZXN0ZWRTY3JvbGxJbmZvIHsKICAgICAgICAgYm9vbCByZXF1ZXN0
c1Njcm9sbFBvc2l0aW9uVXBkYXRlIHsgfTsKICAgICAgICAgYm9vbCByZXF1ZXN0SXNQcm9ncmFt
bWF0aWNTY3JvbGwgeyB9OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIGJvb2wg
cmVxdWVzdFdpdGhBbmltYXRpb24geyB9OworI2VuZGlmCiAgICAgICAgIFdlYkNvcmU6OkZsb2F0
UG9pbnQgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgfTsKICAgICB2b2lkIGNvbW1pdFNj
cm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0
aW9uJiwgUmVxdWVzdGVkU2Nyb2xsSW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3Bw
CmluZGV4IGFmYWJiYzFlYWUuLjU2NDU4OTNkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJl
ZS5jcHAKQEAgLTEwNCwxMyArMTA0LDI0IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmCiAgICAg
aWYgKGlzPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpKQogICAgICAgICBs
YXlvdXRWaWV3cG9ydE9yaWdpbiA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGU+KG5vZGUpLmxheW91dFZpZXdwb3J0KCkubG9jYXRpb24oKTsKIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1Ry
ZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9s
bFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uLCBub2RlLm5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSAmJiAhbm9kZS5y
ZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbigpKTsKKyNlbHNlCiAgICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9k
ZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2lu
LCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyNlbmRpZgogfQogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5v
ZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29s
IHdpdGhBbmltYXRpb24pCit7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9s
bGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgcmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgd2l0aEFuaW1hdGlvbik7Cit9CisjZWxzZQogdm9pZCBS
ZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29s
IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiB7CiAgICAgbV9zY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQ
b3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiB9CisjZW5kaWYKIAogUmVm
PFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdU
cmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJ
RCkKIHsKQEAgLTE0Myw2ICsxNTQsMTMgQEAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVT
Y3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2QKICAgICBy
ZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogfQog
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MpCit7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2Rl
SXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGVJRCwgaXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKTsKK30KKyNlbmRpZgorCiB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6
OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQs
IHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKQogewogICAgIG1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5jdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShub2Rl
SUQsIGhvcml6b250YWwsIHZlcnRpY2FsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCmluZGV4
IDIzYmFjMDZhM2IuLjRiZDU2MGRkODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaApAQCAt
NTIsNyArNTIsMTIgQEAgcHVibGljOgogICAgIGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkmIHNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7IH0KIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVE
aWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBXZWJDb3JlOjpT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbjo6U3luYykgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKSBvdmVycmlkZTsKKyNlbHNlCiAgICAgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCkgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIHZvaWQgY3VycmVudFNuYXBQb2lu
dEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jp
em9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKaW5kZXgg
ZTYzN2Q2MTUzMi4uMDBiNGRiY2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxW
aWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsVmlld0RpZFNj
cm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPZmZzZXQsIGJvb2wgaW5Vc2Vy
SW50ZXJhY3Rpb24pOworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlv
bigpOwogCiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25l
ZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7CiAgICAgQ0FMYXllciAqc2Ny
b2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdldCgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW0KaW5kZXggZTc2ODk4Mzc1OC4uN2E2ZTY0YWI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAt
MTUyLDYgKzE1MiwxMSBAQAogICAgIH0KIH0KIAorLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Ny
b2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgX3Njcm9s
bGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24o
KTsKK30KKwogI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0gKENHUG9pbnQpX3Njcm9sbFZp
ZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENH
UG9pbnQpb2Zmc2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6
KENHUG9pbnQpc3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9y
aXpvbnRhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91
dCBkb3VibGUgKil2dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3Qg
U2Nyb2wKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CiAg
ICAgICAgIGF1dG8gc2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSA/IFNjcm9sbFR5cGU6OlBy
b2dyYW1tYXRpYyA6IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAgIHNjcm9sbGluZ05vZGUoKS5z
Y3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Ny
b2xsVHlwZSk7CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2V0
UmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24odHJ1ZSk7CisgICAgICAgIC8vIElmIHRoZSBzY3Jv
bGwgcG9zaXRpb25zIGFyZSBub3QgdGhlIHNhbWUsIHRoZXJlJ3MgYSBwb3NzaWJpbGl0eSB0aGF0
IHRoZSBzY3JvbGwgb2Zmc2V0IGZyb20gdGhlIFdlYiBwcm9jZXNzIGhhcyBiZWVuIG92ZXJyaWRk
ZW4uCisgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIHNjcm9sbCBwb3NpdGlvbiBuZWVkIHRv
IGJlIHNlbnQgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBib29sIHNob3VsZFN5bmNTY3Jv
bGxQb3NpdGlvbiA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxQb3NpdGlvbigpICE9IHNjcm9s
bGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgc2Nyb2xsaW5nTm9k
ZSgpLnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigp
LCBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywgc2hvdWxk
U3luY1Njcm9sbFBvc2l0aW9uKTsKICAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpCiB7Ci0gICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW3Njcm9sbFZpZXcoKSBzZXRDb250ZW50
T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOwotICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBib29sIGFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBzY3Jv
bGxpbmdOb2RlKCkuc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpOworICAgIGJvb2wgbmVlZFRv
U3RvcEFuaW1hdGlvbiA9IHNjcm9sbGluZ05vZGUoKS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5p
bWF0aW9uKCk7CisgICAgaWYgKG5lZWRUb1N0b3BBbmltYXRpb24gJiYgYW5pbWF0aW9uSW5Qcm9n
cmVzcykgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Nj
cm9sbFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbFZpZXcoKS5jb250ZW50T2Zmc2V0IGFu
aW1hdGVkOk5PXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0KKwor
ICAgIGlmIChzY3JvbGxpbmdOb2RlKCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oKSkgewor
ICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXco
KSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCkg
YW5pbWF0ZWQ6WUVTXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworCisgICAg
ICAgIHNjcm9sbGluZ05vZGUoKS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKHRydWUpOwor
ICAgIH0gZWxzZSBpZiAoIWFuaW1hdGlvbkluUHJvZ3Jlc3MgfHwgbmVlZFRvU3RvcEFuaW1hdGlv
bikgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9s
bFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zm
c2V0KCldOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgfQogfQogCiB2
b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFdpbGxTdGFy
dCgpIGNvbnN0CkBAIC0zMzUsNiArMzYxLDE1IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBGbG9hdFBvaW50CiAg
ICAgc2Nyb2xsaW5nTm9kZSgpLndhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmcoc2Nyb2xs
UG9zaXRpb24sIHsgfSwgaW5Vc2VySW50ZXJhY3Rpb24gPyBTY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uOjpTeW5jIDogU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIH0KIAor
dm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlk
RW5kU2Nyb2xsaW5nQW5pbWF0aW9uKCkKK3sKKyAgICBhdXRvJiBub2RlID0gc2Nyb2xsaW5nTm9k
ZSgpOworICAgIGlmICghKG5vZGUucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oKSAmJiBub2Rl
LnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgp
LnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5v
ZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2Uo
dW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAgaWYg
KG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggZWZjODJlODVhNy4uYTVlYzM4M2MwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzMyLDEwICsxNzMyLDIwIEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFJlZ2lvbiYgcmVnaW9uKQogICAg
IHBhZ2VDbGllbnQoKS5zZXRWaWV3TmVlZHNEaXNwbGF5KHJlZ2lvbik7CiB9CiAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4s
IGNvbnN0IGJvb2wgd2l0aEFuaW1hdGlvbikKK3sKKyAgICBpZiAod2l0aEFuaW1hdGlvbikKKyAg
ICAgICAgcGFnZUNsaWVudCgpLnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKHNjcm9sbFBvc2l0
aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGVsc2UKKyAgICAgICAgcGFnZUNsaWVudCgpLnJlcXVl
c3RTY3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7Cit9CisjZWxzZQogdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCiB7CiAgICAgcGFnZUNsaWVudCgpLnJl
cXVlc3RTY3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CiB9CisjZW5kaWYKIAog
V2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQb3NpdGlvbigpIGNv
bnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDEwOTQ3ZmYw
ZGIuLjhlMjkyY2IyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC02MTIsNyArNjEyLDExIEBAIHB1YmxpYzoKICAgICBQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KCkg
Y29uc3Q7CiAKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVn
aW9uJik7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGwo
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBzY3JvbGxPcmlnaW4sIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKKyNl
bHNlCiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKTsKKyNl
bmRpZgogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKaW5kZXggZWE1MzUyNTdkZi4uMmE3ZDIwYzFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2lu
Z0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZXdO
ZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBy
ZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKKyAgICB2b2lk
IHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVy
cmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJy
aWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29s
IGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGUxMzk5NjhkNGYuLjUzN2ZkNjA1
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KQEAgLTk1LDcgKzk1LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVk
c0Rpc3BsYXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNj
cm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNj
cm9sbE9yaWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3Np
dGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luXTsKKyAgICBbbV93
ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3Jv
bGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5PXTsKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit7CisgICAgW21fd2ViVmll
dyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3Jp
Z2luOnNjcm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwogfQogCiBXZWJDb3JlOjpGbG9hdFBvaW50
IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA4ZTY0OTM1NTQ1Li4z
ZDM0NWQ3NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjcm9s
bFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlv
bik7CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGlj
YWwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgorCiAgICAgV2ViUGFnZSogbV93
ZWJQYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4IDJjMDk4YTEwOTcuLjUzN2Zk
MzRkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDkgQEAKIG1lc3NhZ2Vz
IC0+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAgICBTY3JvbGxQb3NpdGlvbkNoYW5n
ZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxQb3Np
dGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgQ3VycmVudFNuYXBQb2ludEluZGlj
ZXNDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVu
c2lnbmVkIHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIGJvb2wgaXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5tbQppbmRleCA4MzU0NDFkMzE5Li42ODlkNTU2MjZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBA
IC0xMDQsNiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmN1cnJl
bnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoU2Nyb2xsaW5nCiAgICAgc2V0QWN0aXZl
U2Nyb2xsU25hcEluZGljZXMobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CiB9CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6
c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAg
IHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCAxZTk4ODRlZTU5Li4wZGFiZjUxOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDcgKzEsNyBAQAogMjAxOS0xMi0wNSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxp
YS5jb20+CiAKLSAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5n
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4ODIK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZl
IHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgogCiAgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggOThiMGIx
YmJmZi4uMDg5MGEyODJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSw3ICsx
LDcgQEAKIDIwMTktMTItMDUgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgog
Ci0gICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZwotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgyCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDcyNDYzNDhhZjMuLjFlNmE4MWFmYzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNyArMSw3IEBACiAyMDE5LTEyLTA1ICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAotICAgICAgICBBZGQgc3VwcG9ydCBm
b3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDg4MgorICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xs
IGJlaGF2aW9yIHJlbGllcyBvbiBuYXRpdmUgc2Nyb2xsIGludGVyZmFjZXMgZm9yIGlPUyBwbGF0
Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
OTM2CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385361</attachid>
            <date>2019-12-11 00:45:55 -0800</date>
            <delta_ts>2019-12-11 03:35:07 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_9.diff</filename>
            <type>text/plain</type>
            <size>304459</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjg4NDBmM2NmLi43NTQzNzBiOGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2lu
ZyBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQu
IEluIG9yZGVyIHRvIHRlc3QgcHJvcGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9y
IHRlc3QgdG8gZmFzdC9zY3JvbGxpbmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2
ZVNjcm9sbGluZyk6CisgICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9s
bE5vZGUpOgorICAgICAgICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0
bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKKzIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0
aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlc2UgdGVzdHMgb24gV0sxIGFzIHRoZXkgZG9u
J3Qgd29yayBmb3Igbm93LgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBh
cnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBC
YXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTEyLTEwICBQZW5nIExpdSAgPHBl
bmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3JlYXRlIGEgVGVzdEV4cGVjdGF0aW9ucyBm
aWxlIGZvciB0aGUgR1BVIHByb2Nlc3MgcmVsYXRlZCB3b3JrCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBhMDk2OGUwMjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Nj
cm9sbC1iZWhhdmlvci5qcwpAQCAtMCwwICsxLDg3IEBACitmdW5jdGlvbiBvYnNlcnZlU2Nyb2xs
aW5nKGVsZW1lbnRzLCBjYWxsYmFjaykgeworICBpZiAoIUFycmF5LmlzQXJyYXkoZWxlbWVudHMp
KQorICAgICAgZWxlbWVudHMgPSBbZWxlbWVudHNdOworICB2YXIgbGFzdENoYW5nZWRGcmFtZSA9
IDA7CisgIHZhciBsYXN0TGVmdCA9IG5ldyBNYXAoKTsKKyAgdmFyIGxhc3RUb3AgPSBuZXcgTWFw
KCk7CisgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAgICBsYXN0TGVmdC5zZXQo
ZWxlbWVudCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICBsYXN0VG9wLnNldChlbGVtZW50LCBl
bGVtZW50LnNjcm9sbFRvcCk7CisgIH0pOworICBmdW5jdGlvbiB0aWNrKGZyYW1lcykgeworICAg
IC8vIFdlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIDUwMCBmcmFtZXMgb3IgdW50
aWwgMjAgZnJhbWVzIHdpdGgKKyAgICAvLyBubyBjaGFuZ2UgaGF2ZSBiZWVuIG9ic2VydmVkLgor
ICAgIGlmIChmcmFtZXMgPj0gNTAwIHx8IGZyYW1lcyAtIGxhc3RDaGFuZ2VkRnJhbWUgPiAyMCkg
eworICAgICAgY2FsbGJhY2sodHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIHZhciBzY3JvbGxI
YXBwZW5lZCA9IGVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IHsKKyAgICAgICAgcmV0dXJuIGVs
ZW1lbnQuc2Nyb2xsTGVmdCAhPSBsYXN0TGVmdC5nZXQoZWxlbWVudCkgfHwgZWxlbWVudC5zY3Jv
bGxUb3AgIT0gbGFzdFRvcC5nZXQoZWxlbWVudCk7CisgICAgICB9KTsKKyAgICAgIGlmIChzY3Jv
bGxIYXBwZW5lZCkgeworICAgICAgICBsYXN0Q2hhbmdlZEZyYW1lID0gZnJhbWVzOworICAgICAg
ICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7CisgICAgICAgICAgbGFzdExlZnQuc2V0
KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsTGVmdCk7CisgICAgICAgICAgbGFzdFRvcC5zZXQoZWxl
bWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOworICAgICAgICB9KTsKKyAgICAgICAgY2FsbGJhY2so
ZmFsc2UpOworICAgICAgfQorICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2suYmluZChu
dWxsLCBmcmFtZXMgKyAxKSk7CisgICAgfQorICB9CisgIHRpY2soMCk7Cit9CisKK2Z1bmN0aW9u
IHdhaXRGb3JTY3JvbGxFbmQoZWxlbWVudHMpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7CisgICAgb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgKGRvbmUpID0+IHsKKyAg
ICAgIGlmIChkb25lKQorICAgICAgICByZXNvbHZlKCk7CisgICAgfSk7CisgIH0pOworfQorCitm
dW5jdGlvbiByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KSB7CisgIC8vIFRyeSB2YXJpb3Vz
IG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0
ZWx5LgorICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsKHtsZWZ0OiAwLCB0
b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGxG
b3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KSB7CisgIC8vIFRyeSB2YXJpb3VzIG1ldGhvZHMgdG8g
ZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0ZWx5LgorICBzY3Jv
bGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAg
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsK
KyAgc2Nyb2xsaW5nV2luZG93LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImlu
c3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
IGNsYXNzTmFtZSkgeworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImF1dG9CZWhh
dmlvciIsICJzbW9vdGhCZWhhdmlvciIpOworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5hZGQo
Y2xhc3NOYW1lKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBz
Y3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5i
ZWhhdmlvciA9IGJlaGF2aW9yOworICBzd2l0Y2ggKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgY2Fz
ZSAic2Nyb2xsSW50b1ZpZXciOgorICAgICAgYXJncy5pbmxpbmUgPSAic3RhcnQiOworICAgICAg
YXJncy5ibG9jayA9ICJzdGFydCI7CisgICAgICBlbGVtZW50VG9SZXZlYWwuc2Nyb2xsSW50b1Zp
ZXcoYXJncyk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgYXJncy5sZWZ0ID0g
ZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgICAgIGFyZ3MudG9wID0gZWxlbWVudFRvUmV2ZWFsVG9w
OworICAgICAgc2Nyb2xsaW5nRWxlbWVudFtzY3JvbGxGdW5jdGlvbl0oYXJncyk7CisgICAgICBi
cmVhazsKKyAgfQorfQorCitmdW5jdGlvbiBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5i
ZWhhdmlvciA9IGJlaGF2aW9yOworICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0Owor
ICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgc2Nyb2xsaW5nV2luZG93W3Njcm9s
bEZ1bmN0aW9uXShhcmdzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOGQ0Y2E2NDE1
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQ
QVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1i
ZWhhdmlvciAKK1BBU1MgU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVs
dCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zNWM2NTAzYWIyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0t
PgorPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxl
PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdp
ZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0i
bG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+
CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5k
OiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwv
c3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJh
Y2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZl
YWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICB2YXIgc2Ny
b2xsRnVuY3Rpb24gPSAic2Nyb2xsIjsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICB9LCAiSW5zdGFudCBzY3Jv
bGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7CisKKyAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgIH0pOworICB9LCAiU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVs
dCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTNhOTYx
ZWY1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1l
bnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24g
YW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbiBpbnN0YW50
IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi5kMzhkZmZkZWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKQEAgLTAs
MCArMSwxNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6
QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcg
c2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJl
aGF2aW9yIG9uIGFuIGVsZW1lbnQ8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9y
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgewor
ICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4
OworICB9CisgIC5hdXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAg
fQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9
Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2Rl
IiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdo
dDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVu
KTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4K
KzwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7
CisgIHZhciBzdHlsZWRFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVudFRvUmV2
ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKworICBbInNj
cm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2go
KHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHki
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9
LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9
KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVz
b2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
YCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlv
biwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAg
IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgIH0sIGBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3JgKTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNl
dFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGgg
c2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOwor
ICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9v
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uOTdjYWVhMjdiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgUGFnZSBsb2FkZWQgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGlu
ZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi5kMzI1YjRiOWUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRt
bApAQCAtMCwwICsxLDE2OSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBp
bnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+
VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBz
Y3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcv
I3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVoYXZpb3Igewor
ICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAg
IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4K
KzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJw
b3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4K
KyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOworICB2YXIgc2Ny
b2xsaW5nRWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBhZ2VMb2Fk
ZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9
ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZl
YWxMZWZ0ID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZl
YWxUb3AgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZl
YWwuc3R5bGUubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRU
b1JldmVhbC5zdHlsZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRk
X2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsgfSk7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJ
bnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAg
ICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5j
dGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAg
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3Rh
bnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShz
Y3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVt
ZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGgg
YW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM4MjM4NWFhYjQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisKK1BBU1MgUGFnZSBsb2FkZWQg
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjkwNTdiMGNkMTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1h
aW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVs
ZW1lbnQuc2Nyb2xsKiBvbiB0aGUgd2luZG93IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2Nh
bGU9MSI+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBtYXJnaW46
IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOwor
ICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
IH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdlQ29udGVu
dCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+CisgIDxkaXYg
aWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTog
aW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFj
azsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFzeW5jX3Rl
c3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdXaW5kb3csIHN0eWxlZEVsZW1lbnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKCkg
eworICAgIHNjcm9sbGluZ1dpbmRvdyA9IHdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEw
ICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJweCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUu
aGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1l
bnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1l
bnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA0OworICAgIGVsZW1l
bnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAg
ZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisK
KyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlc2V0U2Nyb2xsRm9yV2luZG93
KHdpbmRvdyk7IH0pOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5m
b3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyBy
ZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5j
dGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJh
dXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFks
IDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlv
biwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3Jv
bGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5j
dGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3Ai
KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhz
Y3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxG
dW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAg
ICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1
bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93
KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3Jv
bGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIs
IGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
MiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFu
b3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xs
aW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Ny
b2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9
LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1l
IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9s
bGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDQzYTgyMGU1OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBz
Y3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQ1YjVkOGQ3
YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsODggQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3Igd2l0aCBzY3JvbGxJbnRvVmlldyBmb3IgbmVzdGVkIHNjcm9sbGluZyBub2Rl
czwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGln
YWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJv
eCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87
CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9s
bC1iZWhhdmlvcjogc21vb3RoOworICB9CisgIC5ncmFkaWVudCB7CisgICAgYmFja2dyb3VuZDog
bGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7CisgIH0KKzwvc3R5bGU+Cis8ZGl2
IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2PgorICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIHNtb290
aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQ1MHB4Ij4KKyAgICA8ZGl2IGNsYXNzPSJncmFkaWVu
dCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogNDAwcHgiPgor
ICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDog
NTAwcHg7Ij48L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0
aDogMzUwcHgiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAx
MDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlIiBzdHlsZT0id2lkdGg6IDMwMHB4Ij4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVu
dCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAg
IDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogMjUw
cHgiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9s
bGFibGUiIHN0eWxlPSJ3aWR0aDogMjAwcHgiPgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJn
cmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAg
ICAgICAgICAgICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJ3aWR0aDogMTBweDsg
aGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsi
PjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
ICAgIDwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPGRp
diBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48
L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3
aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+
Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIFRoZSBDU1NPTS1WaWV3IHNwZWMgYW5kIGltcGxlbWVu
dGF0aW9ucyBmb2xsb3cgZGlmZmVyZW50IGFsZ29yaXRobXMgKHNjcm9sbHMgcGVyZm9ybWVkIGlu
IHBhcmFsbGVsLCBhcyBpbm5lci10by1vdXRlciBzZXF1ZW5jZSBvciBhcyBvdXRlci10by1pbm5l
ciBzZXF1ZW5jZSkuCisgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0
cy9pc3N1ZXMvMzEyNworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciBkaXZzID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLnNjcm9sbGFibGUiKTsKKyAgICAgIGRpdnMuZm9yRWFjaCgo
c2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxhYmxlRGl2KTsK
KyAgICAgIH0pOworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbEludG9WaWV3KHtpbmxpbmU6
ICJzdGFydCIsIGJsb2NrOiAic3RhcnQiLCBiZWhhdmlvcjogImF1dG8ifSk7CisgICAgICB2YXIg
c2Nyb2xsVG9wID0gbmV3IE1hcCgpOworICAgICAgdmFyIGlzU21vb3RoID0gbmV3IE1hcCgpOwor
ICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAgIHNjcm9sbFRv
cC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAgICBp
c1Ntb290aC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5jbGFzc0xpc3QuY29udGFp
bnMoInNtb290aEJlaGF2aW9yIikpOworICAgICAgICAvLyBJZiBzY3JvbGwgb3BlcmF0aW9ucyBh
cmUgbm90IHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgc2Nyb2xsIGJveGVzIHdpdGggaW5zdGFudCBi
ZWhhdmlvciBtaWdodCBhbHNvIG5lZWQgdG8gd2FpdCBmb3IgdGhlaXIgcHJlZGVjZXNzb3JzLgor
ICAgICAgICBpZiAoaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2KSwgNTAwLCAiRWxlbWVudCB3
aXRoIHNtb290aCBiZWhhdmlvciBzaG91bGQgbm90IHNjcm9sbCBpbW1lZGlhdGVseSIpOworICAg
ICAgfSk7CisKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcoQXJyYXkuZnJvbShkaXZzKSwgZnVuY3Rp
b24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgIGRpdnMuZm9yRWFjaCgoc2Nyb2xs
YWJsZURpdikgPT4geworICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChzY3JvbGxU
b3AuZ2V0KHNjcm9sbGFibGVEaXYpLCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgIlNjcm9sbFRv
cCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICBpZiAoIWlzU21vb3RoLmdldChzY3Jv
bGxhYmxlRGl2KSkKKyAgICAgICAgICAgICAgYXNzZXJ0X2FueShhc3NlcnRfZXF1YWxzLCBzY3Jv
bGxhYmxlRGl2LnNjcm9sbFRvcCwgWzAsIDUwMF0sICJFbGVtZW50IHdpdGggaW5zdGFudCBiZWhh
dmlvciBzaG91bGQganVtcCB0byB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIGlm
IChkb25lKQorICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGFibGVEaXYuc2Nyb2xs
VG9wLCA1MDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgICAgIHNjcm9s
bFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAg
ICAgIH0pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7
CisgICAgfSk7CisgIH0sICJzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRo
IGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMC4uODU1YTZhNjEwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9u
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5n
IHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3Jv
bGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgx
MDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9z
aXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1
MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBw
ZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1
c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcg
c21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xs
VG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5n
IHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1Zp
ZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygp
ICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJv
cnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uMGE0MWI4YjA4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5o
dG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUg
IGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRs
ZT5UZXN0aW5nIHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRo
IHNtb290aCBiZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAg
b3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7Cisg
ICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ci
PgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAg
PGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxp
bmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRp
c3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFu
PjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dy
b3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICAvLyBG
b3Igc21vb3RoIGJlaGF2aW9yLCBldm9sdXRpb24gb2Ygc2Nyb2xsIHBvc2l0aW9ucyBvdmVyIHRp
bWUgaXMgbm90IHNwZWNpZmllZCBieSBDU1NPTSBWaWV3LgorICAvLyBUaGlzIHRlc3QgcmVsaWVz
IG9uIHRoZSBtaW5pbWFsIGFzc3VtcHRpb24gdGhhdCBzY3JvbGwgcG9zaXRpb24gZnVuY3Rpb25z
IGFyZSBtb25vdG9uaWMuCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNj
cm9sbEludG9WaWV3Il0uZm9yRWFjaChmdW5jdGlvbihzY3JvbGxGdW5jdGlvbikgeworICAgIFt7
bGVmdDowLCB0b3A6MH0sIHtsZWZ0OjEwMDAsIHRvcDowfSwge2xlZnQ6MCwgdG9wOjUwMH0sIHts
ZWZ0OjEwMDAsIHRvcDo1MDB9XS5mb3JFYWNoKChpbml0aWFsKSA9PiB7CisgICAgICB2YXIgZmlu
YWxMZWZ0ID0gNTAwOworICAgICAgdmFyIGZpbmFsVG9wID0gMjUwOworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwg
Imluc3RhbnQiLCBpbml0aWFsLmxlZnQsIGluaXRpYWwudG9wKTsKKyAgICAgICAgICB2YXIgb2xk
TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBvbGRUb3AgPSBv
dmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwg
aW5pdGlhbC5sZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCBpbml0aWFsLnRvcCwgIlNjcm9sbFRv
cCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIpOworICAgICAgICAgIGlmIChzY3JvbGxG
dW5jdGlvbiA9PT0gInNjcm9sbEJ5IikKKyAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCAtIGluaXRpYWwubGVmdCwg
ZmluYWxUb3AgLSBpbml0aWFsLnRvcCk7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Ny
b2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZmluYWxMZWZ0
LCBmaW5hbFRvcCk7CisgICAgICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1
bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHZhciBuZXdM
ZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgIHZhciBuZXdUb3Ag
PSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFu
X2VxdWFsKE1hdGguaHlwb3QoZmluYWxMZWZ0IC0gbmV3TGVmdCwgZmluYWxUb3AgLSBuZXdUb3Ap
LCBNYXRoLmh5cG90KGZpbmFsTGVmdCAtIG9sZExlZnQsIGZpbmFsVG9wIC0gb2xkVG9wKSwgIlNj
cm9sbCBwb3NpdGlvbiBzaG91bGQgbW92ZSB0b3dhcmRzIHRoZSBmaW5hbCBwb3NpdGlvbiIpOwor
ICAgICAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
bmV3TGVmdCwgZmluYWxMZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRp
b24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgZmluYWxUb3AsICJT
Y3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgICAgIG9sZFRvcCA9
IG5ld1RvcDsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICByZWplY3Qo
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKCR7aW5pdGlh
bC5sZWZ0fSwgJHtpbml0aWFsLnRvcH0pIHRvICgke2ZpbmFsTGVmdH0sICR7ZmluYWxUb3B9KSB1
c2luZyAke3Njcm9sbEZ1bmN0aW9ufSgpIGApOworICAgIH0pOworICB9KTsKKworICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5p
dGlhbFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBzY3JvbGxEaXJlY3Rpb25DaGFu
Z2VkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0
OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICBhc3Nl
cnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3RoIiwgMTUwMCwg
NzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25l
KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUu
c2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRv
cDsKKyAgICAgICAgICBpZiAoaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsKKyAgICAgICAgICAgIGlm
IChzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkKSB7CisgICAgICAgICAgICAgIGFzc2VydF9ncmVhdGVy
X3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgZGVjcmVhc2lu
ZyIpOworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9sZFRvcCwgbmV3
VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICBzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkID0gbmV3TGVmdCA8PSBvbGRMZWZ0
ICYmIG5ld1RvcCA8PSBvbGRUb3A7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVw
cyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xk
VG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAg
ICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7CisgICAgICAgICAgICAgICAg
Ly8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAgICAgIGluaXRpYWxTY3Jv
bGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9k
ZSwgInNjcm9sbCIsICJzbW9vdGgiLCA1MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVm
dCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAg
ICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAw
LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9sZExlZnQgPSBuZXdMZWZ0Owor
ICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAg
ICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChkb25lKQorICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Nyb2xsIHBvc2l0aW9ucyB3aGVu
IGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGlu
ZyIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRTY3JvbGwob3ZlcmZsb3dOb2Rl
KTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZhbHNlOworICAgICAgdmFyIG9s
ZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZhciBvbGRUb3AgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAwKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAgICBvYnNlcnZlU2Nyb2xs
aW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAg
ICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgdmFy
IG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgaWYgKCFpbml0aWFs
U2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9s
ZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBr
ZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAmJiBu
ZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBzY3Jv
bGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAgICAg
ICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCA1
MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxM
ZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNo
b3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQg
c3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdU
b3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgc3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAg
ICAgICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3Ag
PSBuZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9
KTsKKyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290
aCBzY3JvbGxpbmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1
YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yNzk5ZmRjYzI5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1y
b290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgaWZyYW1lIGxvYWRlZCAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRp
bmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uOTZkMTFhYjk2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEs
MTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5j
T3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGlu
Z0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZp
b3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9m
IGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIv
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0
bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Nj
cm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJl
aGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9
ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZ
UEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2luOiAwOworICAg
IH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAg
ICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3Ro
OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIw
MDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcs
IHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2Nr
OyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRU
b1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0x
NXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bh
bj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+
CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2FkZWQiKTsKKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAg
dmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3Ag
PSAyNTA7CisgIGlmcmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRU
ZXN0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gaWZyYW1l
Tm9kZS5jb250ZW50RG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICBzdHlsZWRFbGVtZW50
ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1l
bnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
bGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5
IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24s
IG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyBy
ZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAi
aW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1
YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFu
dCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhh
dmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4g
eworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAg
IH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3
aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwLi4wNWViMzI3MmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjkgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFu
IG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIg
c21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLjMzMzNkNjRmODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCkBA
IC0wLDAgKzEsMTcxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVy
bmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFt
ZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9y
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxp
ZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9j
PSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2lu
OiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjog
YXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlv
cjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0n
d2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVu
dCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5s
aW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9
J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwt
YWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFj
azsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4K
KzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2Fk
ZWQiKTsKKyAgdmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2
ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1Jl
dmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZy
YW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgIHNjcm9sbGluZ1dpbmRvdyA9
IGlmcmFtZU5vZGUuY29udGVudFdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9k
ZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9
IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZl
YWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgo
c2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgp
OyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdX
aW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0Jl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsK
KyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIp
OworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Nj
cm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAg
ICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAg
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsK
KyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdX
aW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAp
OworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
ICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5n
V2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24s
ICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50
VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBv
bmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNt
b290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNl
dFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRv
dywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJp
bnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFu
IGluc3RhbnQgc2Nyb2xsaW5nIik7CisKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCA0N2ZkNWUxYTU0Li4zNmY1M2I2MGEzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENo
ZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNj
cm9sbCBiZWhhdmlvciByZWxpZXMgb24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBXZWIgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQg
b24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBFbmFibGUgQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCBvbiBzY3JvbGwgYmVoYXZpb3IgdGVzdHMgYW5kIHVw
ZGF0ZSBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRl
ZmF1bHQtY3NzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDoK
KworMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNo
IGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6CisKIDIwMTktMTItMTAgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1zeW5jIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2luLW9i
amVjdHMvY3Jvc3Mtb3JpZ2luLW9iamVjdHMuaHRtbCBmcm9tIHVzcHRyZWFtCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0
CmluZGV4IDNhYzBhMzdjZmYuLjg3NWE3MjdjOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NCBAQAogCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBoYXMgaW5pdGlhbCB2YWx1ZSBh
dXRvIGFzc2VydF90cnVlOiBzY3JvbGwtYmVoYXZpb3IgZG9lc24ndCBzZWVtIHRvIGJlIHN1cHBv
cnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9yIGRvZXMgbm90IGluaGVyaXQgYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBoYXMg
aW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgZG9lcyBu
b3QgaW5oZXJpdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0
CmluZGV4IDkwNjhiNzk3NTUuLjhkNGNhNjQxNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKIFBBU1MgSW5zdGFudCBzY3Jv
bGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAotRkFJTCBT
bW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU21vb3Ro
IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCmluZGV4IDY5MjVjZjA5MmMuLmZlNDc1YjAzOWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQ
RSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+
VGVzdGluZyBkZWZhdWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dAppbmRleCAyYjkxMjljMWNmLi41M2E5NjFlZjU2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMiwzNSArMiwzNSBA
QAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1G
QUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAor
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJ
TCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
NTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNt
b290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQuaHRtbAppbmRleCAzY2JkNzIyZjcyLi42YzE1OTI5YzlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50
PC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVk
LnR4dAppbmRleCBkOTIyMjU4YWYyLi45N2NhZWEyN2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTMsMzUgKzMsMzUgQEAgUEFTUyBQ
YWdlIGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
NDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190
aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVt
YmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBn
b3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFz
c2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3Qg
MjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQ
QVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1
dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAog
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJh
bWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCmluZGV4IGZjZjc1
YWExZGQuLjZkOWIyMjQyZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9y
IGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiB0
aGUgbWFpbiBmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25n
Ii8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFp
bHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGM2YmU5NjY2MWMuLjM4MjM4NWFhYjQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAg
LTMsMjcgKzMsMjcgQEAgUEFTUyBQYWdlIGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBi
dXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0
MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1
dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3cuaHRtbAppbmRleCA4Yzg4ZWM2ODYxLi5iZjM4NzMwNDI2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUg
aHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVu
dGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRl
c3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBvbiB0aGUg
d2luZG93IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2NhbGU9MSI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dAppbmRleCA3
Y2UxMGMwODk2Li40NDNhODIwZTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3Jv
bGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNj
cm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
c2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xs
LWJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IEVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
c2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50
cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKaW5kZXggM2E4OTA2NTMyYi4uM2YzZDliNzJkMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3Igd2l0aCBz
Y3JvbGxJbnRvVmlldyBmb3IgbmVzdGVkIHNjcm9sbGluZyBub2RlczwvdGl0bGU+CiA8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCmluZGV4IDAwNWQyYjYwNGQuLmVhYTBmZmYw
MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBd
IC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBl
bGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQi
IGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBX
YW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CmluZGV4IGI2ZmExYzJlYzguLjI3OTlmZGNjMjkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0z
LDM1ICszLDM1IEBAIFBBU1MgaWZyYW1lIGxvYWRlZAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlM
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAor
UEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3Ro
YW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
Ci1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBn
b3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3Vi
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3Vi
ZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmcgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAppbmRleCBlNjQxZTUzZTMz
Li5lOGNjYjY2YmU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVt
ZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1l
PC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dAppbmRleCBjYzY2NWViZGI4Li4wNWViMzI3MmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTMsMjcgKzMsMjcgQEAgUEFTUyBp
ZnJhbWUgbG9hZGVkCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJ
TCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xl
c3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3Ro
IHNjcm9sbGluZyAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9u
IHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKaW5kZXggZDkzMWUwMDNkNC4uOTI2ODRkNjc0ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURP
Q1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRp
dGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBh
bmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgogPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0NDk2
Y2YyZGNiLi4wNDFmMzZlYmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC03NDgsNiArNzQ4LDE1IEBAIHdlYmtpdC5vcmcvYi8xODk1OTQg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvcGVuZGlu
Zy1zCiAKIHdlYmtpdC5vcmcvYi8xODgwNzAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zdHJlYW1zL3BpcGluZy9lcnJvci1wcm9wYWdhdGlvbi1iYWNrd2FyZC5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KIAorIyBUZXN0cyBmb3Igc21vb3RoIHNjcm9sbCBiZWhhdmlvciBkbyBub3QgYWxs
IHdvcmsgYW5kIHRoZXkgYXJlIHNsb3csIHNvIGxldCdzIGp1c3Qgc2tpcCB0aGVtLgord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMTkxMzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBbIFNraXAgXQorCisjIFRo
aXMgaXMgZmFpbGluZyBvbiBtYWMtd2sxLCB0cnkgdG8gZmlndXJlIGl0IG91dCBpbiB0aGUgZm9s
bG93LXVwIGJ1Zy4KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS5odG1sIFsgU2tpcCBdCisKIHdlYmtp
dC5vcmcvYi8xODk5MDggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10
aW1pbmcvcmVzb3VyY2VfdGltaW5nLndvcmtlci5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5v
cmcvYi8xODk3NTYgWyBNb2phdmUrIF0gY29tcG9zaXRpbmcvZmlsdGVycy9vcGFjaXR5LWNoYW5n
ZS1vbi1maWx0ZXJlZC1wYWludHMtaW50by1hbmNlc3Rvci5odG1sIFsgUGFzcyBJbWFnZU9ubHlG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTIyMDY4NzMxYy4uMGU4MTRiYmMwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTk2NCw4ICs5NjQsMTAgQEAgc2V0KFdlYkNvcmVfTk9O
X1NWR19JRExfRklMRVMKICAgICBwYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsCiAgICAg
cGFnZS9SZXNpemVPYnNlcnZlckVudHJ5LmlkbAogICAgIHBhZ2UvU2NyZWVuLmlkbAorICAgIHBh
Z2UvU2Nyb2xsQmVoYXZpb3IuaWRsCiAgICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRs
CiAgICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsCisgICAgcGFnZS9TY3JvbGxPcHRp
b25zLmlkbAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAogICAgIHBhZ2UvU2hhcmVEYXRh
LmlkbAogICAgIHBhZ2UvVW5kb0l0ZW0uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmExNmI0NDBhZC4uYjdh
YTdjZDk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0NSBAQAorMjAxOS0xMi0xMSAgQ2F0aGll
IENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBp
T1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBzdXBwb3J0IG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybS4g
SXQgcmVsaWVzIG9uIFVJU2Nyb2xsVmlldydzCisgICAgICAgIG5hdGl2ZSBzY3JvbGwgYW5pbWF0
aW9uIHN1cHBvcnQgYW5kIGlzIGV4ZWN1dGVkIGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAg
IFRlc3RzOiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxl
bWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbAorCisgICAg
ICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBSZXF1ZXN0cyBhIG5hdGl2ZSBzY3JvbGwgYW5p
bWF0aW9uIGJ5IGNhbGxpbmcgYW5pbWF0ZWQgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKCku
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUpOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIGlmIHRoaXMgaXMgYW4g
YW5pbWF0ZWQgc2Nyb2xsIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOiBVcGRhdGUgdGhlIHNj
cm9sbCBhbmltYXRpb24gc3RhdHVzIGZyb20gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZSk6IEFkZCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbiB0byBpbmRp
Y2F0ZSBpdCdzIGFuaW1hdGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpyZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gY29uc3QpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0RpZENoYW5nZSk6IFVwZGF0ZSB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9s
bCBvciBub3QuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgdGhlIHNj
cm9sbCBpcyBhbmltYXRlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8pOiBJZiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uIGlzIHRy
dWUsIHNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MsIGV2ZW4gaWYg
dGhlIHNjcm9sbCBwb3NpdGlvbiBkb2Vzbid0IGNoYW5nZS4KKyAgICAgICAgTWFpbnRhaW4gdGhl
IHN0YXR1cyBvZiBtX3N0b3BTY3JvbGxBbmltYXRpb24gYW5kIG1fcmVxdWVzdFNjcm9sbFdpdGhB
bmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6
Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6IEFuaW1hdGVkIHNjcm9sbCB3b24ndCBjaGFu
Z2UgdGhlIHNjcm9sbCBwb3NpdGlvbiBpbW1lZGlhdGVseSwgc28gZG9uJ3Qgbm90aWZ5IHRoZSBz
Y3JvbGxpbmcgaW5mbyBub3cuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6c2V0UmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOiBtX3JlcXVlc3RTY3JvbGxX
aXRoQW5pbWF0aW9uIGluZGljYXRlcyB0aGF0IHRoaXMgaXMgYW4gYW5pbWF0ZWQgc2Nyb2xsIHJl
cXVlc3QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6cmVx
dWVzdFNjcm9sbFdpdGhBbmltYXRpb24gY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNz
KTogTWFpbnRhaW4gdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mg
Y29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKTogSWYgdGhlIE5vZGUgaXMg
cGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24sIHRoZSBwcmV2aW91cyBzY3JvbGwgYW5pbWF0
aW9uIHNob3VsZCBzdG9wIGZpcnN0LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU6Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24gY29uc3QpOiBEaXR0
by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6IEFkZCBTY3JvbGxCZWhhdmlvclR5
cGUgdG8gaW5kaWNhdGUgaXQncyBpbnN0YW50IG9yIHNtb290aCBzY3JvbGwuCisgICAgICAgIEFk
ZCBTY3JvbGxCZWhhdmlvclN0YXR1cyB0byBpbmRpY2F0ZSB0aGUgc3RhdHVzIG9mIHNjcm9sbGlu
Zy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKTogVXBkYXRlIFNjcm9sbEJlaGF2aW9yVHlw
ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEpOiBBZGQgbV9jdXJyZW50U2Nyb2xs
QmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6Y3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSBj
b25zdCk6IE1haW50YWluIGN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpzY3JvbGxUb09mZnNldCk6IFNlbmQgYSBxdWVzdCBvZiBuYXRpdmUgc2Nyb2xsLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bik6IFJlcXVlc3RzIGEgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gYnkgY2FsbGluZyBhbmltYXRl
ZCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKS4KKworMjAxOS0xMi0xMCAgQ2F0aGllIENo
ZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNj
cm9sbCBiZWhhdmlvciByZWxpZXMgb24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBXZWIgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQg
b24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBUaGlzIHBhdGNoIGlu
dHJvZHVjZXMgYSBwcm9ncmFtbWF0aWMgc21vb3RoIHNjcm9sbGluZyBpbiBXZWJLaXQgZnJvbSB0
aGUgQ1NTT00gVmlldworICAgICAgICBzcGVjaWZpY2F0aW9uIFsxXS4gVG8gdXNlIHRoaXMgZWZm
ZWN0LCB3ZWIgZGV2ZWxvcGVycyBjYW4gcGFzcyBhIGJlaGF2aW9yIHBhcmFtZXRlciAoYXV0bywK
KyAgICAgICAgc21vb3RoLCBvciBpbnN0YW50KSB0byBFbGVtZW50LnNjcm9sbCwgRWxlbWVudC5z
Y3JvbGxUbywgRWxlbWVudC5zY3JvbGxCeSwKKyAgICAgICAgRWxlbWVudC5zY3JvbGxJbnRvVmll
dywgV2luZG93LnNjcm9sbCwgV2luZG93LnNjcm9sbFRvIG9yIFdpbmRvdy5zY3JvbGxCeSBbMl0u
IFdoZW4gYmVoYXZpb3IKKyAgICAgICAgaXMgYXV0bywgdGhlIGluc3RhbnQvc21vb3RoIGNoYXJh
Y3RlcmlzdGljIGlzIGFjdHVhbGx5IHRha2VuIGZyb20gdGhlIHZhbHVlIG9mIGEgbmV3IENTUwor
ICAgICAgICBzY3JvbGwtYmVoYXZpb3IgcHJvcGVydHkgWzNdLiBCb3RoIHRoZSBuZXcgQ1NTIGFu
ZCBET00gYmVoYXZpb3IgYXJlIHByb3RlY3RlZCBieSBhIHJ1bnRpbWUKKyAgICAgICAgZmxhZy4K
KworICAgICAgICBbMV0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcKKyAgICAg
ICAgWzJdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNkaWN0ZGVmLXNjcm9s
bG9wdGlvbnMKKyAgICAgICAgWzNdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3
LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvcgorCisgICAgICAgIFRlc3RzOiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0
LWNzcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKKyAgICAgICAgICAg
ICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1u
ZXN0ZWQuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCisg
ICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICogU291cmNlcy50eHQ6IEJ1aWxkIFNj
cm9sbEFuaW1hdGlvblNtb290aC5jcHAgb24gYWxsIHBsYXRmb3Jtcy4KKyAgICAgICAgKiBTb3Vy
Y2VzR1RLLnR4dDogUmVtb3ZlIFNjcm9sbEFuaW1hdGlvblNtb290aC5jcHAgc2luY2UgaXQgaXMg
YnVpbHQgb24gYWxsIHBsYXRmb3JtcyBub3cuCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcpOiBQYXNzIHNjcm9sbCBi
ZWhhdmlvciwgaWYgYW55LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsQnkpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsVG8pOiBIYW5kbGUgdGhlIGNhc2Ugd2hl
biBzY3JvbGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
c2V0U2Nyb2xsTGVmdCk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBz
bW9vdGguCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRTY3JvbGxUb3ApOiBIYW5kbGUg
dGhlIGNhc2Ugd2hlbiBzY3JvbGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2Nyb2xsQnkgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzY3JvbGxUbyBjb25zdCk6IEhhbmRs
ZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgIFRoZSBv
cHRpbWl6YXRpb24gb2YgY2FuY2VsICgwLCAwKSBzY3JvbGxpbmcgaXMgc2tpcHBlZCBpZiBhbiBh
bmltYXRlZCBzY3JvbGwgaXMgaW4gcHJvZ3Jlc3MuCisgICAgICAgIE90aGVyd2lzZSwgdGhlIHBy
ZXZpb3VzIHNjcm9sbCB3b24ndCBiZSBzdG9wcGVkIGJ5IGEgZm9sbG93LXVwIHNjcm9sbC4KKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xs
VG9PZmZzZXRXaXRoQW5pbWF0aW9uKTogU3RhcnQgYW4gYW5pbWF0ZWQgc2Nyb2xsLgorICAgICAg
ICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUpOgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9u
OjpzY3JvbGwpOiBGdW5jdGlvbiB0byBhbmltYXRlIHNjcm9sbGluZyB0byBhIHNwZWNpZmllZCBw
b3NpdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwOiBC
dWlsZCB0aGlzIGZpbGUgb24gYWxsIHBsYXRmb3Jtcy4gQWRkIGEKKyAgICAgICAgc21vb3RoRmFj
dG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsIHBhcmFtZXRlciB0byBzbG93IGRvd24gdGhlIHNtb290
aCBzY3JvbGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNj
cm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25TbW9vdGg6OnVwZGF0ZVBl
ckF4aXNEYXRhKTogU2NhbGUgdGhlIHRpbWUgcGFyYW1ldGVycyBvZiB0aGUKKyAgICAgICAgYW5p
bWF0aW9uIHNvIHRoYXQgaXQgbG9va3Mgc21vb3RoZXIuCisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uU21vb3RoLmg6IERlY2xhcmUgdGhlIGNsYXNzIG9uIGFsbCBwbGF0Zm9ybXMu
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yKTogSW5pdGlhbGl6ZSBhbmltYXRpb24g
bWVtYmVyIGZvciBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0KTogQW5pbWF0ZSBzY3JvbGxpbmcgdG8gdGhlIHNw
ZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpjYW5j
ZWxBbmltYXRpb25zKTogQ29weSBsb2dpYyBmcm9tIFNjcm9sbEFuaW1hdGlvblNtb290aC5jcHAu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6c2VydmljZVNjcm9sbEFuaW1hdGlv
bnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjp3aWxsRW5kTGl2
ZVJlc2l6ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFk
ZFZlcnRpY2FsU2Nyb2xsYmFyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvcjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmg6IE5ldyBhbmltYXRpb24gbWVtYmVyIGZvciBzbW9vdGggcHJv
Z3JhbW1hdGljIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpT
Y3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VTY3JvbGxBbmltYXRp
b25zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxB
bmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0
b3I6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbFR5cGVzLmg6IEFkZCBTY3JvbGxCZWhhdmlvclN0YXR1cyB0byBpbmRpY2F0ZSB0
aGUgc3RhdHVzIG9mIHNjcm9sbGluZy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKTogRm9s
bG93IHRoZSBDU1NPTSBWaWV3IHNwZWM6IElmIGEgc2Nyb2xsIGlzIGluCisgICAgICAgIHByb2dy
ZXNzLCB3ZSBpbnRlcnJ1cHQgaXQgYW5kIGNvbnRpbnVlIHRoZSBzY3JvbGwgY2FsbCAoZXZlbiB3
aGVuIHdlIGFyZSBhdCB0aGUgZmluYWwgcG9zaXRpb24pLgorICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbFZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNTY3JvbGxJblByb2dyZXNzKTogSGVscGVy
IGZ1bmN0aW9uIHRvIGNoZWNrIHdoZXRoZXIgc2Nyb2xsCisgICAgICAgIGFuaW1hdGlvbiBpcyBp
biBwcm9ncmVzcyBvbiB0aGUgYW5pbWF0b3IuIFVzaW5nIHRoZSBtX2N1cnJlbnRTY3JvbGxCZWhh
dmlvclN0YXR1cywKKyAgICAgICAgaWYgaXQncyBJbk5vbk5hdGl2ZUFuaW1hdGlvbiBhbmQgbV9z
Y3JvbGxBbmltYXRvciBkb2VzIG5vdCBleGlzdCB3ZSBkb24ndCBjb25zdHJ1Y3QgaXQuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNOb25OYXRpdmVBbmltYXRpb25JblByb2dy
ZXNzKTogQ2hlY2sgaWYgdGhlIG1fc2Nyb2xsQW5pbWF0b3Igb2YKKyAgICAgICAgdGhlIFdlYiBw
cm9jZXNzIGlzIHBlcmZvcm1pbmcgYSBzY3JvbGwgYW5pbWF0aW9uLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFscyk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUFu
aW1hdGlvbik6IFRvIGF2b2lkIGl0ZXJhdGUgY2FsbGluZywKKyAgICAgICAgbW92ZSB0aGUgcmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uKSBjaGVja2luZyBvdXQgb2Ygc2V0U2Ny
b2xsT2Zmc2V0RnJvbUFuaW1hdGlvbigpLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6Y3VycmVudFNjcm9sbEJl
aGF2aW9yU3RhdHVzIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVz
LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbEJlaGF2aW9yU3Rh
dHVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvckdlbmVyaWM6OnVwZGF0ZVBvc2l0
aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2VsQW5pbWF0aW9ucyk6IENhbGwg
cGFyZW50IG1lbWJlciB0byBoYW5kbGUgcHJvZ3JhbW1hdGljIHNjcm9sbGluZy4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6
c2V0U2Nyb2xsTGVmdCk6IEFkZCBmbGFnIHRvIGluZGljYXRlIGFuaW1hdGVkIG9yIG5vdC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xsVG9wKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb1hQb3NpdGlvbik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQpOiBGb2xsb3cgdGhl
IENTU09NIFZpZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdl
IGludGVycnVwdCBpdCBhbmQgY29udGludWUgdGhlIHNjcm9sbCBjYWxsIChldmVuIHdoZW4gd2Ug
YXJlIGF0IHRoZSBmaW5hbAorICAgICAgICBwb3NpdGlvbikuIEl0J3MgU2Nyb2xsQmVoYXZpb3JU
eXBlOjpJbnN0YW50IHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZXF1
ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6IERpdHRvLiBUaGlzIGlzIHNpbWlsYXIgdG8g
c2Nyb2xsVG9PZmZzZXQKKyAgICAgICAgYnV0IGFuaW1hdGVzIHRoZSBzY3JvbGwuIEl0J3MgU2Ny
b2xsQmVoYXZpb3JUeXBlOjpTbW9vdGggc2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxS
ZWN0VG9WaXNpYmxlKTogQWdhaW4gZG9uJ3QgZG8gYW4gZWFybHkgcmV0dXJuIGlmIHNjcm9sbCBp
cyBpbgorICAgICAgICBwcm9ncmVzcy4gV2UgY2FsbCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRp
b24gaW5zdGVhZCBvZiBzY3JvbGxUb09mZnNldCB3aGVuIGFwcHJvcHJpYXRlLgorICAgICAgICBO
b3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBtYXkgbm90IHdvcmsgd2VsbCBmb3Igc2V2ZXJhbCBuZXN0
ZWQgc2Nyb2xsIGJveGVzIHdpdGggYXQgbGVhc3Qgb25lCisgICAgICAgIGVsZW1lbnQgd2l0aCBz
bW9vdGggYmVoYXZpb3IuIEl0IHdpbGwgaGFuZGxlZCBpbiBidWcgRm9sbG93LgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5oOiBBZGQgc2Nyb2xsIGJlaGF2aW9yIHRvIFNjcm9sbFRl
Y3RUb1Zpc2libGVPcHRpb25zLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldFNjcm9sbExlZnQpOiBBZGQg
YW5pbWF0ZWQgZmxhZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldFNjcm9s
bFRvcCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbExlZnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxU
b3ApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OnVuY29uc3RyYWluZWRTY3JvbGxUbyk6CisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVu
ICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3Jv
bGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgc2Nyb2xsLWJlaGF2aW9yIGNzcyBwcm9wZXJ0
eSBhbmQgU2Nyb2xsT3B0aW9ucy4KKworICAgICAgICBUZXN0czogTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS5odG1s
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIElETCBmaWxlcyBmb3IgU2Nyb2xsT3B0
aW9ucyBhbmQgU2Nyb2xsQmVoYXZpb3IuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOiBBZGQgaGVhZGVycyBmb3IgU2Nyb2xsQmVoYXZvciBh
bmQgU2Nyb2xsT3B0aW9ucy4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkIFNjcm9sbEJlaGF2
b3IgYW5kIFNjcm9sbE9wdGlvbnMgaW1wbGVtZW50YXRpb24uCisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgZmlsZXMgdG8gdGhlIGJ1aWxkIHN5c3RlbS4K
KyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDogSGFuZGxlIHNj
cm9sbC1iZWhhdmlvci4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6
OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydGllcy5q
c29uOiBBZGQgc2Nyb2xsLWJlaGF2aW9yLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRz
LmluOiBBZGQga2V5d29yZHMgZm9yIHNjcm9sbC1iZWhhdmlvci4KKyAgICAgICAgKiBjc3MvcGFy
c2VyL0NTU1BhcnNlckNvbnRleHQuY3BwOiBBZGQgcnVudGltZSBjb25maWcgZm9yIHNjcm9sbC1i
ZWhhdmlvci4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogY3NzL3Bh
cnNlci9DU1NQYXJzZXJDb250ZXh0Lmg6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyQ29udGV4dEhhc2g6Omhhc2gpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyRmFz
dFBhdGhzLmNwcDogUmVtb3ZlIHNjcm9sbC1iZWhhdmlvciB0ZW1wbGF0ZXMuIEl0IGlzIGhhbmRs
ZWQgaW4gdGhlIHNsb3cgcGF0aCBzaW5jZSBwcm9wZXJ0eSBjYW4gYmUgZGlzYWJsZWQuCisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlB
bmRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29y
ZFByb3BlcnR5SUQpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZVNjcm9sbEJlaGF2aW9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKTogUGFyc2Ugc2Nyb2xs
LWJlaGF2aW9yIChvbmx5IGlmIGVuYWJsZWQpLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZp
b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnVzZVNtb290aFNjcm9sbGluZyk6IEhl
bHBlciBmdW5jaXRvbiB0byBkZXRlcm1pbmUgdGhlIHNjcm9sbCBiZWhhdmlvciB0byBhcHBseSB0
byBhbiBlbGVtZW50IGZyb20gdGhlIENTUyBhbmQgRE9NIGJlaGF2aW9yLgorICAgICAgICAqIHBh
Z2UvU2Nyb2xsQmVoYXZpb3IuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxCZWhhdmlv
ci5pZGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmg6IE1h
a2UgdGhpcyBjbGFzcyBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbi4gQWxzbyByZW1vdmUgdW5u
ZWNlc3NhcnkgZm9yd2FyZCBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEludG9W
aWV3T3B0aW9ucy5pZGw6IE1ha2UgdGhpcyBjbGFzcyBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlv
bi4KKyAgICAgICAgKiBwYWdlL1Njcm9sbE9wdGlvbnMuaDogQWRkZWQuCisgICAgICAgICogcGFn
ZS9TY3JvbGxPcHRpb25zLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxUb09wdGlv
bnMuaDogTWFrZSB0aGlzIHN0cnVjdCBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbnMuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxUb09wdGlvbnM6OlNjcm9sbFRvT3B0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpub3JtYWxpemVOb25GaW5pdGVDb29yZGluYXRlc09yRmFsbEJhY2tUbyk6IENv
cHkgdGhlIGN1cnJlbnQgU2Nyb2xsVG9PcHRpb25zIHNvIHRoYXQgdGhlIHNjcm9sbCBiZWhhdmlv
ciBpcyBwcmVzZXJ2ZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsOiBNYWtl
IHRoaXMgY2xhc3MgaW5oZXJpdCBmcm9tIFNjcm9sbE9wdGlvbnMuCisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy55YW1sOiBOZXcgc2V0dGluZyBmb3IgQ1NTT00gVmlldyBzbW9vdGggc2Nyb2xsaW5n
LgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOiBIYW5kbGUgJ3Ntb290
aCBzY3JvbGxpbmcnIGJvb2xlYW4gZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
Ojp1c2VTbW9vdGhTY3JvbGxpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5
bGU6OnNldFVzZVNtb290aFNjcm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6aW5pdGlhbFVzZVNtb290aFNjcm9sbGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09IGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTbW9vdGhTY3JvbGxpbmcpOgorCiAy
MDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBGaXhlZCBQYXR0ZXJuLmggY29tcGlsZSBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKaW5kZXggMGJmYWJlY2E0My4uZTk3MTRjODVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC05MTUsOCArOTE1LDEwIEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL3BhZ2UvUmVzaXplT2JzZXJ2ZXJDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkv
cGFnZS9SZXNpemVPYnNlcnZlckVudHJ5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1NjcmVl
bi5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxCZWhhdmlvci5pZGwgXAogICAgICQo
V2ViQ29yZSkvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUp
L3BhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9wYWdlL1Nj
cm9sbE9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1NoYXJlRGF0YS5pZGwgXAogICAgICQoV2ViQ29yZSkv
cGFnZS9VbmRvSXRlbS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZWU4OWVlM2YwYy4uMmYx
NzcyNjBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC04MTYsOCArODE2LDEwIEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1JlbW90ZUZyYW1lLmgKICAg
ICBwYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCiAgICAgcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgKKyAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmgKICAgICBwYWdlL1Njcm9sbElu
dG9WaWV3T3B0aW9ucy5oCiAgICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaAorICAgIHBh
Z2UvU2Nyb2xsT3B0aW9ucy5oCiAgICAgcGFnZS9TY3JvbGxUb09wdGlvbnMuaAogICAgIHBhZ2Uv
U2VjdXJpdHlPcmlnaW4uaAogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKaW5kZXggYmNhNzNjZjllNy4uM2U2ODA0NGYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE2NDcs
NiArMTY0Nyw3IEBAIHBhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwCiBwYWdlL1Jlc291cmNl
VXNhZ2VUaHJlYWQuY3BwCiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCiBwYWdlL1Nj
cmVlbi5jcHAKK3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNw
cAogcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCiBwYWdlL1NlY3VyaXR5UG9saWN5LmNwcApA
QCAtMTc1Miw2ICsxNzUzLDcgQEAgcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAog
cGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAogcGxhdGZvcm0vU1NMS2V5R2Vu
ZXJhdG9yLmNwcAogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCitwbGF0Zm9ybS9TY3JvbGxB
bmltYXRpb25TbW9vdGguY3BwCiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAogcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC0zMzc2LDggKzMzNzgs
MTAgQEAgSlNTVkdab29tQW5kUGFuLmNwcAogSlNTVkdab29tRXZlbnQuY3BwCiBKU1NjcmVlbi5j
cHAKIEpTU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKK0pTU2Nyb2xsQmVoYXZpb3IuY3BwCiBKU1Nj
cm9sbEludG9WaWV3T3B0aW9ucy5jcHAKIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcAorSlNT
Y3JvbGxPcHRpb25zLmNwcAogSlNTY3JvbGxUb09wdGlvbnMuY3BwCiBKU1NlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQuY3BwCiBKU1NlcnZpY2VXb3JrZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0
CmluZGV4IGMyYzI3MDliODcuLjU0YjUzNmVkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CkBAIC02
Myw3ICs2Myw2IEBAIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZVN0aWNreU5v
ZGUuY3BwCiBwYWdlL3Njcm9sbGluZy9nZW5lcmljL1Njcm9sbGluZ1RocmVhZEdlbmVyaWMuY3Bw
CiAKIHBsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuY3BwCi1wbGF0Zm9ybS9TY3JvbGxB
bmltYXRpb25TbW9vdGguY3BwCiBwbGF0Zm9ybS9Vc2VyQWdlbnRRdWlya3MuY3BwCiAKIHBsYXRm
b3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAzZTZmNTQzM2IuLmJj
OTk3MDZlODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTIzOTcsNiArMjM5Nyw4IEBACiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUw
NDhEMyAvKiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFFOEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJp
bGl0eUNoYW5nZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNUVCMCAvKiBKU1Njcm9sbExvZ2ljYWxQ
b3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87
IH07CiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNUVDMSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIz
MDExREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi87IH07CisJ
CTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVCMCAvKiBKU1Njcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBG
RkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5oICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAy
QjZFQzEgLyogSlNTY3JvbGxPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRp
b25zLmggKi87IH07CiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBKU1Njcm9sbFRvT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNF
OUIzMDExREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi87IH07CiAJCTgz
NDhCRkFDMUI4NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDhCRkFBMUI4NTcyOTUwMDkxMkYz
NiAvKiBDbGFzc0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODM0REZBRDAxRjdEQUU1RDAwQzI3MjVC
IC8qIFNoYXJlZFN0cmluZ0hhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzNERGQUNDMUY3REFFNTYwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNo
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI0
NTEsNiArMjQ1Myw4IEBACiAJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9u
QnViYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0M0NUI4RDFEQzJCNjdDMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzQzU3OTVEMURBNUMzMDEw
MDZGOUM4NiAvKiBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NTQyNCAvKiBTY3Jv
bGxMb2dpY2FsUG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyogU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzUwQzNFNzFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1
QzMwMTAwNkZBQzg2IC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xs
QmVoYXZpb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDOTcgLyogU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAw
MzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDQTggLyogU2Nyb2xsVG9P
cHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNEMzVBRUMxQzcxODdGQTAw
RjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUVBMUM3MTg3RUQwMEY3MEQ1QSAvKiBY
TUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDM1QUYyMUM3MThEOTAwMEY3
MEQ1QSAvKiBKU1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBK
U1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKQEAgLTEwMTY3LDkgKzEwMTcxLDE0
IEBACiAJCTgzNERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFN0cmluZ0hhc2guY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTU0MjQg
LyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MzUwQzNFNzFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEludG9WaWV3T3B0aW9ucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyog
U2Nyb2xsQmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xs
QmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2
MjAwMzU2NDM0IC8qIFNjcm9sbEJlaGF2aW9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2Nyb2xsQmVoYXZpb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsVG9PcHRpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIwMDM1NTQyNCAvKiBT
Y3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbExv
Z2ljYWxQb3NpdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4
MURBNTlCNjIwMDM1NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFNjcm9sbEludG9WaWV3T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2Nyb2xsQmVoYXZpb3IuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0
aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2Nyb2xsT3B0aW9ucy5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3Jv
bGxUb09wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbFRvT3B0aW9ucy5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTIwQzdEMUE3MUJGQ0MwMDZCRDJB
QSAvKiBDU1NGb250RmFtaWx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENT
U0ZvbnRGYW1pbHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1NjU3QzYxRUNB
QjBFODAwQ0RFNzJEIC8qIEpTRE9NTWF0cml4SW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0RPTU1hdHJpeEluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTAyOTEsOSArMTAzMDAsMTMgQEAKIAkJODNFOTU5RTExQjhCQzIyQjAwNEQ5
Mzg1IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTmF0aXZlTm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5
QjMwMDFEQTVBNTFFMDBGRkQ4RDQgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkQ4
RTUgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhh
dmlvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Njcm9sbEJl
aGF2aW9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1QTUx
RTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1Njcm9sbE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RjYgLyogSlNTY3JvbGxUb09wdGlvbnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxUb09wdGlvbnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkQ4
RDQgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRp
b25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUw
MEZGRThENCAvKiBKU1Njcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU2Nyb2xsQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODNFOUIzMDExREE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9sbE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRp
b25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsVG9PcHRpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1OThCMUY1MDk1OEIwMDNFOEIz
MCAvKiBKU0Vycm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNFcnJvckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1OThD
MUY1MDk1OEIwMDNFOEIzMCAvKiBKU0Vycm9yQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNFcnJvckNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIwNzY4LDEwICsyMDc4MSwxNSBAQAogCQkJCUJDRUMwMUJBMEMyNzRE
QUMwMDlGNEVDOSAvKiBTY3JlZW4uY3BwICovLAogCQkJCUJDRUMwMUJCMEMyNzREQUMwMDlGNEVD
OSAvKiBTY3JlZW4uaCAqLywKIAkJCQlCQ0VDMDFCQzBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVu
LmlkbCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MzQgLyogU2Nyb2xsQmVoYXZpb3Iu
Y3BwICovLAorCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5o
ICovLAorCQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5pZGwg
Ki8sCiAJCQkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3T3B0aW9u
cy5oICovLAogCQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NTQzNSAvKiBTY3JvbGxJbnRvVmlld09w
dGlvbnMuaWRsICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dp
Y2FsUG9zaXRpb24uaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xs
TG9naWNhbFBvc2l0aW9uLmlkbCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MzUgLyog
U2Nyb2xsT3B0aW9ucy5oICovLAorCQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQzNSAvKiBTY3Jv
bGxPcHRpb25zLmlkbCAqLywKIAkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xs
VG9PcHRpb25zLmggKi8sCiAJCQkJODM1MEMzRTgxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRv
T3B0aW9ucy5pZGwgKi8sCiAJCQkJQkNEMEUwRjcwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5
T3JpZ2luLmNwcCAqLywKQEAgLTI1NTYzLDEwICsyNTU4MSwxNCBAQAogCQkJCTU4QjJGQTAyMjIz
MkQ2MEEwMDkzOEQ2MyAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnkuaCAqLywKIAkJCQlCQ0VDMDFD
MDBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uY3BwICovLAogCQkJCUJDRUMwMUMxMEMyNzRE
REQwMDlGNEVDOSAvKiBKU1NjcmVlbi5oICovLAorCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThE
NCAvKiBKU1Njcm9sbEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4
RDQgLyogSlNTY3JvbGxCZWhhdmlvci5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRDhF
NSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUx
RTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8sCiAJCQkJODNFOUIzMDAx
REE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcCAqLywKIAkJCQk4
M0U5QjMwMTFEQTVBNTFFMDBGRkQ4RDQgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCAqLywK
KwkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmNwcCAqLywK
KwkJCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmggKi8sCiAJ
CQkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmNwcCAqLywK
IAkJCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RjYgLyogSlNTY3JvbGxUb09wdGlvbnMuaCAqLywK
IAkJCQk3QzczRkIwRjE5MUVGNkY0MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXIuY3Bw
ICovLApAQCAtMzA5MTIsOCArMzA5MzQsMTAgQEAKIAkJCQk1RTJDNDM2QzFCQ0YwNzFFMDAwMUUy
QkMgLyogSlNSVENUcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFDMzBDMjc0
REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUNFMTJC
MDNGNjEwMDNBNTgzQSAvKiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVCMCAvKiBKU1Njcm9sbEJlaGF2aW9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQzEgLyogSlNTY3JvbGxJbnRvVmll
d09wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNUVCMCAv
KiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODM0NDc2RUYxREE1QkM1RTAwMkI2RUQyIC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRUQwNkFEMTFDNzc3NTQ4MDBGREZBRjEgLyogSlNTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTgyQzI1NjFGMzE0M0NEMDA1OUJB
N0MgLyogSlNTZXJ2aWNlV29ya2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTE3LDYgKzMyMTQx
LDcgQEAKIAkJCQk0NEM5OTE4NjBGM0QxRUJFMDA1ODY2NzAgLyogU2Nyb2xsYmFyVGhlbWVJT1Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEI4NTNFMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3JvbGxi
YXJUaGVtZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNzE0MDYxNDIxNzBCODAwREIzM0JB
IC8qIFNjcm9sbGJhclRoZW1lTW9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNDNTc5NUQxREE1
QzMwMTAwNkZBQzg2IC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE4
NEYwNTE0M0JBN0JEMDA1MUQxNTMgLyogU2Nyb2xsQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY2MDVBRUQxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUY2MkVFODE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzIxNTMsNiArMzIxNzgsNyBAQAogCQkJ
CTgzQzU3OTVEMURBNUMzMDEwMDZGOUM5NyAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdBQUZFOEQwMTlDQjg2NzIwMDBGNTZEOCAvKiBTY3JvbGxMYXRjaGlu
Z1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDODYgLyog
U2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0M1Nzk1RDFEQTVD
MzAxMDA2RkFDOTcgLyogU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ3ODc1
NTQxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGNDY3MjkyODFFMERFNjg1MDBBQ0MzRDggLyogU2Nyb2xsU25hcE9mZnNldHNJ
bmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDQTggLyogU2Ny
b2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMWM0ZTM2ZjE0OS4uZDRhYmYy
M2I3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKQEAgLTMzOTMsNiArMzM5MywxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1
dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0
eQogICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1ZhbHVlQXV0byk7CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVRvdWNoKTsKICNlbmRpZgorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5U2Nyb2xsQmVoYXZpb3I6CisgICAgICAgICAgICBpZiAoIXN0eWxlLnVzZVNtb290
aFNjcm9sbGluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRl
SWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7CisgICAgICAgICAgICByZXR1cm4gY3NzVmFs
dWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVNtb290aCk7CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlQZXJzcGVjdGl2ZToKICAgICAgICAgICAgIGlmICghc3R5bGUuaGFzUGVy
c3BlY3RpdmUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlk
ZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVz
Lmpzb24KaW5kZXggNDE1NzhhOTRlZC4uZjk4MmQzZjVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydGllcy5qc29uCkBAIC0zNTU3LDYgKzM1NTcsMTYgQEAKICAgICAgICAgICAgICAgICAi
dXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcvc2hhcGVzLmh0bWwiCiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0sCisgICAgICAgICJzY3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAg
ICAidmFsdWVzIjogWworICAgICAgICAgICAgICAgICJhdXRvIiwKKyAgICAgICAgICAgICAgICAi
c21vb3RoIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogewor
ICAgICAgICAgICAgICAgICJjYXRlZ29yeSI6ICJjc3NvbS12aWV3IiwKKyAgICAgICAgICAgICAg
ICAidXJsIjogImh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNj
cm9sbC1iZWhhdmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInNoYXBl
LXJlbmRlcmluZyI6IHsKICAgICAgICAgICAgICJpbmhlcml0ZWQiOiB0cnVlLAogICAgICAgICAg
ICAgInZhbHVlcyI6IFsKQEAgLTY0ODksNiArNjQ5OSwyMiBAQAogICAgICAgICAgICAgICAgICJ1
cmwiOiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy11aS00LyNwcm9wZGVmLXVzZXItc2VsZWN0
IgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Nyb2xsLWJlaGF2aW9yIjog
eworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiYXV0byIsCisgICAg
ICAgICAgICAgICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiY29kZWdl
bi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJjb252ZXJ0ZXIiOiAiU21vb3RoU2Ny
b2xsaW5nIiwKKyAgICAgICAgICAgICAgICAibmFtZS1mb3ItbWV0aG9kcyI6ICJVc2VTbW9vdGhT
Y3JvbGxpbmciCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAgICAg
ICAgICAgICAgICAic3RhdHVzIjogImV4cGVyaW1lbnRhbCIKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciIK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInNjcm9sbC1wYWRkaW5nIjogewog
ICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAiZW5h
YmxlLWlmIjogIkVOQUJMRV9DU1NfU0NST0xMX1NOQVAiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbgppbmRleCA4ZGZlM2FiYjIxLi5kYTgyNjllNjNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTM4OCw2ICsxMzg4LDEwIEBAIHBhbi15CiBw
aW5jaC16b29tCiAjZW5kaWYKIAorLy8gc2Nyb2xsLWJlaGF2aW9yCisvLyBhdXRvCitzbW9vdGgK
KwogLy8gaGFuZ2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKaW5kZXggNzUzNzE4OGNiOS4u
NzFmOWFhNjJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJz
ZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNv
bnRleHQuY3BwCkBAIC03NSw2ICs3NSw3IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNv
bnRleHQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAgICAg
YXR0YWNobWVudEVuYWJsZWQgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLmF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZCgpOwogI2VuZGlmCiAgICAgZGVmZXJyZWRDU1NQ
YXJzZXJFbmFibGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5kZWZlcnJlZENTU1BhcnNlckVuYWJs
ZWQoKTsKKyAgICBzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoKTsKICAgICB1c2VTeXN0ZW1BcHBlYXJhbmNl
ID0gZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNl
KCkgOiBmYWxzZTsKIH0KIApAQCAtOTksNiArMTAwLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAg
ICYmIGEuYXR0YWNobWVudEVuYWJsZWQgPT0gYi5hdHRhY2htZW50RW5hYmxlZAogI2VuZGlmCiAg
ICAgICAgICYmIGEuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJz
ZXJFbmFibGVkCisgICAgICAgICYmIGEuc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIuc2Nyb2xs
QmVoYXZpb3JFbmFibGVkCiAgICAgICAgICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9
PSBiLmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4KICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBl
YXJhbmNlID09IGIudXNlU3lzdGVtQXBwZWFyYW5jZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKaW5kZXggODY1MjVmZDcwYy4uYzc0ZGM5NGMyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTY1
LDYgKzY1LDcgQEAgcHVibGljOgogICAgIGJvb2wgYXR0YWNobWVudEVuYWJsZWQgeyBmYWxzZSB9
OwogI2VuZGlmCiAgICAgYm9vbCBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgeyBmYWxzZSB9Owor
ICAgIGJvb2wgc2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAgICAvLyBU
aGlzIGlzIG9ubHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgogICAgIGJv
b2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMTYsNyArMTE3LDgg
QEAgc3RydWN0IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9F
TEVNRU5UKQogICAgICAgICAgICAgJiBrZXkuYXR0YWNobWVudEVuYWJsZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgMTEKICNlbmRpZgotICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTI7IC8vIEtlZXAgdGhpcyBsYXN0Lgor
ICAgICAgICAgICAgJiBrZXkuc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICAg
ICAgPDwgMTIKKyAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IDEzOyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAgICAgaGFzaCBePSBX
VEY6OmludEhhc2goYml0cyk7CiAgICAgICAgIHJldHVybiBoYXNoOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRleCAzMWQx
MmFiOWFiLi40MjEyODg5ZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckZhc3RQYXRocy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJGYXN0UGF0aHMuY3BwCkBAIC02MzYsMTAgKzYzNiw2IEBAIGJvb2wgQ1NTUGFyc2Vy
RmFzdFBhdGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eUlkCiAgICAgICAgICAgICB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3RpY2t5IHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRTdGlja3k7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJlc2l6
ZTogLy8gbm9uZSB8IGJvdGggfCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBhdXRvCiAgICAgICAg
IHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQm90
aCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSG9yaXpvbnRhbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVl
VmVydGljYWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG87Ci0gICAgLy8gRklYTUUtTkVXUEFS
U0VSOiBJbnZlc3RpZ2F0ZSB0aGlzIHByb3BlcnR5LgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlT
Y3JvbGxCZWhhdmlvcjogLy8gYXV0byB8IHNtb290aAotICAgIC8vICAgICBBU1NFUlQoUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6Y3Nzb21TbW9vdGhTY3JvbGxFbmFibGVkKCkpOwotICAgIC8vICAg
cmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTbW9v
dGg7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNoYXBlUmVuZGVyaW5nOgogICAgICAgICByZXR1cm4g
dmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU9wdGltaXplU3Bl
ZWQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNyaXNwZWRnZXMgfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZUdlb21ldHJpY1ByZWNpc2lvbjsKICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlTGluZWpvaW46
CkBAIC05MzksNyArOTM1LDYgQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFBy
b3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIC8vIGNhc2UgQ1NTUHJvcGVy
dHlGb250S2VybmluZzoKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5SHlwaGVuczoKICAgICAvLyBj
YXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dBbmNob3I6Ci0gICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVNj
cm9sbEJlaGF2aW9yOgogICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxTbmFwVHlwZToKICAg
ICAvLyBjYXNlIENTU1Byb3BlcnR5VGV4dEFsaWduTGFzdDoKICAgICAvLyBjYXNlIENTU1Byb3Bl
cnR5VGV4dENvbWJpbmVVcHJpZ2h0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCBlYmQwZWFmNWY2Li42M2Y1YWI1MmY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjMy
Nyw2ICsyMzI3LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBjb25zdW1lU2Nyb2xs
U25hcFR5cGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAKICNlbmRpZgogCitzdGF0aWMg
UmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IoQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0gcmFuZ2UucGVlaygpLmlk
KCk7CisgICAgaWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZhbHVlSUQgIT0gQ1NTVmFs
dWVTbW9vdGgpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdW1lSWRl
bnQocmFuZ2UpOworfQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVyUmFk
aXVzQ29ybmVyKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1Bh
cnNlck1vZGUpCiB7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEg
PSBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdl
Tm9uTmVnYXRpdmUpOwpAQCAtMzkyNyw2ICszOTM1LDEwIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NT
UHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwg
Q1NTCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbFNuYXBUeXBlOgogICAgICAgICByZXR1cm4g
Y29uc3VtZVNjcm9sbFNuYXBUeXBlKG1fcmFuZ2UpOwogI2VuZGlmCisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVNjcm9sbEJlaGF2aW9yOgorICAgICAgICBpZiAoIW1fY29udGV4dC5zY3JvbGxCZWhhdmlv
ckVuYWJsZWQpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNv
bnN1bWVTY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDoK
ICAgICAgICAgcmV0dXJuIGNvbnN1bWVDbGlwKG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKICNp
ZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNzBkOWUx
YjBhZS4uYmU1YTg1MjZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODMyLDcgKzgzMiw2
IEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoT3B0aW9uYWw8VmFyaWFudDxib29sLCBT
Y3JvbGxJbnRvVmlld09wdGlvbnM+PiYmIGFyCiAgICAgYm9vbCBpbnNpZGVGaXhlZDsKICAgICBM
YXlvdXRSZWN0IGFic29sdXRlQm91bmRzID0gcmVuZGVyZXIoKS0+YWJzb2x1dGVBbmNob3JSZWN0
KCZpbnNpZGVGaXhlZCk7CiAKLSAgICAvLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQzKTogU3Vw
cG9ydCBTY3JvbGxCZWhhdmlvci4KICAgICBTY3JvbGxJbnRvVmlld09wdGlvbnMgb3B0aW9uczsK
ICAgICBpZiAoYXJnKSB7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBhcmcudmFsdWUoKTsKQEAgLTg1
MSw3ICs4NTAsOCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KE9wdGlvbmFsPFZhcmlh
bnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgogICAgICAgICBTZWxlY3Rpb25S
ZXZlYWxNb2RlOjpSZXZlYWwsCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFsaWduWCA6IGFsaWdu
WSwKICAgICAgICAgaXNIb3Jpem9udGFsID8gYWxpZ25ZIDogYWxpZ25YLAotICAgICAgICBTaG91
bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObworICAgICAgICBTaG91bGRBbGxvd0Nyb3Nz
T3JpZ2luU2Nyb2xsaW5nOjpObywKKyAgICAgICAgb3B0aW9ucy5iZWhhdmlvci52YWx1ZU9yKFNj
cm9sbEJlaGF2aW9yOjpBdXRvKQogICAgIH07CiAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRv
VmlzaWJsZShhYnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIHZpc2libGVPcHRpb25zKTsKIH0K
QEAgLTkxMiw3ICs5MTIsNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRv
T3B0aW9ucyYgb3B0aW9ucykKIAogdm9pZCBFbGVtZW50OjpzY3JvbGxCeShkb3VibGUgeCwgZG91
YmxlIHkpCiB7Ci0gICAgc2Nyb2xsQnkoeyB4LCB5IH0pOworICAgIHNjcm9sbEJ5KFNjcm9sbFRv
T3B0aW9ucyh4LCB5KSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xs
VG9PcHRpb25zJiBvcHRpb25zLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKQEAgLTk0OCwxMyAr
OTQ4LDE3IEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBv
cHRpb25zLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKICAgICAgICAgYWRqdXN0Rm9yQWJzb2x1
dGVab29tKHJlbmRlcmVyLT5zY3JvbGxMZWZ0KCksICpyZW5kZXJlciksCiAgICAgICAgIGFkanVz
dEZvckFic29sdXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsVG9wKCksICpyZW5kZXJlcikKICAgICAp
OwotICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxMZWZ0KGNsYW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0
aW9ucy5sZWZ0LnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpLCBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKLSAgICByZW5kZXJlci0+c2V0U2Ny
b2xsVG9wKGNsYW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRl
cmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
Y2xhbXBpbmcpOworICAgIEludFBvaW50IHNjcm9sbFBvc2l0aW9uKAorICAgICAgICBjbGFtcFRv
SW50ZWdlcihzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXItPnN0eWxlKCku
ZWZmZWN0aXZlWm9vbSgpKSwKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25z
LnRvcC52YWx1ZSgpICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKQorICAgICk7
CisgICAgYm9vbCBhbmltYXRlZCA9IHVzZVNtb290aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMu
YmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0byksICp0aGlzKTsKKyAgICByZW5k
ZXJlci0+c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYywgYW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxU
byhkb3VibGUgeCwgZG91YmxlIHkpCiB7Ci0gICAgc2Nyb2xsVG8oeyB4LCB5IH0pOworICAgIHNj
cm9sbFRvKFNjcm9sbFRvT3B0aW9ucyh4LCB5KSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xs
QnlVbml0cyhpbnQgdW5pdHMsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMTI4
OCwxMyArMTI5MiwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQp
CiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
IAogICAgIGlmIChkb2N1bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAg
ICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKLSAg
ICAgICAgICAgIGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRp
Y19jYXN0PGludD4obmV3TGVmdCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZy
YW1lU2NhbGVGYWN0b3IoKSksIGZyYW1lLT52aWV3KCktPnNjcm9sbFkoKSkpOworICAgICAgICBp
ZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpIHsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1l
bnQoKT8KKyAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gZG9jdW1lbnQoKS5k
b2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1
dG8sICpkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT52
aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4obmV3TGVm
dCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSks
IGZyYW1lLT52aWV3KCktPnNjcm9sbFkoKSksIGFuaW1hdGVkKTsKKyAgICAgICAgfQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcmVuZGVyQm94KCkp
IHsKLSAgICAgICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoc3RhdGljX2Nhc3Q8aW50PihuZXdM
ZWZ0ICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljKTsKKyAgICAgICAgaW50IGNsYW1wZWRMZWZ0ID0gY2xhbXBUb0ludGVnZXIobmV3
TGVmdCAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGJvb2wg
YW5pbWF0ZWQgPSB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICp0aGlz
KTsKKyAgICAgICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoY2xhbXBlZExlZnQsIFNjcm9sbFR5
cGU6OlByb2dyYW1tYXRpYywgYW5pbWF0ZWQpOwogICAgICAgICBpZiAoYXV0byogc2Nyb2xsYWJs
ZUFyZWEgPSByZW5kZXJlci0+bGF5ZXIoKSkKICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5z
ZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSh0cnVlKTsKICAgICB9CkBAIC0xMzA1LDEz
ICsxMzE1LDE5IEBAIHZvaWQgRWxlbWVudDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3ApCiAgICAg
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAg
IGlmIChkb2N1bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAgIGlm
IChhdXRvKiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKLSAgICAgICAg
ICAgIGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZyYW1lLT52aWV3
KCktPnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+cGFnZVpvb21G
YWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKSk7CisgICAgICAgIGlmIChhdXRv
KiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkgeworICAgICAgICAgICAg
Ly8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgpPwor
ICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDUwNTkKKyAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBkb2N1bWVudCgpLmRvY3VtZW50
RWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvcjo6QXV0bywgKmRv
Y3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+
c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoZnJhbWUtPnZpZXcoKS0+c2Nyb2xsWCgpLCBzdGF0
aWNfY2FzdDxpbnQ+KG5ld1RvcCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZy
YW1lU2NhbGVGYWN0b3IoKSkpLCBhbmltYXRlZCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKSB7Ci0gICAg
ICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3Aoc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiByZW5k
ZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMp
OworICAgICAgICBpbnQgY2xhbXBlZFRvcCA9IGNsYW1wVG9JbnRlZ2VyKG5ld1RvcCAqIHJlbmRl
cmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSB1
c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICp0aGlzKTsKKyAgICAgICAg
cmVuZGVyZXItPnNldFNjcm9sbFRvcChjbGFtcGVkVG9wLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0
aWMsIGFuaW1hdGVkKTsKICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVy
ZXItPmxheWVyKCkpCiAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxk
Q2xlYXJMYXRjaGVkU3RhdGUodHJ1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CmluZGV4IDA1NjhiMDY5ZGMuLmIwNjkxOWYyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKQEAgLTE1OTUsNyArMTU5NSw3IEBAIGRvdWJsZSBET01XaW5kb3c6OmRldmljZVBpeGVsUmF0
aW8oKSBjb25zdAogCiB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5
KSBjb25zdAogewotICAgIHNjcm9sbEJ5KHsgeCwgeSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxU
b09wdGlvbnMoeCwgeSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsQnkoY29uc3QgU2Ny
b2xsVG9PcHRpb25zJiBvcHRpb25zKSBjb25zdApAQCAtMTYxNywxMCArMTYxNywxMCBAQCB2b2lk
IERPTVdpbmRvdzo6c2Nyb2xsQnkoY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zKSBjb25z
dAogCiB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5LCBTY3JvbGxD
bGFtcGluZyBjbGFtcGluZykgY29uc3QKIHsKLSAgICBzY3JvbGxUbyh7IHgsIHkgfSwgY2xhbXBp
bmcpOworICAgIHNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucyh4LCB5KSwgY2xhbXBpbmcpOwogfQog
Ci12b2lkIERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25z
LCBTY3JvbGxDbGFtcGluZykgY29uc3QKK3ZvaWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBT
Y3JvbGxUb09wdGlvbnMmIG9wdGlvbnMsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKSBjb25zdAog
ewogICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTE2MzMsMTIgKzE2MzMsMjIgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNvbnN0
IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0CiAgICAgICAg
IHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKS54KCksIHZpZXctPmNvbnRlbnRzU2Nyb2xs
UG9zaXRpb24oKS55KCkKICAgICApOwogCi0gICAgaWYgKCFzY3JvbGxUb09wdGlvbnMubGVmdC52
YWx1ZSgpICYmICFzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkgJiYgdmlldy0+Y29udGVudHNT
Y3JvbGxQb3NpdGlvbigpID09IEludFBvaW50KDAsIDApKQorICAgIC8vIFRoaXMgaXMgYW4gb3B0
aW1pemF0aW9uIGZvciB0aGUgY29tbW9uIGNhc2Ugb2Ygc2Nyb2xsaW5nIHRvICgwLCAwKSB3aGVu
IHRoZSBzY3JvbGxlciBpcyBhbHJlYWR5IGF0IHRoZSBvcmlnaW4uCisgICAgLy8gSWYgYW4gYW5p
bWF0ZWQgc2Nyb2xsIGlzIGluIHByb2dyZXNzLCB0aGlzIG9wdGltaXphdGlvbiBpcyBza2lwcGVk
IHRvIGVuc3VyZSB0aGF0IHRoZSBhbmltYXRlZCBzY3JvbGwgaXMgcmVhbGx5IHN0b3BwZWQuCisg
ICAgaWYgKCF2aWV3LT5pc1Njcm9sbEluUHJvZ3Jlc3MoKSAmJiAhc2Nyb2xsVG9PcHRpb25zLmxl
ZnQudmFsdWUoKSAmJiAhc2Nyb2xsVG9PcHRpb25zLnRvcC52YWx1ZSgpICYmIHZpZXctPmNvbnRl
bnRzU2Nyb2xsUG9zaXRpb24oKSA9PSBJbnRQb2ludCgwLCAwKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAKICAgICBJbnRQb2ludCBsYXlvdXRQb3Modmlldy0+bWFwRnJvbUNTU1RvTGF5b3V0VW5pdHMo
c2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSksIHZpZXctPm1hcEZyb21DU1NUb0xheW91dFVu
aXRzKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSkpOworCisgICAgLy8gRklYTUU6IFNob3Vs
ZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgpPworICAgIC8vIFNlZSBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgaWYgKGRvY3Vt
ZW50KCktPmRvY3VtZW50RWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhzY3JvbGxUb09w
dGlvbnMuYmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0byksICpkb2N1bWVudCgp
LT5kb2N1bWVudEVsZW1lbnQoKSkpIHsKKyAgICAgICAgdmlldy0+c2Nyb2xsVG9PZmZzZXRXaXRo
QW5pbWF0aW9uKGxheW91dFBvcywgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFtcGluZyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB2aWV3LT5zZXRDb250ZW50c1Njcm9sbFBv
c2l0aW9uKGxheW91dFBvcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAw
NDAxMmY5ZWZmLi45MDQ4ZmQ0MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0y
Mjc5LDcgKzIyNzksNyBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsRWxlbWVudFRvUmVjdChjb25z
dCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIHNldFNjcm9sbFBv
c2l0aW9uKEludFBvaW50KGJvdW5kcy54KCkgLSBjZW50ZXJpbmdPZmZzZXRYIC0gcmVjdC54KCks
IGJvdW5kcy55KCkgLSBjZW50ZXJpbmdPZmZzZXRZIC0gcmVjdC55KCkpKTsKIH0KIAotdm9pZCBG
cmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQ
b3NpdGlvbikKK3ZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQ
b3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgYW5pbWF0ZWQpCiB7CiAgICAgTE9HX1dJVEhf
U1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
ICIgPDwgc2Nyb2xsUG9zaXRpb24gPDwgIiAsIGNsZWFyaW5nIGFuY2hvciIpOwogCkBAIC0yMjky
LDcgKzIyOTIsMTAgQEAgdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNj
cm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5w
YWdlKCk7CiAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkK
ICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocGFnZS0+
d2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwotICAgIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0
aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICBpZiAoYW5pbWF0ZWQpCisgICAgICAgIHNjcm9sbFRv
T2Zmc2V0V2l0aEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRp
b24pLCBjdXJyZW50U2Nyb2xsVHlwZSgpKTsKKyAgICBlbHNlCisgICAgICAgIFNjcm9sbFZpZXc6
OnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKIAogICAgIHNldEN1cnJlbnRTY3Jv
bGxUeXBlKG9sZFNjcm9sbFR5cGUpOwogfQpAQCAtMzY2MCw2ICszNjYzLDI2IEBAIHZvaWQgRnJh
bWVWaWV3OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgbmV3UG9zaXRpb24pCiAgICAg
ZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0KCk7CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09m
ZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUg
c2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5
cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9s
bFR5cGUpOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlw
ZTo6U21vb3RoKTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBv
c2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlw
ZShwcmV2aW91c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisK
KyAgICBpZiAoaXNOb25OYXRpdmVBbmltYXRpb25JblByb2dyZXNzKCkpCisgICAgICAgIHNjcm9s
bEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOworICAgIGlmIChvZmZzZXQgIT0gdGhpcy0+
c2Nyb2xsT2Zmc2V0KCkpCisgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24ob2Zmc2V0KTsKKyAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Nj
cm9sbFR5cGUpOworfQorCiBmbG9hdCBGcmFtZVZpZXc6OmFkanVzdFNjcm9sbFN0ZXBGb3JGaXhl
ZENvbnRlbnQoZmxvYXQgc3RlcCwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNj
cm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlmIChncmFudWxhcml0eSAhPSBT
Y3JvbGxCeVBhZ2UgfHwgb3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCmluZGV4IGUzNmY5OTY4MDQuLmIzN2YwNjBlMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaApAQCAtMjIzLDcgKzIyMyw3IEBAIHB1YmxpYzoKICNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGaXhlZFZpc2libGVD
b250ZW50UmVjdChjb25zdCBJbnRSZWN0JikgZmluYWw7CiAjZW5kaWYKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQ
b3NpdGlvbiYsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSkgZmluYWw7CiAgICAgdm9pZCByZXN0b3Jl
U2Nyb2xsYmFyKCk7CiAgICAgdm9pZCBzY2hlZHVsZVNjcm9sbFRvRm9jdXNlZEVsZW1lbnQoU2Vs
ZWN0aW9uUmV2ZWFsTW9kZSk7CiAgICAgdm9pZCBzY3JvbGxUb0ZvY3VzZWRFbGVtZW50SW1tZWRp
YXRlbHlJZk5lZWRlZCgpOwpAQCAtNjU5LDYgKzY1OSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
cmVuZGVyTGF5ZXJEaWRTY3JvbGwoY29uc3QgUmVuZGVyTGF5ZXImKTsKIAorICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNl
dCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5n
ID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBzY3Jv
bGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRS
ZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KSBmaW5hbDsKICAgICB2
b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAuLjRlZDI5Y2I0MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTY3JvbGxCZWhhdmlvci5oIgorCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgor
I2luY2x1ZGUgIlNldHRpbmdzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCB1c2VT
bW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IsIEVsZW1lbnQmIGFzc29jaWF0
ZWRFbGVtZW50KQoreworICAgIGlmICghYXNzb2NpYXRlZEVsZW1lbnQuZG9jdW1lbnQoKS5zZXR0
aW5ncygpLkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoKSB8fCAhYXNzb2NpYXRlZEVs
ZW1lbnQucmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZworICAgIHN3aXRjaCAoYmVo
YXZpb3IpIHsKKyAgICBjYXNlIFNjcm9sbEJlaGF2aW9yOjpBdXRvOgorICAgICAgICByZXR1cm4g
YXNzb2NpYXRlZEVsZW1lbnQucmVuZGVyZXIoKS0+c3R5bGUoKS51c2VTbW9vdGhTY3JvbGxpbmco
KTsKKyAgICBjYXNlIFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50OgorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgY2FzZSBTY3JvbGxCZWhhdmlvcjo6U21vb3RoOgorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbEJlaGF2aW9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9y
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMWJhZWY4ODFlOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaApAQCAt
MCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7
CisKK2VudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3IgOiB1aW50OF90IHsKKyAgICBBdXRvID0gMCwK
KyAgICBJbnN0YW50LAorICAgIFNtb290aAorfTsKKworYm9vbCB1c2VTbW9vdGhTY3JvbGxpbmco
U2Nyb2xsQmVoYXZpb3IsIEVsZW1lbnQmIGFzc29jaWF0ZWRFbGVtZW50KTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhh
dmlvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44OTcxYWU5MzdhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5pZGwKQEAgLTAsMCArMSwy
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitlbnVt
IFNjcm9sbEJlaGF2aW9yIHsgImF1dG8iLCAiaW5zdGFudCIsICJzbW9vdGgiIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaAppbmRleCA5MzljZDczNDI1Li5m
Mjc1ZjJmYmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3
T3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25z
LmgKQEAgLTIwLDEyICsyMCwxMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTY3JvbGxM
b2dpY2FsUG9zaXRpb24uaCIKKyNpbmNsdWRlICJTY3JvbGxPcHRpb25zLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgRWxlbWVudDsKLQotc3RydWN0IFNjcm9sbEludG9WaWV3T3B0
aW9ucyB7CitzdHJ1Y3QgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7CiAg
ICAgT3B0aW9uYWw8U2Nyb2xsTG9naWNhbFBvc2l0aW9uPiBibG9ja1Bvc2l0aW9uIHsgU2Nyb2xs
TG9naWNhbFBvc2l0aW9uOjpTdGFydCB9OwogICAgIE9wdGlvbmFsPFNjcm9sbExvZ2ljYWxQb3Np
dGlvbj4gaW5saW5lUG9zaXRpb24geyBTY3JvbGxMb2dpY2FsUG9zaXRpb246Ok5lYXJlc3QgfTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9u
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKaW5k
ZXggY2Y5ZDFmZDc2Ny4uMWIyNGM2ODZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Ny
b2xsSW50b1ZpZXdPcHRpb25zLmlkbApAQCAtMTcsOCArMTcsNyBAQAogICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCiAgKi8KIAotLy8gRklYTUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1
cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCi1kaWN0aW9uYXJ5IFNjcm9sbEludG9WaWV3T3B0aW9ucyB7
CitkaWN0aW9uYXJ5IFNjcm9sbEludG9WaWV3T3B0aW9ucyA6IFNjcm9sbE9wdGlvbnMgewogICAg
IFtJbXBsZW1lbnRlZEFzPWJsb2NrUG9zaXRpb25dIFNjcm9sbExvZ2ljYWxQb3NpdGlvbiBibG9j
ayA9ICJzdGFydCI7CiAgICAgW0ltcGxlbWVudGVkQXM9aW5saW5lUG9zaXRpb25dIFNjcm9sbExv
Z2ljYWxQb3NpdGlvbiBpbmxpbmUgPSAibmVhcmVzdCI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9s
bE9wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lMTg2N2M2
MDE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25z
LmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNjcm9sbEJlaGF2aW9yLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNjcm9sbE9wdGlvbnMgeworICAgIE9wdGlv
bmFsPFNjcm9sbEJlaGF2aW9yPiBiZWhhdmlvciB7IFNjcm9sbEJlaGF2aW9yOjpBdXRvIH07Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbE9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25z
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zMjlkNmZmMTA4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25zLmlkbApA
QCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK2RpY3Rpb25hcnkgU2Nyb2xsT3B0aW9ucyB7CisgICAgU2Nyb2xsQmVoYXZpb3IgYmVo
YXZpb3IgPSAiYXV0byI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3Jv
bGxUb09wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmgKaW5k
ZXggY2UxY2JhMWM3Yy4uZjU3NzRkNDRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TY3JvbGxUb09wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0
aW9ucy5oCkBAIC0yOCwxNCArMjgsMjEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJT
Y3JvbGxPcHRpb25zLmgiCiAjaW5jbHVkZSA8Y21hdGg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IFNjcm9sbFRvT3B0aW9ucyB7Citz
dHJ1Y3QgU2Nyb2xsVG9PcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7CiAgICAgT3B0aW9uYWw8ZG91
YmxlPiBsZWZ0OwogICAgIE9wdGlvbmFsPGRvdWJsZT4gdG9wOworCisgICAgU2Nyb2xsVG9PcHRp
b25zKCkgPSBkZWZhdWx0OworICAgIFNjcm9sbFRvT3B0aW9ucyhkb3VibGUgeCwgZG91YmxlIHkp
CisgICAgICAgIDogbGVmdCh4KQorICAgICAgICAsIHRvcCh5KQorICAgIHsgfQogfTsKIAogaW5s
aW5lIGRvdWJsZSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tUbyhPcHRpb25hbDxk
b3VibGU+IHZhbHVlLCBkb3VibGUgZmFsbGJhY2tWYWx1ZSkKQEAgLTQ3LDcgKzU0LDcgQEAgaW5s
aW5lIGRvdWJsZSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tUbyhPcHRpb25hbDxk
b3VibGU+IHZhbHVlLCBkb3VibGUKIC8vIEZJWE1FKGh0dHBzOi8vd2Via2l0Lm9yZy9iLzg4MzM5
KTogQ29uc2lkZXIgdXNpbmcgRmxvYXRQb2ludCBvciBEb3VibGVQb2ludCBmb3IgZmFsbGJhY2sg
YW5kIHJldHVybiB2YWx1ZXMuCiBpbmxpbmUgU2Nyb2xsVG9PcHRpb25zIG5vcm1hbGl6ZU5vbkZp
bml0ZUNvb3JkaW5hdGVzT3JGYWxsQmFja1RvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgdmFsdWUs
IGRvdWJsZSB4LCBkb3VibGUgeSkKIHsKLSAgICBTY3JvbGxUb09wdGlvbnMgb3B0aW9uczsKKyAg
ICBTY3JvbGxUb09wdGlvbnMgb3B0aW9ucyA9IHZhbHVlOwogICAgIG9wdGlvbnMubGVmdCA9IG5v
cm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKHZhbHVlLmxlZnQsIHgpOwogICAgIG9w
dGlvbnMudG9wID0gbm9ybWFsaXplTm9uRmluaXRlVmFsdWVPckZhbGxCYWNrVG8odmFsdWUudG9w
LCB5KTsKICAgICByZXR1cm4gb3B0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2Nyb2xsVG9PcHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRp
b25zLmlkbAppbmRleCA1MTBiYzA3MWE2Li4yYjliNTU0MTIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TY3JvbGxUb09wdGlvbnMuaWRsCkBAIC0yNiw4ICsyNiw3IEBACiAgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLS8vIEZJWE1FKHdlYmtpdC5vcmcvYi8xODgwNDMpOiBTdXBwb3J0IFNjcm9sbEJlaGF2aW9y
LgotZGljdGlvbmFyeSBTY3JvbGxUb09wdGlvbnMgeworZGljdGlvbmFyeSBTY3JvbGxUb09wdGlv
bnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICB1bnJlc3RyaWN0ZWQgZG91YmxlIGxlZnQ7CiAgICAg
dW5yZXN0cmljdGVkIGRvdWJsZSB0b3A7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmlu
ZGV4IGIzMjlmMTI0NzkuLjFkNzlmNDU5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwK
QEAgLTYyMiw2ICs2MjIsOSBAQCBzeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogQ1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIAorQ1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKwogaW5wdXRFdmVudHNF
bmFibGVkOgogICBpbml0aWFsOiB0cnVlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNDI5
ZWVlOWE5Ni4uZDhmZGYzOWFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTI0OCw3ICsy
NDgsMTQgQEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9z
aXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNjcm8KIAogICAgIGJvb2wgaW5CYWNrRm9yd2Fy
ZENhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVT
dGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGU7CiAgICAgYm9vbCBpblBy
b2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbGFibGVBcmVhLmN1cnJlbnRTY3JvbGxUeXBlKCkgPT0g
U2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwotICAgIGlmIChpblByb2dyYW1tYXRpY1Njcm9sbCB8
fCBpbkJhY2tGb3J3YXJkQ2FjaGUpCisKKyAgICBib29sIHVwZGF0ZVNjcm9sbFBvc2l0aW9uID0g
aW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5CYWNrRm9yd2FyZENhY2hlOworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgYm9vbCBhbmltYXRlZCA9IHNjcm9sbGFibGVBcmVhLmN1cnJlbnRT
Y3JvbGxCZWhhdmlvclR5cGUoKSA9PSBTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aDsKKyAgICAv
LyBUaGUgc2Nyb2xsIHBvc2l0aW9uIG9mIGFuaW1hdGVkIHNjcm9sbGluZyB3aWxsIGJlIHNldCBm
cm9tIHRoZSB0aGUgVUkgcHJvY2Vzcy4gU28gaXQgc2hvdWxkbid0IGJlIHNldCBub3cuCisgICAg
dXBkYXRlU2Nyb2xsUG9zaXRpb24gPSAhYW5pbWF0ZWQgJiYgdXBkYXRlU2Nyb2xsUG9zaXRpb247
CisjZW5kaWYKKyAgICBpZiAodXBkYXRlU2Nyb2xsUG9zaXRpb24pCiAgICAgICAgIHVwZGF0ZVNj
cm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3JvbGxpbmdOb2RlSUQsIHNjcm9sbFBvc2l0
aW9uLCB7IH0sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bkFjdGlvbjo6U2V0KTsKIAogICAgIC8vIElmIHRoaXMgZnJhbWUgdmlldydzIGRvY3VtZW50IGlz
IGJlaW5nIHB1dCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIHdlIGRvbid0IHdhbnQgdG8g
dXBkYXRlIG91cgpAQCAtMjYwLDcgKzI2NywxNiBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2Nybwog
ICAgIGlmICghc3RhdGVOb2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIGF1dG8gc3RhdHVzID0gYW5pbWF0ZWQgPyBTY3JvbGxCZWhhdmlv
clN0YXR1czo6SW5VSU5hdGl2ZUFuaW1hdGlvbiA6IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJ
bkFuaW1hdGlvbjsKKyAgICBzY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhz
dGF0dXMpOworICAgIHN0YXRlTm9kZS0+c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xs
UG9zaXRpb24sIGluUHJvZ3JhbW1hdGljU2Nyb2xsLCBhbmltYXRlZCk7CisjZWxzZQorICAgIC8v
IElmIGEgbm9uIG5hdGl2ZSBhbmltYXRpb24gaXMgaW4gcHJvZ3Jlc3MsIHRoaXMgaXMgc2V0IGJ5
IHNjcm9sbCBhbmltYXRvciwgb3RoZXJ3aXNlLCB0aGUgYW5pbWF0aW9uIHNob3VsZCBzdG9wIGZp
cnN0LgorICAgIGlmICghc2Nyb2xsYWJsZUFyZWEuaXNOb25OYXRpdmVBbmltYXRpb25JblByb2dy
ZXNzKCkpCisgICAgICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiAgICAgc3RhdGVOb2RlLT5zZXRS
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9ncmFtbWF0aWNTY3Jv
bGwpOworI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI5MSw2ICszMDcsMzIgQEAg
dm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0
aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBtX3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRp
bWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3Zv
aWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9s
bGluZ05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAg
ICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAgICAgICAgICAgZnJhbWVW
aWV3LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5B
bmltYXRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Ny
b2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3Jv
bGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQobm9kZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRT
Y3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24p
OworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVw
ZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVw
ZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0
ZS5ub2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVk
dWxlZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwg
bV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRlTGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4uM2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRy
ZWVQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVs
ZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNv
bnN0IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3Bv
cnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNz
KTsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhv
cml6b250YWxJbmRleCwgdW5zaWduZWQgdmVydGljYWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlLmNwcAppbmRleCA3MTdiZmMyYTU1Li43ZTIxODhjMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRp
ZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVB
cmVhUGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNN
b25pdG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2RlLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkp
CiB7CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxDb250YWluZXJMYXllcikpCkBA
IC0yMTksMTIgKzIyMiwyMiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0IFNjcm9sbGFibGVBcgogICAgIHNldFByb3Bl
cnR5Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFtcyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBi
b29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1h
dGlvbikKK3sKKyAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb247CisgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworICAgIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uID0gcmVxdWVzdGVkV2l0aEFuaW1hdGlvbjsK
KyAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOworfQorI2Vs
c2UKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogewogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24gPSByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICBtX3JlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGw7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KTsKIH0KKyNlbmRpZgogCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SXNN
b25pdG9yaW5nV2hlZWxFdmVudHMoYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cykKIHsKQEAg
LTMxNCw2ICszMjcsMTEgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQ
cm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVQKICAgICBpZiAobV9yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiAgICAgICAg
IHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiByZXByZXNlbnRzIHBy
b2dyYW1tYXRpYyBzY3JvbGwiLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICht
X3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbikKKyAgICAgICAgdHMuZHVtcFBy
b3BlcnR5KCJyZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHdpdGggYW5pbWF0aW9uIiwgbV9yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pOworI2VuZGlmCisKICAgICBpZiAoIW1f
cGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHRzLmR1bXBQ
cm9wZXJ0eSgicGFyZW50IHJlbGF0aXZlIHNjcm9sbGFibGUgcmVjdCIsIG1fcGFyZW50UmVsYXRp
dmVTY3JvbGxhYmxlUmVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNDk2N2E2Y2U4
MS4uNmUyNWQ3YmJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKQEAgLTExMSw3ICsxMTEsMTIg
QEAgcHVibGljOgogCiAgICAgY29uc3QgRmxvYXRQb2ludCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOyB9CiAgICAgYm9v
bCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSBj
b25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbDsgfQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGJvb2wgcmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uID0gZmFs
c2UpOworI2Vsc2UKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpOworI2VuZGlmCiAKICAgICBib29sIGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkgY29uc3Qg
eyByZXR1cm4gbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50czsgfQogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0SXNNb25pdG9yaW5nV2hlZWxFdmVudHMoYm9vbCk7CkBAIC0xNzEsNiArMTc2LDkg
QEAgcHJpdmF0ZToKICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnM7CiAKICAgICBib29sIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsIHsgZmFsc2UgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIGJvb2wgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24geyBmYWxz
ZSB9OworI2VuZGlmCiAgICAgYm9vbCBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzIHsgZmFsc2Ug
fTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
aAppbmRleCAxNTFhYzI5ZjhhLi5jOWYwNDRiNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC04Miw4ICs4MiwxNyBAQCBwdWJsaWM6CiAg
ICAgLy8gVXBkYXRlcyBGcmFtZVZpZXcvUmVuZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBH
cmFwaGljc0xheWVycy4KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3Jv
bGwoU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgPSAwOwogCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBDYWxsZWQgZm9yIHNjcm9sbCBhbmltYXRpb24gc3Rh
dHVzIHVwZGF0ZXMuCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9v
bCAvKmlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyovKSB7IH0KKworICAgIC8vIENhbGxlZCBm
b3IgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzLgorICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxv
YXRQb2ludCYgLypzY3JvbGxQb3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbCovLCBib29sIC8qd2l0aEFuaW1hdGlvbiovKSB7IH0KKyNlbHNlCiAgICAgLy8gQ2Fs
bGVkIGZvciByZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMuCiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25z
dCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsKi8pIHsgfQorI2VuZGlmCisKIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxp
bmcvem9vbWluZyBoYXMgY2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2
aWV3cG9ydC1jb25zdHJhaW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5G
cmFtZVZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9y
dCwgZG91YmxlIHNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYx
Li5hZmE4NDUzNDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3LDE2
IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hp
bGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBz
dGF0ZU5vZGUpCiB7CiAgICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3Jv
bGxpbmdTdGF0ZU5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0
YXRlTm9kZSk7Ci0gICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHko
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpCi0g
ICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKHNj
cm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0No
YW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKSkgeworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVS
ZXF1ZXN0c1Njcm9sbCgKKyAgICAgICAgICAgIHNjcm9sbGluZ05vZGVJRCgpCisgICAgICAgICAg
ICAsIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpCisgICAgICAg
ICAgICAsIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwoKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAg
ICAgICAsIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmlt
YXRpb24oKQorI2VuZGlmCisgICAgICAgICAgICApOworICAgIH0KIAogICAgIG1faXNGaXJzdENv
bW1pdCA9IGZhbHNlOwogfQpAQCAtMTU3LDE1ICsxNjUsNDQgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgU2Nyb2xsUG9z
aXRpb24KICAgICBzY3JvbGxUbyhjdXJyZW50U2Nyb2xsUG9zaXRpb24oKSArIGRlbHRhLCBTY3Jv
bGxUeXBlOjpVc2VyLCBjbGFtcCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYg
cG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcCBjbGFt
cCwgYm9vbCBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQoreworICAgIGlmIChwb3NpdGlvbiA9PSBt
X2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgeworICAgICAgICAvLyBTZW5kIHRoZSBzY3JvbGwgcG9z
aXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAocmVxdWVzdFNjcm9sbFdpdGhB
bmltYXRpb24oKSAmJiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQorICAgICAgICAgICAgc2Nyb2xs
aW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzLCBTY3JvbGxpbmdMYXll
clBvc2l0aW9uQWN0aW9uOjpTeW5jKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGlu
Z1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKHNjcm9sbGluZ05v
ZGVJRCgpLCBmYWxzZSk7CisgICAgICAgIHNldFJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGZh
bHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIElmIGR1cmluZyBhIHNjcm9s
bCBhbmltYXRpb24sIG5lZWQgdG8gc3RvcCBpdCBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgb25lLgor
ICAgIGlmIChzY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkpCisgICAgICAgIHNldE5lZWRzU3Rv
cEN1cnJlbnRTY3JvbGxBbmltYXRpb24odHJ1ZSk7CisgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElz
SGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Nyb2xsVHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9n
cmFtbWF0aWMpOworCisgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gPSBhZGp1c3RlZFNjcm9s
bFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7CisKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xs
aW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5n
Tm9kZUlEKCkgPDwgIiBzY3JvbGxUbyAiIDw8IHBvc2l0aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFz
dCBjb21taXR0ZWQgcG9zaXRpb24gIiA8PCAobV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24g
LSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgPDwgIikiKTsKKworICAgIHVwZGF0ZVZpZXdwb3J0
Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CisgICAgY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hh
bmdlZCgpOworCisgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihmYWxzZSk7
CisgICAgc2V0UmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oZmFsc2UpOworICAgIHNjcm9sbGlu
Z1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKGZhbHNlKTsKK30KKyNlbHNl
CiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBv
aW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1w
IGNsYW1wKQogewogICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9n
cmFtbWF0aWNTY3JvbGwoc2Nyb2xsVHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOwot
ICAgIAorCiAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0
aW9uKHBvc2l0aW9uLCBjbGFtcCk7Ci0gICAgCisKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xs
aW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5n
Tm9kZUlEKCkgPDwgIiBzY3JvbGxUbyAiIDw8IHBvc2l0aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFz
dCBjb21taXR0ZWQgcG9zaXRpb24gIiA8PCAobV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24g
LSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgPDwgIikiKTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0
Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CkBAIC0xNzMsMTQgKzIxMCwyMCBAQCB2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3Np
dGlvbiwgU2Nyb2xsVHlwZQogCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9n
cmFtbWF0aWNTY3JvbGwoZmFsc2UpOwogfQorI2VuZGlmCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKQogewogICAgIHJlcG9z
aXRpb25TY3JvbGxpbmdMYXllcnMoKTsKICAgICByZXBvc2l0aW9uUmVsYXRlZExheWVycygpOwog
Ci0gICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlmeVJlbGF0ZWROb2Rlc0FmdGVyU2Nyb2xsUG9zaXRp
b25DaGFuZ2UoKnRoaXMpOwotICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURp
ZFNjcm9sbCgqdGhpcyk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoIXJlcXVl
c3RTY3JvbGxXaXRoQW5pbWF0aW9uKCkpCisjZW5kaWYKKyAgICB7CisgICAgICAgIHNjcm9sbGlu
Z1RyZWUoKS5ub3RpZnlSZWxhdGVkTm9kZXNBZnRlclNjcm9sbFBvc2l0aW9uQ2hhbmdlKCp0aGlz
KTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0
aGlzKTsKKyAgICB9CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9s
bFBvc2l0aW9uQW5kTGF5b3V0Vmlld3BvcnRNYXRjaChjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
biwgT3B0aW9uYWw8RmxvYXRSZWN0PikKQEAgLTI2Niw2ICszMDksMzcgQEAgdm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNjcm9s
bGluZ1N0YXRlVHIKICAgICB0cy5kdW1wUHJvcGVydHkoInNjcm9sbGFibGUgYXJlYSBwYXJhbWV0
ZXJzIiwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMpOwogfQogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RTY3Jv
bGxXaXRoQW5pbWF0aW9uKGJvb2wgd2l0aEFuaW1hdGlvbikKK3sKKyAgICBtX3JlcXVlc3RTY3Jv
bGxXaXRoQW5pbWF0aW9uID0gd2l0aEFuaW1hdGlvbjsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oKSBjb25zdAoreworICAg
IHJldHVybiBtX3JlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uOworfQorCit2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKGJvb2wgaW5Q
cm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBpblByb2dyZXNz
OworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXROZWVkc1N0b3BD
dXJyZW50U2Nyb2xsQW5pbWF0aW9uKGJvb2wgc3RvcCkKK3sKKyAgICBtX25lZWRzU3RvcEN1cnJl
bnRTY3JvbGxBbmltYXRpb24gPSBzdG9wOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlOjpuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uOworfQorI2VuZGlmCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNGNiZjRkMWFmMC4uNTUwYjcxYzg3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5oCkBAIC02MCw3ICs2MCwxMSBAQCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHNj
cm9sbERlbHRhU2luY2VMYXN0Q29tbWl0KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xs
UG9zaXRpb24gLSBtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8gVGhl
c2UgYXJlIGltcGVyYXRpdmU7IHRoZXkgYWRqdXN0IHRoZSBzY3JvbGxpbmcgbGF5ZXJzLgorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50
JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBT
Y3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywgYm9vbCBuZWVkU3luY1Njcm9sbFBv
c2l0aW9uID0gZmFsc2UpOworI2Vsc2UKICAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9p
bnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9
IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzKTsKKyNlbmRpZgogICAgIHZvaWQg
c2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBv
c2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzKTsKIAogICAgIHZvaWQgd2FzU2Nyb2xsZWRCeURl
bGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgT3B0aW9uYWw8Rmxv
YXRSZWN0PiBvdmVycmlkZUxheW91dFZpZXdwb3J0ID0geyB9LCBTY3JvbGxpbmdMYXllclBvc2l0
aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYyk7CkBAIC05MSw2
ICs5NSwxNSBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgc2Nyb2xs
Q29udGFpbmVyTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvbnRhaW5lckxheWVyOyB9
CiAgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgc2Nyb2xsZWRDb250ZW50c0xheWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXI7IH0KIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgdm9pZCBzZXRSZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihib29s
KTsKKyAgICBib29sIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKGJvb2wpOworICAgIGJvb2wgc2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0OworICAgIHZvaWQgc2V0TmVlZHNTdG9wQ3VycmVudFNj
cm9sbEFuaW1hdGlvbihib29sKTsKKyAgICBib29sIG5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmlt
YXRpb24oKSBjb25zdDsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdO
b2RlSUQpOwogCkBAIC0xNDgsNiArMTYxLDEyIEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFy
ZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogICAgIGJvb2wgbV9pc0Zp
cnN0Q29tbWl0IHsgdHJ1ZSB9OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29s
IG1fcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24geyBmYWxzZSB9OworICAgIGJvb2wgbV9zY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbiB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIExheWVyUmVwcmVz
ZW50YXRpb24gbV9zY3JvbGxDb250YWluZXJMYXllcjsKICAgICBMYXllclJlcHJlc2VudGF0aW9u
IG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uLmgKaW5kZXggYjdjMWQyNGViNC4uNTIzYTc3ZjMzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmgKQEAgLTMyLDEyICszMiwxNCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0UG9pbnQ7CiBjbGFzcyBTY3JvbGxhYmxlQXJl
YTsKK2VudW0gY2xhc3MgU2Nyb2xsQ2xhbXBpbmcgOiB1aW50OF90OwogCiBjbGFzcyBTY3JvbGxB
bmltYXRpb24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHZp
cnR1YWwgflNjcm9sbEFuaW1hdGlvbigpIHsgfTsKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNj
cm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgLyogc3RlcCAqLywg
ZmxvYXQgLyogbXVsdGlwbGllciAqLykgeyByZXR1cm4gdHJ1ZTsgfTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSB7IH07CiAgICAgdmlydHVhbCB2b2lkIHN0b3Ao
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZpc2libGVMZW5ndGhzKCkgeyB9OwogICAg
IHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYpIHsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290
aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3Bw
CmluZGV4IGQwNjRlNjkzNzkuLjJjYTU3OGEzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcApAQCAtMjgsOCArMjgsNiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcm9sbEFuaW1hdGlvblNtb290aC5oIgogCi0j
aWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0KICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAj
aW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKIApAQCAtMzgsNiArMzYsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBzdGF0aWMgY29uc3QgZG91YmxlIGZyYW1lUmF0ZSA9IDYwOwogc3RhdGljIGNv
bnN0IFNlY29uZHMgdGlja1RpbWUgPSAxX3MgLyBmcmFtZVJhdGU7CiBzdGF0aWMgY29uc3QgU2Vj
b25kcyBtaW5pbXVtVGltZXJJbnRlcnZhbCB7IDFfbXMgfTsKK3N0YXRpYyBjb25zdCBkb3VibGUg
c21vb3RoRmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsID0gNTsKIAogU2Nyb2xsQW5pbWF0aW9u
U21vb3RoOjpTY3JvbGxBbmltYXRpb25TbW9vdGgoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVB
cmVhLCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgV1RGOjpGdW5jdGlvbjx2b2lkIChGbG9h
dFBvaW50JiYpPiYmIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZEZ1bmN0aW9uKQogICAgIDogU2Nyb2xs
QW5pbWF0aW9uKHNjcm9sbGFibGVBcmVhKQpAQCAtNjcsOSArNjYsMjIgQEAgYm9vbCBTY3JvbGxB
bmltYXRpb25TbW9vdGg6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwg
U2Nyb2xsR3JhbnUKICAgICByZXR1cm4gbmVlZFRvU2Nyb2xsOwogfQogCit2b2lkIFNjcm9sbEFu
aW1hdGlvblNtb290aDo6c2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQoreworICAg
IFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5ID0gU2Nyb2xsQnlQYWdlOworICAgIGJvb2wg
bmVlZFRvU2Nyb2xsID0gdXBkYXRlUGVyQXhpc0RhdGEobV9ob3Jpem9udGFsRGF0YSwgZ3JhbnVs
YXJpdHksIHBvc2l0aW9uLngoKSAtIG1faG9yaXpvbnRhbERhdGEuY3VycmVudFBvc2l0aW9uLCBt
X3Njcm9sbGFibGVBcmVhLm1pbmltdW1TY3JvbGxQb3NpdGlvbigpLngoKSwgbV9zY3JvbGxhYmxl
QXJlYS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCksIHNtb290aEZhY3RvckZvclByb2dyYW1t
YXRpY1Njcm9sbCk7CisgICAgbmVlZFRvU2Nyb2xsIHw9CisgICAgICAgIHVwZGF0ZVBlckF4aXNE
YXRhKG1fdmVydGljYWxEYXRhLCBncmFudWxhcml0eSwgcG9zaXRpb24ueSgpIC0gbV92ZXJ0aWNh
bERhdGEuY3VycmVudFBvc2l0aW9uLCBtX3Njcm9sbGFibGVBcmVhLm1pbmltdW1TY3JvbGxQb3Np
dGlvbigpLnkoKSwgbV9zY3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCks
IHNtb290aEZhY3RvckZvclByb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgaWYgKG5lZWRUb1Njcm9s
bCAmJiAhYW5pbWF0aW9uVGltZXJBY3RpdmUoKSkgeworICAgICAgICBtX3N0YXJ0VGltZSA9IG1f
aG9yaXpvbnRhbERhdGEuc3RhcnRUaW1lOworICAgICAgICBhbmltYXRpb25UaW1lckZpcmVkKCk7
CisgICAgfQorfTsKKwogdm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnN0b3AoKQogewogICAg
IG1fYW5pbWF0aW9uVGltZXIuc3RvcCgpOworICAgIG1fc2Nyb2xsYWJsZUFyZWEuc2V0U2Nyb2xs
QmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIH0K
IAogdm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnVwZGF0ZVZpc2libGVMZW5ndGhzKCkKQEAg
LTI0Nyw3ICsyNTksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0QW5pbWF0aW9uUGFyYW1ldGVy
c0ZvckdyYW51bGFyaXR5KFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bAogICAgIH0KIH0KIAotYm9v
bCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiBk
YXRhLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1p
blNjcm9sbFBvc2l0aW9uLCBmbG9hdCBtYXhTY3JvbGxQb3NpdGlvbikKK2Jvb2wgU2Nyb2xsQW5p
bWF0aW9uU21vb3RoOjp1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0YSYgZGF0YSwgU2Nyb2xs
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3JvbGxQb3Np
dGlvbiwgZmxvYXQgbWF4U2Nyb2xsUG9zaXRpb24sIGRvdWJsZSBzbW9vdGhGYWN0b3IpCiB7CiAg
ICAgaWYgKCFkYXRhLnN0YXJ0VGltZSB8fCAhZGVsdGEgfHwgKGRlbHRhIDwgMCkgIT0gKGRhdGEu
ZGVzaXJlZFBvc2l0aW9uIC0gZGF0YS5jdXJyZW50UG9zaXRpb24gPCAwKSkgewogICAgICAgICBk
YXRhLmRlc2lyZWRQb3NpdGlvbiA9IGRhdGEuY3VycmVudFBvc2l0aW9uOwpAQCAtMjY0LDYgKzI3
NiwxMiBAQCBib29sIFNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEoUGVy
QXhpc0RhdGEmIGRhdGEsIFNjcm9sbEdyYW51bGFyaQogICAgIEN1cnZlIGNvYXN0VGltZUN1cnZl
OwogICAgIGdldEFuaW1hdGlvblBhcmFtZXRlcnNGb3JHcmFudWxhcml0eShncmFudWxhcml0eSwg
YW5pbWF0aW9uVGltZSwgcmVwZWF0TWluaW11bVN1c3RhaW5UaW1lLCBhdHRhY2tUaW1lLCByZWxl
YXNlVGltZSwgY29hc3RUaW1lQ3VydmUsIG1heGltdW1Db2FzdFRpbWUpOwogCisgICAgYW5pbWF0
aW9uVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgcmVwZWF0TWluaW11bVN1c3RhaW5UaW1lICo9
IHNtb290aEZhY3RvcjsKKyAgICBhdHRhY2tUaW1lICo9IHNtb290aEZhY3RvcjsKKyAgICByZWxl
YXNlVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgbWF4aW11bUNvYXN0VGltZSAqPSBzbW9vdGhG
YWN0b3I7CisKICAgICBkYXRhLmRlc2lyZWRQb3NpdGlvbiA9IG5ld1Bvc2l0aW9uOwogICAgIGlm
ICghZGF0YS5zdGFydFRpbWUpCiAgICAgICAgIGRhdGEuYXR0YWNrVGltZSA9IGF0dGFja1RpbWU7
CkBAIC0zOTIsNiArNDEwLDggQEAgdm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OmFuaW1hdGlv
blRpbWVyRmlyZWQoKQogCiAgICAgaWYgKGNvbnRpbnVlQW5pbWF0aW9uKQogICAgICAgICBzdGFy
dE5leHRUaW1lcihzdGQ6Om1heChtaW5pbXVtVGltZXJJbnRlcnZhbCwgZGVsdGFUb05leHRGcmFt
ZSkpOworICAgIGVsc2UKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlv
clN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwogCiAgICAgbV9u
b3RpZnlQb3NpdGlvbkNoYW5nZWRGdW5jdGlvbihGbG9hdFBvaW50KG1faG9yaXpvbnRhbERhdGEu
Y3VycmVudFBvc2l0aW9uLCBtX3ZlcnRpY2FsRGF0YS5jdXJyZW50UG9zaXRpb24pKTsKIH0KQEAg
LTQwNyw1ICs0MjcsMyBAQCBib29sIFNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGlt
ZXJBY3RpdmUoKSBjb25zdAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uU21vb3RoLmgKaW5kZXggMDJjYzRlZTJiZC4uODE3M2ZhN2UyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmgKQEAg
LTI3LDE0ICsyNywxMyBAQAogCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uLmgiCiAKLSNpZiBF
TkFCTEUoU01PT1RIX1NDUk9MTElORykKLQogI2luY2x1ZGUgIlRpbWVyLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOwor
ZW51bSBjbGFzcyBTY3JvbGxDbGFtcGluZyA6IHVpbnQ4X3Q7CiAKIGNsYXNzIFNjcm9sbEFuaW1h
dGlvblNtb290aCBmaW5hbDogcHVibGljIFNjcm9sbEFuaW1hdGlvbiB7CiBwdWJsaWM6CkBAIC01
MSw2ICs1MCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBib29sIHNjcm9sbChTY3JvbGxi
YXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRp
cGxpZXIpIG92ZXJyaWRlOworICAgIHZvaWQgc2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVy
cmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZVZpc2libGVM
ZW5ndGhzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRDdXJyZW50UG9zaXRpb24oY29uc3QgRmxv
YXRQb2ludCYpIG92ZXJyaWRlOwpAQCAtODksNyArODksNyBAQCBwcml2YXRlOgogICAgICAgICBp
bnQgdmlzaWJsZUxlbmd0aCB7IDAgfTsKICAgICB9OwogCi0gICAgYm9vbCB1cGRhdGVQZXJBeGlz
RGF0YShQZXJBeGlzRGF0YSYsIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQg
bWluU2Nyb2xsUG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uKTsKKyAgICBib29sIHVw
ZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IGRl
bHRhLCBmbG9hdCBtaW5TY3JvbGxQb3NpdGlvbiwgZmxvYXQgbWF4U2Nyb2xsUG9zaXRpb24sIGRv
dWJsZSBzbW9vdGhGYWN0b3IgPSAxKTsKICAgICBib29sIGFuaW1hdGVTY3JvbGwoUGVyQXhpc0Rh
dGEmLCBNb25vdG9uaWNUaW1lIGN1cnJlbnRUaW1lKTsKIAogICAgIHZvaWQgcmVxdWVzdEFuaW1h
dGlvblRpbWVyRmlyZWQoKTsKQEAgLTEwOCw0ICsxMDgsMyBAQCBwcml2YXRlOgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAppbmRleCBhNjExODY4Mzdk
Li40ZDU5OGM3NWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
Y3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUg
IkxheW91dFNpemUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRl
ICJTY3JvbGxBbmltYXRpb25TbW9vdGguaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgog
I2luY2x1ZGUgPGFsZ29yaXRobT4KIApAQCAtNTIsNiArNTMsMTggQEAgU2Nyb2xsQW5pbWF0b3I6
OlNjcm9sbEFuaW1hdG9yKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSkKICNpZiBFTkFC
TEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgLCBtX3Nj
cm9sbENvbnRyb2xsZXIoKnRoaXMpCiAjZW5kaWYKKyAgICAsIG1fYW5pbWF0aW9uUHJvZ3JhbW1h
dGljU2Nyb2xsKG1ha2VVbmlxdWU8U2Nyb2xsQW5pbWF0aW9uU21vb3RoPihzY3JvbGxhYmxlQXJl
YSwgbV9jdXJyZW50UG9zaXRpb24sIFt0aGlzXShGbG9hdFBvaW50JiYgcG9zaXRpb24pIHsKKyAg
ICAgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBtX3Njcm9sbGFibGVBcmVhLmN1cnJlbnRT
Y3JvbGxUeXBlKCk7CisgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEuc2V0Q3VycmVudFNjcm9sbFR5
cGUoU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKKyAgICAgICAgYm9vbCB1cGRhdGVkID0gbV9z
Y3JvbGxhYmxlQXJlYS5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocm91bmRlZEludFBvaW50
KHBvc2l0aW9uKSk7CisgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEuc2V0Q3VycmVudFNjcm9sbFR5
cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgaWYgKHVwZGF0ZWQpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgRmxvYXRTaXplIGRlbHRhID0gcG9zaXRpb24gLSBtX2N1cnJl
bnRQb3NpdGlvbjsKKyAgICAgICAgbV9jdXJyZW50UG9zaXRpb24gPSBXVEZNb3ZlKHBvc2l0aW9u
KTsKKyAgICAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGRlbHRhKTsKKyAgICB9KSkKIHsKIH0K
IApAQCAtNzUsNiArODgsMTQgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKFNjcm9sbGJh
ck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9PZmZzZXQoY29uc3QgRmxv
YXRQb2ludCYgb2Zmc2V0KQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT5z
ZXRDdXJyZW50UG9zaXRpb24obV9jdXJyZW50UG9zaXRpb24pOworICAgIGF1dG8gbmV3UG9zaXRp
b24gPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCwgdG9G
bG9hdFNpemUobV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPcmlnaW4oKSkpOworICAgIG1fYW5pbWF0
aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT5zY3JvbGwobmV3UG9zaXRpb24pOworICAgIG1fc2Nyb2xs
YWJsZUFyZWEuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Oklu
Tm9uTmF0aXZlQW5pbWF0aW9uKTsKK30KKwogdm9pZCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9P
ZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCwgU2Nyb2xsQ2xh
bXBpbmcpCiB7CiAgICAgRmxvYXRQb2ludCBuZXdQb3NpdG9uID0gU2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQsIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJsZUFy
ZWEuc2Nyb2xsT3JpZ2luKCkpKTsKQEAgLTI0NSw0ICsyNjYsMzMgQEAgdm9pZCBTY3JvbGxBbmlt
YXRvcjo6cmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFzb24oV2hl
ZWxFdmVudFQKIH0KICNlbmRpZgogCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRp
b25zKCkKK3sKKyNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQorICAgIG1f
YW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT5zdG9wKCk7CisjZW5kaWYKK30KKwordm9pZCBT
Y3JvbGxBbmltYXRvcjo6c2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKQoreworI2lmICFVU0UoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNT
Y3JvbGwtPnNlcnZpY2VBbmltYXRpb24oKTsKKyNlbmRpZgorfQorCit2b2lkIFNjcm9sbEFuaW1h
dG9yOjp3aWxsRW5kTGl2ZVJlc2l6ZSgpCit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNT
Y3JvbGwtPnVwZGF0ZVZpc2libGVMZW5ndGhzKCk7Cit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6
OmRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopCit7CisgICAgbV9hbmltYXRpb25Q
cm9ncmFtbWF0aWNTY3JvbGwtPnVwZGF0ZVZpc2libGVMZW5ndGhzKCk7Cit9CisKK3ZvaWQgU2Ny
b2xsQW5pbWF0b3I6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikKK3sKKyAg
ICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmgKaW5kZXggYTVjNjljNTNiNy4uOWI3YzA5YjY5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIFBsYXRmb3JtVG91Y2hFdmVudDsK
K2NsYXNzIFNjcm9sbEFuaW1hdGlvbjsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOwogY2xhc3MgU2Ny
b2xsYmFyOwogY2xhc3MgV2hlZWxFdmVudFRlc3RNb25pdG9yOwpAQCAtNjgsNiArNjksNyBAQCBw
dWJsaWM6CiAgICAgLy8gVGhlIGJhc2UgY2xhc3MgaW1wbGVtZW50YXRpb24gYWx3YXlzIHNjcm9s
bHMgaW1tZWRpYXRlbHksIG5ldmVyIGFuaW1hdGVzLgogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwo
U2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9h
dCBtdWx0aXBsaWVyKTsKIAorICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXQoY29uc3QgRmxvYXRQb2lu
dCYpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29u
c3QgRmxvYXRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQp
OwogCiAgICAgU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKCkgY29uc3QgeyByZXR1cm4g
bV9zY3JvbGxhYmxlQXJlYTsgfQpAQCAtODUsOCArODcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDdXJyZW50UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYpOwogICAgIGNvbnN0IEZsb2F0UG9p
bnQmIGN1cnJlbnRQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFBvc2l0aW9uOyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsQW5pbWF0aW9ucygpIHsgfQotICAgIHZpcnR1YWwg
dm9pZCBzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxBbmltYXRpb25zKCk7CisgICAgdmlydHVhbCB2b2lkIHNlcnZpY2VTY3JvbGxBbmltYXRpb25z
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29udGVudEFyZWFXaWxsUGFpbnQoKSBjb25zdCB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgbW91c2VFbnRlcmVkQ29udGVudEFyZWEoKSB7IH0KQEAgLTk3LDE2
ICs5OSwxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlSXNEb3duSW5TY3JvbGxi
YXIoU2Nyb2xsYmFyKiwgYm9vbCkgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTdGFy
dExpdmVSZXNpemUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNSZXNpemVkKCkgY29u
c3QgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxFbmRMaXZlUmVzaXplKCkgeyB9CisgICAgdmly
dHVhbCB2b2lkIHdpbGxFbmRMaXZlUmVzaXplKCk7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRB
cmVhRGlkU2hvdygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50QXJlYURpZEhpZGUoKSB7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBsb2NrT3ZlcmxheVNjcm9sbGJhclN0YXRlVG9IaWRkZW4o
Ym9vbCkgeyB9CiAgICAgdmlydHVhbCBib29sIHNjcm9sbGJhcnNDYW5CZUFjdGl2ZSgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRWZXJ0aWNhbFNjcm9s
bGJhcihTY3JvbGxiYXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVmVydGljYWxTY3Jv
bGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVWZXJ0aWNhbFNj
cm9sbGJhcihTY3JvbGxiYXIqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSG9yaXpvbnRh
bFNjcm9sbGJhcihTY3JvbGxiYXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSG9yaXpv
bnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZUhv
cml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZVNjcm9sbGJhclBhcnRMYXllcnMoU2Nyb2xsYmFyKikgeyB9CkBAIC0xNTEsNiArMTUz
LDggQEAgcHJvdGVjdGVkOgogICAgIFNjcm9sbENvbnRyb2xsZXIgbV9zY3JvbGxDb250cm9sbGVy
OwogI2VuZGlmCiAgICAgRmxvYXRQb2ludCBtX2N1cnJlbnRQb3NpdGlvbjsKKworICAgIHN0ZDo6
dW5pcXVlX3B0cjxTY3JvbGxBbmltYXRpb24+IG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xs
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKaW5kZXggODkxMTQ5MTAzZC4uY2UzNWZjMmRkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC01NCw2ICs1NCwyMSBAQCBlbnVtIGNsYXNzIFNjcm9sbFBv
c2l0aW9uQ2xhbXAgOiB1aW50OF90IHsKICAgICBUb0NvbnRlbnRFZGdlcywKIH07CiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorZW51bSBjbGFz
cyBTY3JvbGxCZWhhdmlvclR5cGUgOiB1aW50OF90IHsKKyAgICBJbnN0YW50LAorICAgIFNtb290
aCwKK307CisjZW5kaWYKKworZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvclN0YXR1cyA6IHVpbnQ4
X3QgeworICAgIE5vdEluQW5pbWF0aW9uLAorICAgIEluTm9uTmF0aXZlQW5pbWF0aW9uLAorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgSW5V
SU5hdGl2ZUFuaW1hdGlvbiwKKyNlbmRpZgorfTsKKwogaW5saW5lIFNjcm9sbERpcmVjdGlvbiBs
b2dpY2FsVG9QaHlzaWNhbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBp
c1ZlcnRpY2FsLCBib29sIGlzRmxpcHBlZCkKIHsKICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCBiMTI2YTljMmI3Li44M2M4
MDg5N2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDYxLDEw
ICs0NjEsMTQgQEAgdm9pZCBTY3JvbGxWaWV3Ojpjb21wbGV0ZVVwZGF0ZXNBZnRlclNjcm9sbFRv
KGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQogICAgIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJz
QWZ0ZXJTY3JvbGxpbmcoKTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlv
bihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIFNjcm9sbFZpZXc6
OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwg
Ym9vbC8qIGFuaW1hdGVkKi8pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3Ry
ZWFtIDw8ICJTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9u
KTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
CisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6Oklu
c3RhbnQpOworI2VuZGlmCisKICAgICBpZiAocHJvaGliaXRzU2Nyb2xsaW5nKCkpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNDc1LDEzICs0NzksMTcgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAKICAgICBT
Y3JvbGxQb3NpdGlvbiBuZXdTY3JvbGxQb3NpdGlvbiA9ICFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSA/
IGFkanVzdFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2Uoc2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xs
UG9zaXRpb247CiAKLSAgICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Ny
b2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlVzZXIpICYmIG5ld1Njcm9sbFBvc2l0aW9uID09IHRo
aXMtPnNjcm9sbFBvc2l0aW9uKCkpCisgICAgaWYgKCghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgfHwg
Y3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKSAmJiAhaXNTY3JvbGxJblBy
b2dyZXNzKCkgJiYgbmV3U2Nyb2xsUG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKGlzTm9uTmF0aXZlQW5pbWF0aW9uSW5Qcm9ncmVz
cygpKQorICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKKwogICAg
IGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUobmV3U2Nyb2xsUG9zaXRpb24pKQogICAg
ICAgICByZXR1cm47CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBvc2l0aW9uKTsK
KyAgICBzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5B
bmltYXRpb24pOwogfQogCiBib29sIFNjcm9sbFZpZXc6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTUzOCw3ICs1NDYs
OCBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Nyb2xsUG9zaXRp
b24mIGRlc2lyZWRQb3NpdGlvbikKICAgICAKICAgICBpZiAoIW1hbmFnZXNTY3JvbGxiYXJzKCkp
IHsKICAgICAgICAgaWYgKHNjcm9sbE9yaWdpbkNoYW5nZWQoKSkgewotICAgICAgICAgICAgU2Ny
b2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3JvbGxPZmZzZXRG
cm9tUG9zaXRpb24oZGVzaXJlZFBvc2l0aW9uKSk7CisgICAgICAgICAgICBpZiAoIXJlcXVlc3RT
Y3JvbGxQb3NpdGlvblVwZGF0ZShkZXNpcmVkUG9zaXRpb24pKQorICAgICAgICAgICAgICAgIFNj
cm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oc2Nyb2xsT2Zmc2V0
RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOwogICAgICAgICAgICAgcmVzZXRTY3JvbGxP
cmlnaW5DaGFuZ2VkKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDQzMDE2MGQ2YWUuLjUzOTgxMDgzOTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTI2MCw3ICsyNjAsNyBAQCBwdWJsaWM6CiAg
ICAgU2Nyb2xsUG9zaXRpb24gY2FjaGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBt
X2NhY2hlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBGdW5jdGlvbnMgZm9yIHNjcm9sbGlu
ZyB0aGUgdmlldy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Ny
b2xsUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2UpOwogICAgIHZvaWQgc2Nyb2xs
QnkoY29uc3QgSW50U2l6ZSYgcykgeyByZXR1cm4gc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9z
aXRpb24oKSArIHMpOyB9CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNjcm9sbHMgYnkgbGluZXMs
IHBhZ2VzIG9yIHBpeGVscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVh
LmNwcAppbmRleCA5NmQwZjMwMGIzLi5kMjI2ZGUxN2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC03MSw2ICs3MSw5IEBAIFNjcm9sbGFibGVBcmVh
OjpTY3JvbGxhYmxlQXJlYSgpCiAgICAgLCBtX3Njcm9sbE9yaWdpbkNoYW5nZWQoZmFsc2UpCiAg
ICAgLCBtX2N1cnJlbnRTY3JvbGxUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihTY3JvbGxUeXBl
OjpVc2VyKSkKICAgICAsIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoZmFsc2UpCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICAs
IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oU2Nyb2xs
QmVoYXZpb3JUeXBlOjpJbnN0YW50KSkKKyNlbmRpZgogewogfQogCkBAIC0xMDQsNiArMTA3LDE2
IEBAIGZsb2F0IFNjcm9sbGFibGVBcmVhOjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250ZW50
KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9yaWVuCiAgICAgcmV0dXJuIHN0ZXA7CiB9CiAKK2Jvb2wg
U2Nyb2xsYWJsZUFyZWE6OmlzU2Nyb2xsSW5Qcm9ncmVzcygpCit7CisgICAgcmV0dXJuIG1fY3Vy
cmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzICE9IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFu
aW1hdGlvbjsKK30KKworYm9vbCBTY3JvbGxhYmxlQXJlYTo6aXNOb25OYXRpdmVBbmltYXRpb25J
blByb2dyZXNzKCkKK3sKKyAgICByZXR1cm4gbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMg
PT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uOworfQorCiBib29s
IFNjcm9sbGFibGVBcmVhOjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xs
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIpCiB7CiAgICAgU2Nyb2xs
YmFyT3JpZW50YXRpb24gb3JpZW50YXRpb247CkBAIC0xNDIsNiArMTU1LDEyIEBAIGJvb2wgU2Ny
b2xsYWJsZUFyZWE6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFu
dWxhcml0eSBncmFudWxhCiAgICAgcmV0dXJuIHNjcm9sbEFuaW1hdG9yKCkuc2Nyb2xsKG9yaWVu
dGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7CiB9CiAKK3ZvaWQgU2Nyb2xs
YWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBv
ZmZzZXQsIFNjcm9sbENsYW1waW5nKQoreworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcs
IHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Nyb2xsVG9PZmZzZXRX
aXRoQW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKKyAgICBzY3JvbGxBbmltYXRvcigpLnNjcm9sbFRv
T2Zmc2V0KG9mZnNldCk7Cit9CisKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0
V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5n
IGNsYW1waW5nKQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAi
U2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0
aW9uICIgPDwgb2Zmc2V0KTsKQEAgLTIyMSwxNiArMjQwLDE1IEBAIGJvb2wgU2Nyb2xsYWJsZUFy
ZWE6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiB0b3VjaEV2ZW50
KQogLy8gTk9URTogT25seSBjYWxsZWQgZnJvbSBJbnRlcm5hbHMgZm9yIHRlc3RpbmcuCiB2b2lk
IFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzKGNvbnN0IFNjcm9s
bE9mZnNldCYgb2Zmc2V0KQogeworICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUo
c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKQorICAgICAgICByZXR1cm47CisKICAg
ICBzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9uKG9mZnNldCk7CiB9CiAKIHZvaWQgU2Nyb2xs
YWJsZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0
JiBvZmZzZXQpCiB7Ci0gICAgU2Nyb2xsUG9zaXRpb24gcG9zaXRpb24gPSBzY3JvbGxQb3NpdGlv
bkZyb21PZmZzZXQob2Zmc2V0KTsKLSAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
KHBvc2l0aW9uKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2Nyb2xsUG9zaXRpb25DaGFuZ2Vk
KHBvc2l0aW9uKTsKKyAgICBzY3JvbGxQb3NpdGlvbkNoYW5nZWQoc2Nyb2xsUG9zaXRpb25Gcm9t
T2Zmc2V0KG9mZnNldCkpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjp3aWxsU3RhcnRMaXZl
UmVzaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IGQ3
NDM4YzE1Y2QuLjYzYWIxYWVhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaApAQCAtNjIsNyArNjIsMTIgQEAgaW5saW5lIGludCBvZmZzZXRGb3JPcmllbnRhdGlv
bihTY3JvbGxPZmZzZXQgb2Zmc2V0LCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnQKIAogY2xh
c3MgU2Nyb2xsYWJsZUFyZWEgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+
IHsKIHB1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzU2Nyb2xsSW5Qcm9ncmVzcygp
OworICAgIGJvb2wgaXNOb25OYXRpdmVBbmltYXRpb25JblByb2dyZXNzKCk7CisgICAgdm9pZCBz
ZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1cyBzdGF0dXMpIHsgbV9j
dXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMgPSBzdGF0dXM7IH0KKwogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0
IG11bHRpcGxpZXIgPSAxKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0
V2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNl
dFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5p
bWF0aW9uKFNjcm9sbGJhck9yaWVudGF0aW9uLCBmbG9hdCBvZmZzZXQpOwogCkBAIC0yNDIsNiAr
MjQ3LDExIEBAIHB1YmxpYzoKICAgICBTY3JvbGxUeXBlIGN1cnJlbnRTY3JvbGxUeXBlKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsVHlwZT4obV9jdXJyZW50U2Nyb2xsVHlwZSk7
IH0KICAgICB2b2lkIHNldEN1cnJlbnRTY3JvbGxUeXBlKFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSkg
eyBtX2N1cnJlbnRTY3JvbGxUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcm9sbFR5cGUp
OyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQorICAgIFNjcm9sbEJlaGF2aW9yVHlwZSBjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsQmVoYXZpb3JUeXBlPihtX2N1cnJlbnRTY3Jv
bGxCZWhhdmlvclR5cGUpOyB9CisgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBl
KFNjcm9sbEJlaGF2aW9yVHlwZSBzY3JvbGxCZWhhdmlvclR5cGUpIHsgbV9jdXJyZW50U2Nyb2xs
QmVoYXZpb3JUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcm9sbEJlaGF2aW9yVHlwZSk7
IH0KKyNlbmRpZgorCiAgICAgYm9vbCBzY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGU7IH0KICAgICB2b2lk
IHNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKGJvb2wgc2hvdWxkQ2xlYXIpIHsgbV9z
Y3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSA9IHNob3VsZENsZWFyOyB9CiAKQEAgLTM3OCw2
ICszODgsOCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fY3VycmVudFZlcnRpY2FsU25hcFBv
aW50SW5kZXggeyAwIH07CiAjZW5kaWYKIAorICAgIFNjcm9sbEJlaGF2aW9yU3RhdHVzIG1fY3Vy
cmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzIHsgU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5p
bWF0aW9uIH07CisKICAgICAvLyBUaGVyZSBhcmUgOCBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2Yg
d3JpdGluZyBtb2RlIGFuZCBkaXJlY3Rpb24uIFNjcm9sbCBvcmlnaW4gd2lsbCBiZSBub24temVy
byBpbiB0aGUgeCBvciB5IGF4aXMKICAgICAvLyBpZiB0aGVyZSBpcyBhbnkgcmV2ZXJzZWQgZGly
ZWN0aW9uIG9yIHdyaXRpbmctbW9kZS4gVGhlIGNvbWJpbmF0aW9ucyBhcmU6CiAgICAgLy8gd3Jp
dGluZy1tb2RlIC8gZGlyZWN0aW9uICAgICBzY3JvbGxPcmlnaW4ueCgpIHNldCAgICBzY3JvbGxP
cmlnaW4ueSgpIHNldApAQCAtNDAzLDYgKzQxNSw5IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQg
bV9zY3JvbGxPcmlnaW5DaGFuZ2VkIDogMTsKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxU
eXBlIDogMTsgLy8gU2Nyb2xsVHlwZQogICAgIHVuc2lnbmVkIG1fc2Nyb2xsU2hvdWxkQ2xlYXJM
YXRjaGVkU3RhdGUgOiAxOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lO
Q19TQ1JPTExJTkcpCisgICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlIDog
MTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3Bw
CmluZGV4IDIwOGFmN2I4NDcuLmFkMzMyYzMyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAKQEAgLTE2
Miw2ICsxNjIsOCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yR2VuZXJpYzo6d2lsbEVuZExpdmVSZXNp
emUoKQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yR2VuZXJpYzo6dXBkYXRlUG9zaXRpb24oRmxvYXRQ
b2ludCYmIHBvc2l0aW9uKQogeworICAgIGlmIChtX3Njcm9sbGFibGVBcmVhLnJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZShyb3VuZGVkSW50UG9pbnQocG9zaXRpb24pKSkKKyAgICAgICAgcmV0
dXJuOwogICAgIEZsb2F0U2l6ZSBkZWx0YSA9IHBvc2l0aW9uIC0gbV9jdXJyZW50UG9zaXRpb247
CiAgICAgbV9jdXJyZW50UG9zaXRpb24gPSBXVEZNb3ZlKHBvc2l0aW9uKTsKICAgICBub3RpZnlQ
b3NpdGlvbkNoYW5nZWQoZGVsdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IGY1OTE3NjcyZWUuLjYzNzUzYWQyNmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KQEAg
LTExNTUsNiArMTE1NSw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeUNvbnRlbnRB
cmVhU2Nyb2xsZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKIAogdm9pZCBTY3JvbGxBbmltYXRv
ck1hYzo6Y2FuY2VsQW5pbWF0aW9ucygpCiB7CisgICAgU2Nyb2xsQW5pbWF0b3I6OmNhbmNlbEFu
aW1hdGlvbnMoKTsKICAgICBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxvYWQgPSBmYWxzZTsKIAog
ICAgIGlmIChzY3JvbGxiYXJQYWludFRpbWVySXNBY3RpdmUoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKaW5kZXggZjhkM2E0OTI1YS4uNmQxZjg1N2M4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTU4MSwyMCArNTgxLDI4IEBAIHN0YXRp
YyB2b2lkIHNldHVwV2hlZWxFdmVudE1vbml0b3IoUmVuZGVyTGF5ZXImIGxheWVyKQogICAgIGxh
eWVyLnNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKHBhZ2Uud2hlZWxF
dmVudFRlc3RNb25pdG9yKCkpOwogfQogCi12b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsTGVmdChp
bnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGlu
ZykKK3ZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBl
IHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewog
ICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkgfHwgIWxheWVyKCkpCiAgICAgICAgIHJldHVybjsK
ICAgICBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKCpsYXllcigpKTsKLSAgICBsYXllcigpLT5zY3Jv
bGxUb1hQb3NpdGlvbihuZXdMZWZ0LCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgbGF5ZXIo
KS0+c2Nyb2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Nyb2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1w
aW5nKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5kZXJC
b3g6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wg
YW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIGlmICghaGFzT3ZlcmZs
b3dDbGlwKCkgfHwgIWxheWVyKCkpCiAgICAgICAgIHJldHVybjsKICAgICBzZXR1cFdoZWVsRXZl
bnRNb25pdG9yKCpsYXllcigpKTsKLSAgICBsYXllcigpLT5zY3JvbGxUb1lQb3NpdGlvbihuZXdU
b3AsIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1lQb3NpdGlv
bihuZXdUb3AsIHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7Cit9CisKK3ZvaWQgUmVu
ZGVyQm94OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24s
IFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xh
bXBpbmcpCit7CisgICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAoKSB8fCAhbGF5ZXIoKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIHNldHVwV2hlZWxFdmVudE1vbml0b3IoKmxheWVyKCkpOworICAgIGxh
eWVyKCktPnNjcm9sbFRvUG9zaXRpb24ocG9zaXRpb24sIHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBj
bGFtcGluZyk7CiB9CiAKIHZvaWQgUmVuZGVyQm94OjphYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRS
ZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA0OTU0ODE0MDU0Li4yMjE5Mjgw
NTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC0yNDcsOCArMjQ3LDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IHNjcm9sbFRvcCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgaW50IHNjcm9sbFdpZHRoKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgc2Nyb2xsSGVpZ2h0
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBl
LCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3Jv
bGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbExlZnQoaW50
LCBTY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkID0gZmFsc2UsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxUb3AoaW50
LCBTY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkID0gZmFsc2UsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkID0gZmFsc2UsIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCiAgICAgTGF5b3V0VW5pdCBt
YXJnaW5Ub3AoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX21hcmdpbkJveC50b3AoKTsgfQog
ICAgIExheW91dFVuaXQgbWFyZ2luQm90dG9tKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9t
YXJnaW5Cb3guYm90dG9tKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCmluZGV4IGQ4NGFkMWExZGEuLmFkMTJiMDBmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjU3NSwxNiArMjU3NSwyNCBAQCB2b2lkIFJlbmRlckxh
eWVyOjphcHBseVBvc3RMYXlvdXRTY3JvbGxQb3NpdGlvbklmTmVlZGVkKCkKICAgICBtX3Bvc3RM
YXlvdXRTY3JvbGxQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsKIH0KIAotdm9pZCBSZW5kZXJMYXll
cjo6c2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1hQb3NpdGlvbihp
bnQgeCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGlu
ZyBjbGFtcGluZykKIHsKICAgICBTY3JvbGxQb3NpdGlvbiBwb3NpdGlvbih4LCBtX3Njcm9sbFBv
c2l0aW9uLnkoKSk7Ci0gICAgc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9u
KHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIHNjcm9sbFRvUG9zaXRpb24o
cG9zaXRpb24sIHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7CiB9CiAKLXZvaWQgUmVu
ZGVyTGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUs
IFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9ZUG9z
aXRpb24oaW50IHksIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xs
Q2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgU2Nyb2xsUG9zaXRpb24gcG9zaXRpb24obV9zY3Jv
bGxQb3NpdGlvbi54KCksIHkpOwotICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldEZyb21Q
b3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICBzY3JvbGxUb1Bv
c2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOworfQorCit2
b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1Bvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBw
b3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFt
cGluZyBjbGFtcGluZykKK3sKKyAgICBpZiAoYW5pbWF0ZWQpCisgICAgICAgIHNjcm9sbFRvT2Zm
c2V0V2l0aEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3Jv
bGxUeXBlLCBjbGFtcGluZyk7CisgICAgZWxzZQorICAgICAgICBzY3JvbGxUb09mZnNldChzY3Jv
bGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CiB9
CiAKIFNjcm9sbE9mZnNldCBSZW5kZXJMYXllcjo6Y2xhbXBTY3JvbGxPZmZzZXQoY29uc3QgU2Ny
b2xsT2Zmc2V0JiBzY3JvbGxPZmZzZXQpIGNvbnN0CkBAIC0yNTk0LDIyICsyNjAyLDY4IEBAIFNj
cm9sbE9mZnNldCBSZW5kZXJMYXllcjo6Y2xhbXBTY3JvbGxPZmZzZXQoY29uc3QgU2Nyb2xsT2Zm
c2V0JiBzY3JvbGxPZmZzZXQpIGNvCiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0
KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUs
IFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZShTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpOworI2VuZGlmCisKKyAgICBpZiAoaXNOb25O
YXRpdmVBbmltYXRpb25JblByb2dyZXNzKCkpCisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2Fu
Y2VsQW5pbWF0aW9ucygpOworCiAgICAgU2Nyb2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQg
PSBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0
KHNjcm9sbE9mZnNldCkgOiBzY3JvbGxPZmZzZXQ7Ci0gICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZz
ZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQg
PT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgICAgICAvLyBJZiBVSVNjcm9sbFZpZXcgaXMgcGVy
Zm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24sIHRoZSBzY3JvbGwgb2Zmc2V0IG9mIHRoZSBXZWIg
cHJvY2VzcyBtaWdodCBiZSBvdmVycmlkZGVuLgorICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGNh
bGwgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlIGhlcmUgYW5kIGxldCBpdCBiZSBjaGVja2Vk
IG9uIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIG9mZnNldCBvbiB0
aGUgVUkgcHJvY2VzcyBpcyBkaWZmZXJlbnQsIHRoZSBjb3JyZWN0IHNjcm9sbCBvZmZzZXQgbmVl
ZHMgdG8gc3luYyBiYWNrIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgaWYgKGN1cnJlbnRT
Y3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJblVJTmF0aXZl
QW5pbWF0aW9uKQorICAgICAgICAgICAgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9s
bFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CisjZW5kaWYKICAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVu
dFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKIAog
ICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0g
ICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2Uo
KS5zY3JvbGxpbmdDb29yZGluYXRvcigpKQotICAgICAgICBoYW5kbGVkID0gc2Nyb2xsaW5nQ29v
cmRpbmF0b3ItPnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgc2Nyb2xsUG9zaXRp
b25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpKTsKKyAgICBoYW5kbGVkID0gcmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Ny
b2xsT2Zmc2V0KSk7CiAjZW5kaWYKIAotICAgIGlmICghaGFuZGxlZCkKKyAgICBpZiAoIWhhbmRs
ZWQpIHsKICAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNsYW1wZWRTY3Jv
bGxPZmZzZXQsIGNsYW1waW5nKTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Ny
b2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworfQorCitib29sIFJlbmRlckxheWVy
OjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0
aW9uKQoreworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgaWYgKFNjcm9sbGluZ0Nv
b3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5zY3JvbGxpbmdDb29yZGlu
YXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgcG9zaXRpb24pOworI2VuZGlmCisgICAgcmV0dXJuIGZh
bHNlOworfQogCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24o
Y29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJy
ZW50U2Nyb2xsVHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAg
ICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3Ro
KTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJv
bU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91
c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBTY3Jv
bGxPZmZzZXQgbmV3U2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNs
YW1wZWQgPyBjbGFtcFNjcm9sbE9mZnNldChvZmZzZXQpIDogb2Zmc2V0OworICAgIGlmIChpc05v
bk5hdGl2ZUFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkKKyAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5j
YW5jZWxBbmltYXRpb25zKCk7CisgICAgaWYgKG5ld1Njcm9sbE9mZnNldCAhPSB0aGlzLT5zY3Jv
bGxPZmZzZXQoKSkKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFu
aW1hdGlvbihuZXdTY3JvbGxPZmZzZXQpOwogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZp
b3VzU2Nyb2xsVHlwZSk7CiB9CiAKQEAgLTI2NDUsNyArMjY5OSw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKICNlbmRpZgogICAg
IH0KICAgICAKLSAgICBpZiAobV9zY3JvbGxQb3NpdGlvbiA9PSBuZXdQb3NpdGlvbikgeworICAg
IGlmIChtX3Njcm9sbFBvc2l0aW9uID09IG5ld1Bvc2l0aW9uICYmICFpc1Njcm9sbEluUHJvZ3Jl
c3MoKSkgewogICAgICAgICAvLyBGSVhNRTogTm90aGluZyBndWFyYW50ZWVzIHdlIGdldCBhIHNj
cm9sbFRvKCkgd2l0aCBhbiB1bmNoYW5nZWQgcG9zaXRpb24gYXQgdGhlIGVuZCBvZiBhIHVzZXIg
Z2VzdHVyZS4KICAgICAgICAgLy8gVGhlIFNjcm9sbGluZ0Nvb3JkaW5hdG9yIHByb2JhYmx5IG5l
ZWRzIHRvIG1lc3NhZ2UgdGhlIG1haW4gdGhyZWFkIHdoZW4gYSBnZXN0dXJlIGVuZHMuCiAgICAg
ICAgIGlmIChyZXF1aXJlc1Njcm9sbFBvc2l0aW9uUmVjb25jaWxpYXRpb24oKSkgewpAQCAtMjc5
MCwxMCArMjg0NCwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNv
bnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICBMYXlvdXRS
ZWN0IHJldmVhbFJlY3QgPSBnZXRSZWN0VG9FeHBvc2UobGF5ZXJCb3VuZHMsIGxvY2FsRXhwb3Nl
UmVjdCwgaW5zaWRlRml4ZWQsIG9wdGlvbnMuYWxpZ25YLCBvcHRpb25zLmFsaWduWSk7CiAKICAg
ICAgICAgU2Nyb2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcFNjcm9sbE9mZnNl
dChzY3JvbGxPZmZzZXQoKSArIHRvSW50U2l6ZShyb3VuZGVkSW50UmVjdChyZXZlYWxSZWN0KS5s
b2NhdGlvbigpKSk7Ci0gICAgICAgIGlmIChjbGFtcGVkU2Nyb2xsT2Zmc2V0ICE9IHNjcm9sbE9m
ZnNldCgpKSB7CisgICAgICAgIGlmIChpc1Njcm9sbEluUHJvZ3Jlc3MoKSB8fCBjbGFtcGVkU2Ny
b2xsT2Zmc2V0ICE9IHNjcm9sbE9mZnNldCgpKSB7CiAgICAgICAgICAgICBTY3JvbGxPZmZzZXQg
b2xkU2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0KCk7Ci0gICAgICAgICAgICBzY3JvbGxUb09m
ZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KTsKLSAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zm
c2V0RGlmZmVyZW5jZSA9IHNjcm9sbE9mZnNldCgpIC0gb2xkU2Nyb2xsT2Zmc2V0OworICAgICAg
ICAgICAgYm9vbCBhbmltYXRlZCA9IChib3gtPmVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxp
bmcob3B0aW9ucy5iZWhhdmlvciwgKmJveC0+ZWxlbWVudCgpKSk7CisgICAgICAgICAgICBzY3Jv
bGxUb1Bvc2l0aW9uKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0
KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7CisgICAgICAgICAgICBJbnRT
aXplIHNjcm9sbE9mZnNldERpZmZlcmVuY2UgPSBjbGFtcGVkU2Nyb2xsT2Zmc2V0IC0gb2xkU2Ny
b2xsT2Zmc2V0OwogICAgICAgICAgICAgbG9jYWxFeHBvc2VSZWN0Lm1vdmUoLXNjcm9sbE9mZnNl
dERpZmZlcmVuY2UpOwogICAgICAgICAgICAgbmV3UmVjdCA9IExheW91dFJlY3QoYm94LT5sb2Nh
bFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobG9jYWxFeHBvc2VSZWN0KSksIFVz
ZVRyYW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwogICAgICAgICB9CkBAIC0yODEzLDEwICsyODY4
LDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0
UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgICAgICAgICAgTGF5b3V0UmVj
dCB2aWV3UmVjdCA9IGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoTGVnYWN5SU9TRG9jdW1l
bnRWaXNpYmxlUmVjdCk7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBleHBvc2VSZWN0ID0g
Z2V0UmVjdFRvRXhwb3NlKHZpZXdSZWN0LCBhYnNvbHV0ZVJlY3QsIGluc2lkZUZpeGVkLCBvcHRp
b25zLmFsaWduWCwgb3B0aW9ucy5hbGlnblkpOwogCi0gICAgICAgICAgICAgICAgSW50UG9pbnQg
c2Nyb2xsT2Zmc2V0KHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkpKTsKKyAg
ICAgICAgICAgICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbihyb3VuZGVkSW50UG9pbnQoZXhw
b3NlUmVjdC5sb2NhdGlvbigpKSk7CiAgICAgICAgICAgICAgICAgLy8gQWRqdXN0IG9mZnNldHMg
aWYgdGhleSdyZSBvdXRzaWRlIG9mIHRoZSBhbGxvd2FibGUgcmFuZ2UuCi0gICAgICAgICAgICAg
ICAgc2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2lu
dCgpLCBJbnRQb2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKLSAgICAgICAgICAgICAg
ICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsT2Zmc2V0KTsKKyAgICAgICAgICAg
ICAgICBzY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihJ
bnRQb2ludCgpLCBJbnRQb2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKKyAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBjb250ZW50RG9jdW1lbnQoKS0+c2Nyb2xs
aW5nRWxlbWVudCgpPworICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRl
ZCA9IG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCkgJiYgb3duZXJFbGVtZW50LT5jb250
ZW50RG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9w
dGlvbnMuYmVoYXZpb3IsICpvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1bWVu
dEVsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uLCBhbmltYXRlZCk7CiAKICAgICAgICAgICAgICAgICBpZiAob3B0aW9u
cy5zaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nID09IFNob3VsZEFsbG93Q3Jvc3NPcmln
aW5TY3JvbGxpbmc6OlllcyB8fCBmcmFtZVZpZXcuc2FmZVRvUHJvcGFnYXRlU2Nyb2xsVG9QYXJl
bnQoKSkgewogICAgICAgICAgICAgICAgICAgICBwYXJlbnRMYXllciA9IG93bmVyRWxlbWVudC0+
cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKTsKQEAgLTI4NTUsNyArMjkxMywxMCBAQCB2b2lk
IFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29s
dXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAgICAgLy8gQXZvaWQgc2Nyb2xsaW5nIHRvIHRo
ZSByb3VuZGVkIHZhbHVlIG9mIHJldmVhbFJlY3QubG9jYXRpb24oKSBpZiB3ZSBkb24ndCBhY3R1
YWxseSBuZWVkIHRvIHNjcm9sbAogICAgICAgICAgICAgaWYgKHJldmVhbFJlY3QgIT0gdmlld1Jl
Y3QpIHsKICAgICAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbFBvc2l0aW9u
ID0gcm91bmRlZEludFBvaW50KHJldmVhbFJlY3QubG9jYXRpb24oKSkuY29uc3RyYWluZWRCZXR3
ZWVuKG1pblNjcm9sbFBvc2l0aW9uLCBtYXhTY3JvbGxQb3NpdGlvbik7Ci0gICAgICAgICAgICAg
ICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7Cisg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xs
aW5nRWxlbWVudCgpPworICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRl
ZCA9IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhT
Y3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgKnJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kb2N1bWVu
dEVsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9u
KGNsYW1wZWRTY3JvbGxQb3NpdGlvbiwgYW5pbWF0ZWQpOwogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAvLyBUaGlzIGlzIHRoZSBvdXRlcm1vc3QgdmlldyBvZiBhIHdlYiBwYWdlLCBzbyBh
ZnRlciBzY3JvbGxpbmcgdGhpcyB2aWV3IHdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCmluZGV4IDZjYTQyMmI3YjIuLjhjOTc3ODM3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUGFpbnRJbmZv
LmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHRyLmgiCisjaW5j
bHVkZSAiU2Nyb2xsQmVoYXZpb3IuaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2lu
Y2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtMTM0LDYgKzEzNSw3
IEBAIHN0cnVjdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9ucyB7CiAgICAgY29uc3QgU2Nyb2xs
QWxpZ25tZW50JiBhbGlnblggeyBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQg
fTsKICAgICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSB7IFNjcm9sbEFsaWdubWVudDo6
YWxpZ25DZW50ZXJJZk5lZWRlZCB9OwogICAgIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxp
bmcgc2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyB7IFNob3VsZEFsbG93Q3Jvc3NPcmln
aW5TY3JvbGxpbmc6Ok5vIH07CisgICAgU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IgeyBTY3JvbGxC
ZWhhdmlvcjo6QXV0byB9OwogfTsKIAogY2xhc3MgUmVuZGVyTGF5ZXIgZmluYWwgOiBwdWJsaWMg
U2Nyb2xsYWJsZUFyZWEgewpAQCAtNDM5LDkgKzQ0MSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
Y3JvbGxCeVJlY3Vyc2l2ZWx5KGNvbnN0IEludFNpemUmIGRlbHRhLCBTY3JvbGxhYmxlQXJlYSoq
IHNjcm9sbGVkQXJlYSA9IG51bGxwdHIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3Jv
bGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6
UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25z
dCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBT
Y3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAotICAgIHZvaWQgc2Ny
b2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQpOwotICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24oaW50IHksIFNj
cm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAg
IGJvb2wgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikg
b3ZlcnJpZGU7CisKKyAgICB2b2lkIHNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBl
LCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVk
KTsKKyAgICB2b2lkIHNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlLCBib29sIGFu
aW1hdGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2
b2lkIHNjcm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlLCBi
b29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsK
IAogICAgIC8vIFRoZXNlIGFyZSBvbmx5IHVzZWQgYnkgbWFycXVlZS4KICAgICB2b2lkIHNjcm9s
bFRvWE9mZnNldChpbnQgeCkgeyBzY3JvbGxUb09mZnNldChTY3JvbGxPZmZzZXQoeCwgc2Nyb2xs
T2Zmc2V0KCkueSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6
VW5jbGFtcGVkKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3Bw
CmluZGV4IDI1Y2QyZDMzYTcuLmMzM2U5MDYwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTc0Myw3ICs3NDMsNyBAQCBpbnQgUmVuZGVyTGlzdEJv
eDo6c2Nyb2xsTGVmdCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgUmVuZGVyTGlz
dEJveDo6c2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9p
ZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Ny
b2xsQ2xhbXBpbmcpCiB7CiB9CiAKQEAgLTc2MCw3ICs3NjAsNyBAQCBzdGF0aWMgdm9pZCBzZXR1
cFdoZWVsRXZlbnRUZXN0TW9uaXRvcihSZW5kZXJMaXN0Qm94JiByZW5kZXJlcikKICAgICByZW5k
ZXJlci5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihyZW5kZXJlci5w
YWdlKCkud2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwogfQogCi12b2lkIFJlbmRlckxpc3RCb3g6
OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3Zv
aWQgUmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJv
b2wsIFNjcm9sbENsYW1waW5nKQogewogICAgIC8vIERldGVybWluZSBhbiBpbmRleCBhbmQgc2Ny
b2xsIHRvIGl0LiAgICAKICAgICBpbnQgaW5kZXggPSBuZXdUb3AgLyBpdGVtSGVpZ2h0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAppbmRleCA2NWQ5MjI2YjNhLi4y
NWM5MDY1MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKQEAg
LTEwNiw4ICsxMDYsOCBAQCBwcml2YXRlOgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBpbnQgc2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Ny
b2xsSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwg
U2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xs
VG9wKGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQg
c2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9s
bENsYW1waW5nKSBvdmVycmlkZTsKIAogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVz
dFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlv
bkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRl
c3RBY3Rpb24pIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IDllZTg4ODg2NzEuLjRk
ZjdkMzE4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0zNzYsMTMgKzM3NiwxMyBAQCBpbnQgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzY3JvbGxUb3AoKSBjb25zdAogICAgIHJldHVybiBS
ZW5kZXJCbG9ja0Zsb3c6OnNjcm9sbFRvcCgpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcpCit2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsTGVm
dChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpCiB7CiAgICAg
aWYgKGlubmVyVGV4dEVsZW1lbnQoKSkKICAgICAgICAgaW5uZXJUZXh0RWxlbWVudCgpLT5zZXRT
Y3JvbGxMZWZ0KG5ld0xlZnQpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZTo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQor
dm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9w
LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0
RWxlbWVudCgpKQogICAgICAgICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbFRvcChuZXdU
b3ApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5oCmluZGV4IDNmNTc4NmRmZTQuLjY2NmFhMzE0NTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmgKQEAgLTU3LDggKzU3LDggQEAgcHJpdmF0ZToKICAgICBpbnQgc2Nyb2xsVG9wKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgaW50IHNjcm9sbFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50
IHNjcm9sbEhlaWdodCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChp
bnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFNj
cm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykg
b3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBib29sLCBT
Y3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9u
LCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIEVsZW1lbnQqKiBzdG9w
RWxlbWVudCA9IG51bGxwdHIsIFJlbmRlckJveCogc3RhcnRCb3ggPSBudWxscHRyLCBjb25zdCBJ
bnRQb2ludCYgd2hlZWxFdmVudEFic29sdXRlUG9pbnQgPSBJbnRQb2ludCgpKSBmaW5hbDsKICAg
ICBib29sIGxvZ2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVs
YXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLCBFbGVtZW50Kiogc3RvcEVsZW1lbnQgPSAwKSBm
aW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApp
bmRleCA1ZGNiMjFjNjQ2Li4wMDdhNGQxMzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNzM2LDYgKzczNiw4IEBAIHB1YmxpYzoKICAgICBi
b29sIHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBtX3JhcmVJbmhl
cml0ZWREYXRhLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nOyB9CiAjZW5kaWYKIAorICAgIGJv
b2wgdXNlU21vb3RoU2Nyb2xsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVk
RGF0YS0+dXNlU21vb3RoU2Nyb2xsaW5nOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5H
KQogICAgIFRleHRTaXplQWRqdXN0bWVudCB0ZXh0U2l6ZUFkanVzdCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmFyZUluaGVyaXRlZERhdGEtPnRleHRTaXplQWRqdXN0OyB9CiAgICAgQXV0b3NpemVTdGF0
dXMgYXV0b3NpemVTdGF0dXMoKSBjb25zdDsKQEAgLTEyNjcsNiArMTI2OSw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoYm9vbCB2KSB7IFNFVF9WQVIo
bV9yYXJlSW5oZXJpdGVkRGF0YSwgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZywgdik7IH0KICNl
bmRpZgogCisgICAgdm9pZCBzZXRVc2VTbW9vdGhTY3JvbGxpbmcoYm9vbCB2KSB7IFNFVF9WQVIo
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgdXNlU21vb3RoU2Nyb2xsaW5nLCB2KTsgfQorCiAjaWYg
RU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICB2b2lkIHNldFRleHRTaXplQWRqdXN0KFRleHRT
aXplQWRqdXN0bWVudCBhZGp1c3RtZW50KSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwg
dGV4dFNpemVBZGp1c3QsIGFkanVzdG1lbnQpOyB9CiAgICAgdm9pZCBzZXRBdXRvc2l6ZVN0YXR1
cyhBdXRvc2l6ZVN0YXR1cyk7CkBAIC0xNzA0LDYgKzE3MDgsOCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGJvb2wgaW5pdGlhbFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxz
ZTsgfQogI2VuZGlmCiAKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNlU21vb3RoU2Nyb2xsaW5n
KCkgeyByZXR1cm4gZmFsc2U7IH0KKwogICAgIHN0YXRpYyBjb25zdCBGaWx0ZXJPcGVyYXRpb25z
JiBpbml0aWFsRmlsdGVyKCkgeyBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmlsdGVyT3BlcmF0aW9u
cz4gb3BzOyByZXR1cm4gb3BzOyB9CiAgICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMm
IGluaXRpYWxBcHBsZUNvbG9yRmlsdGVyKCkgeyBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmlsdGVy
T3BlcmF0aW9ucz4gb3BzOyByZXR1cm4gb3BzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApp
bmRleCBmYjMyMDgyMzM3Li5kMmE1MzFmYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBA
IC04Nyw2ICs4Nyw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEoKQogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KHN0YXRpY19jYXN0PHVuc2ln
bmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEJhY2tmYWNlVmlzaWJpbGl0eSgpKSkKICAgICAsIHVz
ZXJEcmFnKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZXJEcmFn
KCkpKQogICAgICwgdGV4dE92ZXJmbG93KHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHls
ZTo6aW5pdGlhbFRleHRPdmVyZmxvdygpKSkKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmco
KSkpCiAgICAgLCBtYXJnaW5CZWZvcmVDb2xsYXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTWFy
Z2luQ29sbGFwc2U6OkNvbGxhcHNlKSkKICAgICAsIG1hcmdpbkFmdGVyQ29sbGFwc2Uoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KE1hcmdpbkNvbGxhcHNlOjpDb2xsYXBzZSkpCiAgICAgLCBhcHBlYXJh
bmNlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEFwcGVhcmFuY2Uo
KSkpCkBAIC0xODAsNiArMTgxLDcgQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6
OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIGJh
Y2tmYWNlVmlzaWJpbGl0eShvLmJhY2tmYWNlVmlzaWJpbGl0eSkKICAgICAsIHVzZXJEcmFnKG8u
dXNlckRyYWcpCiAgICAgLCB0ZXh0T3ZlcmZsb3coby50ZXh0T3ZlcmZsb3cpCisgICAgLCB1c2VT
bW9vdGhTY3JvbGxpbmcoby51c2VTbW9vdGhTY3JvbGxpbmcpCiAgICAgLCBtYXJnaW5CZWZvcmVD
b2xsYXBzZShvLm1hcmdpbkJlZm9yZUNvbGxhcHNlKQogICAgICwgbWFyZ2luQWZ0ZXJDb2xsYXBz
ZShvLm1hcmdpbkFmdGVyQ29sbGFwc2UpCiAgICAgLCBhcHBlYXJhbmNlKG8uYXBwZWFyYW5jZSkK
QEAgLTI3OCw2ICsyODAsNyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJh
dG9yPT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBi
YWNrZmFjZVZpc2liaWxpdHkgPT0gby5iYWNrZmFjZVZpc2liaWxpdHkKICAgICAgICAgJiYgdXNl
ckRyYWcgPT0gby51c2VyRHJhZwogICAgICAgICAmJiB0ZXh0T3ZlcmZsb3cgPT0gby50ZXh0T3Zl
cmZsb3cKKyAgICAgICAgJiYgdXNlU21vb3RoU2Nyb2xsaW5nID09IG8udXNlU21vb3RoU2Nyb2xs
aW5nCiAgICAgICAgICYmIG1hcmdpbkJlZm9yZUNvbGxhcHNlID09IG8ubWFyZ2luQmVmb3JlQ29s
bGFwc2UKICAgICAgICAgJiYgbWFyZ2luQWZ0ZXJDb2xsYXBzZSA9PSBvLm1hcmdpbkFmdGVyQ29s
bGFwc2UKICAgICAgICAgJiYgYXBwZWFyYW5jZSA9PSBvLmFwcGVhcmFuY2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5oCmluZGV4IDE5YzU5MWIyZDEuLjE2YTI4NTEzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
aApAQCAtMTgxLDYgKzE4MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHVzZXJEcmFnIDog
MjsgLy8gVXNlckRyYWcKICAgICB1bnNpZ25lZCB0ZXh0T3ZlcmZsb3cgOiAxOyAvLyBXaGV0aGVy
IG9yIG5vdCBsaW5lcyB0aGF0IHNwaWxsIG91dCBzaG91bGQgYmUgdHJ1bmNhdGVkIHdpdGggIi4u
LiIKKyAgICB1bnNpZ25lZCB1c2VTbW9vdGhTY3JvbGxpbmcgOiAxOyAvLyBTY3JvbGxCZWhhdmlv
cgogICAgIHVuc2lnbmVkIG1hcmdpbkJlZm9yZUNvbGxhcHNlIDogMjsgLy8gTWFyZ2luQ29sbGFw
c2UKICAgICB1bnNpZ25lZCBtYXJnaW5BZnRlckNvbGxhcHNlIDogMjsgLy8gTWFyZ2luQ29sbGFw
c2UKICAgICB1bnNpZ25lZCBhcHBlYXJhbmNlIDogNjsgLy8gRUFwcGVhcmFuY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKaW5kZXggN2YzZjBjYmM0ZS4u
ZTM4MjA0ZjY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVy
Q29udmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVy
dGVyLmgKQEAgLTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgY29udmVy
dE92ZXJmbG93U2Nyb2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAjZW5k
aWYKICAgICBzdGF0aWMgRm9udEZlYXR1cmVTZXR0aW5ncyBjb252ZXJ0Rm9udEZlYXR1cmVTZXR0
aW5ncyhCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOworICAgIHN0YXRpYyBib29sIGNv
bnZlcnRTbW9vdGhTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKICAg
ICBzdGF0aWMgRm9udFNlbGVjdGlvblZhbHVlIGNvbnZlcnRGb250V2VpZ2h0RnJvbVZhbHVlKGNv
bnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIEZvbnRTZWxlY3Rpb25WYWx1ZSBjb252ZXJ0Rm9u
dFN0cmV0Y2hGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgT3B0aW9uYWw8
Rm9udFNlbGVjdGlvblZhbHVlPiBjb252ZXJ0Rm9udFN0eWxlRnJvbVZhbHVlKGNvbnN0IENTU1Zh
bHVlJik7CkBAIC0xNDAzLDYgKzE0MDQsMTEgQEAgaW5saW5lIGJvb2wgQnVpbGRlckNvbnZlcnRl
cjo6Y29udmVydE92ZXJmbG93U2Nyb2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1YKIH0K
ICNlbmRpZgogCitpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U21vb3RoU2Ny
b2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICByZXR1
cm4gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS52YWx1ZUlEKCkgPT0gQ1NTVmFs
dWVTbW9vdGg7Cit9CisKIGlubGluZSBTVkdMZW5ndGhWYWx1ZSBCdWlsZGVyQ29udmVydGVyOjpj
b252ZXJ0U1ZHTGVuZ3RoVmFsdWUoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVl
KQogewogICAgIHJldHVybiBTVkdMZW5ndGhWYWx1ZTo6ZnJvbUNTU1ByaW1pdGl2ZVZhbHVlKGRv
d25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IGUwNzc3OTYyZDUuLjcyNDAwODEwZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTE3NDYsNyArMTc0Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEludGVybmFsczo6dW5jb25zdHJhaW5lZFNjcm9sbFRvKEVsZW1lbnQmIGVsZW1lbnQsIGRvdWJs
ZSB4LCBkCiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCi0gICAgZWxlbWVudC5z
Y3JvbGxUbyh7IHgsIHkgfSwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CisgICAgZWxlbWVu
dC5zY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSksIFNjcm9sbENsYW1waW5nOjpVbmNsYW1w
ZWQpOwogICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg0NTJlN2Y5MS4uYjI4YWE0
ZDBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxOS0xMi0xMSAgQ2F0aGllIENoZW4g
IDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9s
bCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxh
dGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJh
c2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIENTU09N
IHNtb290aCBzY3JvbGxpbmcgYXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuIE9uIGlvcyBwbGF0
Zm9ybSwgdXNlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaW50ZXJmYWNlcyB0
byBwZXJmb3JtYW5jZSBzbW9vdGggc2Nyb2xsIGFuZCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24g
dG8gdGhlIFdlYiBwcm9jZXNzLgorCisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29kZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXAp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAo
cG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbCk6IEhlbHAgZnVuY3Rpb24gdG8gY2hlY2sg
aWYgdHdvIGZsb2F0IHBvaW50cyBhcmUgbm90IGVxdWFsIGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2Ug
cGl4ZWwuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRp
b246c2Nyb2xsT3JpZ2luOmFuaW1hdGVkOl0pOiBBZGQgYW5pbWF0ZWQgZmxhZyB0byBzdGFydCBh
IGFuaW1hdGVkIHNjcm9sbCBpZiBuZWVkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBzY3JvbGxW
aWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOl0pOiBTZW5kIHNyb2xsIGVuZCBtZXNzYWdlIHRv
IHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRT
Y3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnJlcXVlc3RTY3JvbGxX
aXRoQW5pbWF0aW9uKTogUHJvdmlkZSBpbnRlcmZhY2UgZm9yIGFuaW1hdGVkIHNjcm9sbGluZy4K
KyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OmNvbW1pdExheWVyVHJlZSk6IEFkZCBhbmltYXRlZCBmbGFnLgorICAgICAgICAq
IFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKTogU3luYyB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRv
IHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhbmltYXRl
ZCBzY3JvbGxpbmcgaW5mbyB0byBtX3JlcXVlc3RlZFNjcm9sbEluZm8uCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlSXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogU3luYyBzY3JvbGxBbmltYXRpb25J
blByb2dyZXNzIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogRGl0dG8uIEl0J3Mgc3BlY2lmaWMgdG8gdGhlIHJv
b3Qgbm9kZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3Jv
bGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6IEFkZCBhbmltYXRlZCBpbmZv
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGlu
Z1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hh
bmdlKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1MubW06CisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBz
Y3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOl0pOiBTZW5kIHNjb2xsIGVuZCBpbmZv
IHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTogSWYgdGhlIHNj
cm9sbCBwb3NpdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MgaXNuJ3QgZXF1YWwgdG8gdGhlIFVJIHBy
b2Nlc3MsCisgICAgICAgIHRoZSBzY3JvbGwgcG9zaXRpb24gc2hvdWxkIGJlIHN5bmNocm9uaXpl
ZCwgZXZlbiB0aGVyZSdzIG5vIHNjcm9sbGluZyBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3Mu
CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6
OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMpOiBDYWxsaW5nIHRoZSBuYXRpdmUgYW5pbWF0ZWQg
c2Nyb2xsaW5nIGludGVyZmFjZSBmb3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgSWYgdGhlcmUn
cyBhIHNjcm9sbCBhbmltYXRpb24gcGVyZm9ybWluZywgaXQgc2hvdWxkIGJlIHN0b3BwZWQgZmly
c3QsIHRoZW4gc3RhcnQgYSBuZXcgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5n
QW5pbWF0aW9uKTogU3luYyBzY3JvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RTY3JvbGwpOiBUbyBjYWxsIGRpZmZlcmVudCBmdW5jdGlvbnMgZm9y
IHNtb290aCBhbmQgaW5zdGFudCBzY3JvbGwuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSk6CisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8
Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwg
YmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcgYXMg
YW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJp
YyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcu
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAxOS0xMi0xMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUg
bG9hZCBzb29uZXIgb24gc3dpcGUgYmFjay9mb3J3YXJkIG5hdmlnYXRpb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAppbmRleCBkN2Ix
ZTE5MzcyLi41NzQ0ZTFjODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xNTIsNiArMTUyLDkgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdAogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zLCBzY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMp
CiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKQogICAgIFND
Uk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBTQ1JPTExJTkdfTk9E
RV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKQorI2VuZGlmCiAKICAg
ICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpTY3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNjcm9sbENvbnRhaW5lckxheWVy
KCkpOwpAQCAtMjYwLDcgKzI2MywxNCBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9sbAogICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAg
ICAgYm9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHNjcm9sbFdpdGhBbmltYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBub2RlLnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxXaXRoQW5pbWF0aW9uKTsKKyNlbHNlCiAgICAg
ICAgIG5vZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKG5vZGUu
aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29u
dGFpbmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjE4LDkgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0
U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29s
IGMKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KSkgewogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24i
LCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB0cy5kdW1wUHJvcGVy
dHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0aWMiLCBub2RlLnJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1z
Y3JvbGwtcG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uV2l0aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICghY2hhbmdlZFBy
b3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByZWZlcmVuY2VzLnlhbWwKaW5kZXggMmU3YjRiNGZlNC4uZmViMmMzZjg0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzI0LDYgKzEzMjQsMTMgQEAg
QmxvY2tpbmdPZlNtYWxsUGx1Z2luc0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlv
bjogIlN0b3AgcGx1Z2lucyBzbWFsbGVyIHRoYW4gYSBjZXJ0YWluIHRocmVzaG9sZCBmcm9tIGxv
YWRpbmcuIgogICBjYXRlZ29yeTogaW50ZXJuYWwKIAorQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVh
ZGFibGVOYW1lOiAiQ1NTT00gVmlldyBTbW9vdGggU2Nyb2xsaW5nIgorICBodW1hblJlYWRhYmxl
RGVzY3JpcHRpb246ICJFbmFibGUgRE9NIEFQSSBhbmQgQ1NTIHByb3BlcnR5IGZvciAnc21vb3Ro
JyBzY3JvbGwgYmVoYXZpb3IiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogV2ViQW5pbWF0
aW9uc0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzMzU0YWM2
ZWVjLi4xMDhlNGMwM2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KQEAgLTE2MTcsNiArMTYxNywxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
cG9pbnRzRXF1YWxJbkRldmljZVBpeGVscyhDR1BvaW50IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2
aWNlUwogICAgICAgICAmJiBmYWJzKGEueSAqIGRldmljZVNjYWxlRmFjdG9yIC0gYi55ICogZGV2
aWNlU2NhbGVGYWN0b3IpIDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsK
IH0KIAorc3RhdGljIGlubGluZSBib29sIHBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwo
Q0dQb2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIHJl
dHVybiBDR1JvdW5kKGEueCAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueCAqIGRl
dmljZVNjYWxlRmFjdG9yKQorICAgICAgICAmJiBDR1JvdW5kKGEueSAqIGRldmljZVNjYWxlRmFj
dG9yKSA9PSBDR1JvdW5kKGIueSAqIGRldmljZVNjYWxlRmFjdG9yKTsKK30KIHN0YXRpYyBDR1Np
emUgcm91bmRTY3JvbGxWaWV3Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkm
IHBhZ2UsIENHU2l6ZSBjb250ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ciA9IHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKTsKQEAgLTIzNDEsOSArMjM0NiwxMCBAQCBzdGF0
aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZs
b2F0UG9pbnQgY29udGVudE9mZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVk
QmV0d2VlbihXZWJDb3JlOjpGbG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11
bUNvbnRlbnRPZmZzZXQpKTsKIH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9z
aXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihX
ZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNj
cm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9y
aWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1h
dGVkCiB7Ci0gICAgaWYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFt
aWNWaWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2Rl
OjpOb3RSZXNpemluZykKKyAgICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNr
aXBwZWQuCisgICAgaWYgKCFhbmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3Np
dGlvbiB8fCBfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3
cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2Vi
Q29yZTo6RmxvYXRQb2ludCBjb250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Ny
b2xsT3JpZ2luKSk7CkBAIC0yMzU3LDEzICsyMzYzLDIxIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9h
dFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50
T2ZmCiAKICAgICBbX3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9u
c107CiAKLSAgICBpZiAoIUNHUG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xs
Vmlld0Nvb3JkaW5hdGVzLCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBb
X3Njcm9sbFZpZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29v
cmRpbmF0ZXNdOworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWws
IGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5n
ZS4KKyAgICAvLyBXZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVs
IGhlcmUuCisgICAgaWYgKCFwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRP
ZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRd
LCBfcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRD
b250ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRl
ZDphbmltYXRlZF07CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdl
ZCBhbnl0aGluZywgdGhlcmUgd291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBk
YXRlIHNlbnQgdG8gdGhlIGNvbnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxk
IGtlZXAgdGhlIGludmFsaWQgY29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgog
ICAgICAgICAvLyBUbyBzeW5jaHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24g
c2NyZWVuLCB3ZSBzZW5kIHRoZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9w
YWdlLT5yZXNlbmRMYXN0VmlzaWJsZUNvbnRlbnRSZWN0cygpOworICAgICAgICAvLyBJZiBfc2Ny
b2xsVmlldyB3b24ndCBjaGFuZ2UsIHdlIHN0aWxsIG5lZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nl
c3MgdGhhdCB0aGUgYW5pbWF0aW9uIHN0b3BwZWQuCisgICAgICAgIGlmIChhbmltYXRlZCkgewor
ICAgICAgICAgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29y
ZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgICAgICAg
ICBpZiAoY29vcmRpbmF0b3IpCisgICAgICAgICAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGlu
Z1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7
CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTI4NzksNiArMjg5MywxMCBAQCBzdGF0aWMgV2Vi
Q29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9p
bnQgY29udGVudE9mZgogLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9u
OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiB7CiAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9s
bGluZ107CisKKyAgICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNv
b3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICBpZiAo
Y29vcmRpbmF0b3IpCisgICAgICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJ
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOwogfQogCiAtICh2b2lk
KV9zY3JvbGxWaWV3RGlkSW50ZXJydXB0RGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3Jv
bGxWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdJbnRlcm5hbC5oCmluZGV4IDQzNTA4MGYzMjQuLjVjYjVmNTgxNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5o
CkBAIC05Nyw3ICs5Nyw3IEBAIHN0cnVjdCBQcmludEluZm87CiAKIC0gKFJlZlB0cjxXZWJLaXQ6
OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3Q7CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29u
dGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNj
cm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luOworLSAodm9pZClfc2Ny
b2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9z
aXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0
ZWQ6KEJPT0wpYW5pbWF0ZWQ7CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0
UmVjdCl0YXJnZXRSZWN0IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11
bVNjcm9sbERpc3RhbmNlOihmbG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFuY2U7CiAtIChkb3VibGUp
X2luaXRpYWxTY2FsZUZhY3RvcjsKIC0gKGRvdWJsZSlfY29udGVudFpvb21TY2FsZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlODQ4MjRmZDg1Li5kNTdkN2Q2NTMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDEwIEBAIHB1
YmxpYzoKICAgICAvLyBUZWxsIHRoZSB2aWV3IHRvIHNjcm9sbCB0byB0aGUgZ2l2ZW4gcG9zaXRp
b24sIGFuZCB3aGV0aGVyIHRoaXMgd2FzIGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4KICAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgPSAwOwogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbFdp
dGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIHsgfQorI2VuZGlmCisKICAgICAv
LyBSZXR1cm4gdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIChub3QgbmVjZXNzYXJpbHkgdGhl
IHNhbWUgYXMgdGhlIFdlYkNvcmUgc2Nyb2xsIHBvc2l0aW9uLCBiZWNhdXNlIG9mIHNjYWxpbmcs
IGluc2V0cyBldGMuKQogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xs
UG9zaXRpb24oKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW0KaW5kZXggMzgwZjEyNDQ0My4uMGE0MmY5NDQ5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KQEAgLTIyNCw4ICsyMjQsMTQg
QEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUo
Y29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKIAogICAgIC8vIEhhbmRsZSByZXF1ZXN0ZWQgc2Ny
b2xsIHBvc2l0aW9uIHVwZGF0ZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUgdHJhbnNhY3Rpb24g
YWZ0ZXIgZGlkQ29tbWl0TGF5ZXJUcmVlKCkKICAgICAvLyBoYXMgdXBkYXRlZCB0aGUgdmlldyBz
aXplIGJhc2VkIG9uIHRoZSBjb250ZW50IHNpemUuCi0gICAgaWYgKHJlcXVlc3RlZFNjcm9sbElu
Zm8ucmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSkKLSAgICAgICAgbV93ZWJQYWdlUHJveHku
cmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
LCBsYXllclRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKSk7CisgICAgaWYgKHJlcXVlc3Rl
ZFNjcm9sbEluZm8ucmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSkgeworICAgICAgICBtX3dl
YlBhZ2VQcm94eS5yZXF1ZXN0U2Nyb2xsKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24KKyAgICAgICAgICAgICwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3Jp
Z2luKCkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICAgICAgLCByZXF1ZXN0ZWRT
Y3JvbGxJbmZvLnJlcXVlc3RXaXRoQW5pbWF0aW9uCisjZW5kaWYKKyAgICAgICAgICAgICk7Cisg
ICAgfQogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAKICAgICBpZiAobV9kZWJ1
Z0luZGljYXRvckxheWVyVHJlZUhvc3QpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA0ODIzZjc2YTk3Li5kM2M5ZmMyNzU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0y
MDgsNyArMjA4LDExIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y3Vy
cmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6CiB9CiAKIC8vIFRoaXMgY29t
ZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUuCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3Zv
aWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRT
Y3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBu
ZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdw
b3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCisjZWxzZQog
dm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURp
ZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQm
IG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmll
d3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbikKKyNlbmRpZgogewogICAgIC8vIFNjcm9sbCB1cGRhdGVzIGZvciB0aGUg
bWFpbiBmcmFtZSBhcmUgc2VudCB2aWEgV2ViUGFnZVByb3h5Ojp1cGRhdGVWaXNpYmxlQ29udGVu
dFJlY3RzKCkKICAgICAvLyBzbyBkb24ndCBzZW5kIHRoZW0gaGVyZS4KQEAgLTIyMiwyMSArMjI2
LDQ1IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlECiAgICAgbV93ZWJQYWdlUHJveHkuc2Nyb2xs
aW5nTm9kZVNjcm9sbFZpZXdEaWRTY3JvbGwoKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGlj
U2Nyb2xsKCkgJiYgIWluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKQorICAgICAgICByZXR1
cm47CisjZWxzZQogICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0
aWNTY3JvbGwoKSkKICAgICAgICAgcmV0dXJuOworI2VuZGlmCiAKICAgICBtX3dlYlBhZ2VQcm94
eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6U2Nyb2xsUG9zaXRp
b25DaGFuZ2VkRm9yTm9kZShzY3JvbGxlZE5vZGVJRCwgbmV3U2Nyb2xsUG9zaXRpb24sIHNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPT0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6
U3luYykpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3Jv
bGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFuaW1hdGlv
bikKKyNlbHNlCiB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGlu
Z1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBj
b25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsKQorI2VuZGlmCiB7CiAgICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RTY3Jv
bGxpbmdOb2RlSUQoKSAmJiBtX3JlcXVlc3RlZFNjcm9sbEluZm8pIHsKICAgICAgICAgbV9yZXF1
ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlID0gdHJ1ZTsKICAg
ICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3JvbGwg
PSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdFdpdGhBbmltYXRpb24gPSB3
aXRoQW5pbWF0aW9uOworI2VuZGlmCiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKICAgICB9CiB9CiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShX
ZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdl
ZEZvck5vZGUoc2Nyb2xsZWROb2RlSUQsIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOwor
fQorCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVS
b290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0No
YW5nZWRGb3JOb2RlKHJvb3RTY3JvbGxpbmdOb2RlSUQoKSwgaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKSk7Cit9CisjZW5kaWYKKwogU3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHk6OnNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9sbGlu
Z1RyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaApp
bmRleCAxYTc2OTQzZjI0Li4yMzU1MDdjMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAgLTU1LDkgKzU1LDE3IEBAIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYpOwog
ICAgIHZpcnR1YWwgflJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVSb290
Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyk7CisgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJvY2VzcyB0aGF0IHRo
ZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNjcm9sbGluZyB0cmVl
KQorICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29u
c3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBX
ZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBib29sIGluc3RhbnRTY3JvbGxE
aWRTdG9wQW5pbWF0aW9uID0gZmFsc2UpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGws
IGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKKyNlbHNlCiAgICAgLy8gSW5mb3JtIHRoZSB3
ZWIgcHJvY2VzcyB0aGF0IHRoZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20g
dGhlIHNjcm9sbGluZyB0cmVlKQogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwo
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdT
Y3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91
dFZpZXdwb3J0T3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsK
ICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9v
bCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyNlbmRpZgogCiAgICAgV2ViQ29yZTo6
VHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbVN0cmluZyYg
ZXZlbnROYW1lLCBXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CiAKQEAgLTgwLDYgKzg4LDkgQEAg
cHVibGljOgogICAgIHN0cnVjdCBSZXF1ZXN0ZWRTY3JvbGxJbmZvIHsKICAgICAgICAgYm9vbCBy
ZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlIHsgfTsKICAgICAgICAgYm9vbCByZXF1ZXN0SXNQ
cm9ncmFtbWF0aWNTY3JvbGwgeyB9OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAg
IGJvb2wgcmVxdWVzdFdpdGhBbmltYXRpb24geyB9OworI2VuZGlmCiAgICAgICAgIFdlYkNvcmU6
OkZsb2F0UG9pbnQgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgfTsKICAgICB2b2lkIGNv
bW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRy
YW5zYWN0aW9uJiwgUmVxdWVzdGVkU2Nyb2xsSW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1Ry
ZWUuY3BwCmluZGV4IGFmYWJiYzFlYWUuLjU2NDU4OTNkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHAKQEAgLTEwNCwxMyArMTA0LDI0IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUm
CiAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpKQogICAg
ICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbiA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGU+KG5vZGUpLmxheW91dFZpZXdwb3J0KCkubG9jYXRpb24oKTsKIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUuY3VycmVu
dFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uLCBub2RlLm5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSAmJiAh
bm9kZS5yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbigpKTsKKyNlbHNlCiAgICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xs
aW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0
T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyNlbmRpZgogfQogCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5n
VHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xs
LCBib29sIHdpdGhBbmltYXRpb24pCit7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5
LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwg
cmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgd2l0aEFuaW1hdGlvbik7Cit9CisjZWxzZQog
dm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xs
KFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiB7CiAgICAgbV9zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBz
Y3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiB9CisjZW5kaWYK
IAogUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3Jv
bGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCkKIHsKQEAgLTE0Myw2ICsxNTQsMTMgQEAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBS
ZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2QK
ICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQp
OwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uo
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpCit7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1Ry
ZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGVJRCwgaXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTsKK30KKyNlbmRpZgorCiB2b2lkIFJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCBu
b2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKQogewogICAgIG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5n
ZShub2RlSUQsIGhvcml6b250YWwsIHZlcnRpY2FsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5o
CmluZGV4IDIzYmFjMDZhM2IuLjRiZDU2MGRkODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
aApAQCAtNTIsNyArNTIsMTIgQEAgcHVibGljOgogICAgIGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkmIHNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKSBjb25zdCB7IHJldHVy
biBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7IH0KIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBXZWJD
b3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gV2ViQ29yZTo6U2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
Ym9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBm
YWxzZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKSBvdmVycmlkZTsKKyNlbHNlCiAgICAgdm9pZCBzY3Jv
bGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCkgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIHZvaWQgY3VycmVudFNu
YXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25l
ZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgK
aW5kZXggZTYzN2Q2MTUzMi4uMDBiNGRiY2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKQEAgLTU3LDYgKzU3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7CiAgICAgdm9pZCBz
Y3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsVmll
d0RpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPZmZzZXQsIGJvb2wg
aW5Vc2VySW50ZXJhY3Rpb24pOworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0Fu
aW1hdGlvbigpOwogCiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1
bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7CiAgICAgQ0FMYXll
ciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdldCgpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVJT1MubW0KaW5kZXggZTc2ODk4Mzc1OC4uN2E2ZTY0YWI3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5t
bQpAQCAtMTUyLDYgKzE1MiwxMSBAQAogICAgIH0KIH0KIAorLSAodm9pZClzY3JvbGxWaWV3RGlk
RW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAg
X3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmlt
YXRpb24oKTsKK30KKwogI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0gKENHUG9pbnQpX3Nj
cm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZz
ZXQ6KENHUG9pbnQpb2Zmc2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0
UG9pbnQ6KENHUG9pbnQpc3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZp
ZXcgaG9yaXpvbnRhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5
Oihpbm91dCBkb3VibGUgKil2dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAgdm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4o
Y29uc3QgU2Nyb2wKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24p
KSB7CiAgICAgICAgIGF1dG8gc2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSA/IFNjcm9sbFR5
cGU6OlByb2dyYW1tYXRpYyA6IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAgIHNjcm9sbGluZ05v
ZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24o
KSwgc2Nyb2xsVHlwZSk7CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdOb2Rl
KCkuc2V0UmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24odHJ1ZSk7CisgICAgICAgIC8vIElmIHRo
ZSBzY3JvbGwgcG9zaXRpb25zIGFyZSBub3QgdGhlIHNhbWUsIHRoZXJlJ3MgYSBwb3NzaWJpbGl0
eSB0aGF0IHRoZSBzY3JvbGwgb2Zmc2V0IGZyb20gdGhlIFdlYiBwcm9jZXNzIGhhcyBiZWVuIG92
ZXJyaWRkZW4uCisgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIHNjcm9sbCBwb3NpdGlvbiBu
ZWVkIHRvIGJlIHNlbnQgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBib29sIHNob3VsZFN5
bmNTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxQb3NpdGlvbigpICE9
IHNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgc2Nyb2xs
aW5nTm9kZSgpLnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbigpLCBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywg
c2hvdWxkU3luY1Njcm9sbFBvc2l0aW9uKTsKICAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpCiB7
Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW3Njcm9sbFZpZXcoKSBzZXRD
b250ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOwotICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBib29sIGFuaW1hdGlvbkluUHJvZ3Jlc3Mg
PSBzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpOworICAgIGJvb2wg
bmVlZFRvU3RvcEFuaW1hdGlvbiA9IHNjcm9sbGluZ05vZGUoKS5uZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uKCk7CisgICAgaWYgKG5lZWRUb1N0b3BBbmltYXRpb24gJiYgYW5pbWF0aW9u
SW5Qcm9ncmVzcykgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAg
ICAgW3Njcm9sbFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbFZpZXcoKS5jb250ZW50T2Zm
c2V0IGFuaW1hdGVkOk5PXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAg
IH0KKworICAgIGlmIChzY3JvbGxpbmdOb2RlKCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24o
KSkgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9s
bFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zm
c2V0KCkgYW5pbWF0ZWQ6WUVTXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwor
CisgICAgICAgIHNjcm9sbGluZ05vZGUoKS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKHRy
dWUpOworICAgIH0gZWxzZSBpZiAoIWFuaW1hdGlvbkluUHJvZ3Jlc3MgfHwgbmVlZFRvU3RvcEFu
aW1hdGlvbikgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAg
W3Njcm9sbFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Ny
b2xsT2Zmc2V0KCldOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgfQog
fQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFdp
bGxTdGFydCgpIGNvbnN0CkBAIC0zMzUsNiArMzYxLDE1IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBGbG9hdFBv
aW50CiAgICAgc2Nyb2xsaW5nTm9kZSgpLndhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmco
c2Nyb2xsUG9zaXRpb24sIHsgfSwgaW5Vc2VySW50ZXJhY3Rpb24gPyBTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uOjpTeW5jIDogU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsK
IH0KIAordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxW
aWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uKCkKK3sKKyAgICBhdXRvJiBub2RlID0gc2Nyb2xs
aW5nTm9kZSgpOworICAgIGlmICghKG5vZGUucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oKSAm
JiBub2RlLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAgICAgc2Nyb2xsaW5n
VHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hh
bmdlKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgbm9kZS5zZXRTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRD
aGFuZ2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0CiB7CiAg
ICAgaWYgKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggZGIyY2UwNzljYS4uOTgxNDUyZDc4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzY3LDEwICsxNzY3LDIwIEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFJlZ2lvbiYgcmVnaW9u
KQogICAgIHBhZ2VDbGllbnQoKS5zZXRWaWV3TmVlZHNEaXNwbGF5KHJlZ2lvbik7CiB9CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwo
Y29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxP
cmlnaW4sIGNvbnN0IGJvb2wgd2l0aEFuaW1hdGlvbikKK3sKKyAgICBpZiAod2l0aEFuaW1hdGlv
bikKKyAgICAgICAgcGFnZUNsaWVudCgpLnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKHNjcm9s
bFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGVsc2UKKyAgICAgICAgcGFnZUNsaWVudCgp
LnJlcXVlc3RTY3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7Cit9CisjZWxzZQog
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCiB7CiAgICAgcGFnZUNsaWVu
dCgpLnJlcXVlc3RTY3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CiB9CisjZW5k
aWYKIAogV2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQb3NpdGlv
bigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFl
Mzg1MjIyMWQuLjYwNDc0OTc5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC02MTMsNyArNjEzLDExIEBAIHB1YmxpYzoKICAgICBQYWdlQ2xpZW50JiBwYWdlQ2xp
ZW50KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29y
ZTo6UmVnaW9uJik7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHJlcXVlc3RT
Y3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4sIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNl
KTsKKyNlbHNlCiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2lu
KTsKKyNlbmRpZgogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0
aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmgKaW5kZXggZDZjOGMzOGQ0YS4uNTE5OGVmNDQyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTU3LDYgKzU3LDcg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRl
RHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNl
dFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2lu
KSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigp
IG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAg
ICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGRjOWY3NGM0OWEuLjJj
MzBjNGJjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW0KQEAgLTk1LDcgKzk1LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZp
ZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVx
dWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9p
bnQmIHNjcm9sbE9yaWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3Jv
bGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luXTsKKyAg
ICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlv
biBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5PXTsKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit7CisgICAgW21f
d2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Ny
b2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwogfQogCiBXZWJDb3JlOjpGbG9h
dFBvaW50IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA4ZTY0OTM1
NTQ1Li4zZDM0NWQ3NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQ
b3NpdGlvbik7CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2Rl
KFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQg
dmVydGljYWwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQs
IGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgorCiAgICAgV2ViUGFn
ZSogbV93ZWJQYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4IDJjMDk4YTEwOTcu
LjUzN2ZkMzRkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDkgQEAKIG1l
c3NhZ2VzIC0+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAgICBTY3JvbGxQb3NpdGlv
bkNoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3Jv
bGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgQ3VycmVudFNuYXBQb2lu
dEluZGljZXNDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIHVuc2lnbmVkIGhvcml6b250
YWwsIHVuc2lnbmVkIHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIGJv
b2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQppbmRleCA4MzU0NDFkMzE5Li42ODlkNTU2MjZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
Lm1tCkBAIC0xMDQsNiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoU2Nyb2xsaW5nCiAgICAgc2V0
QWN0aXZlU2Nyb2xsU25hcEluZGljZXMobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CiB9
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNj
cm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQor
eworICAgIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9kZUlELCBpc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCBiOWRhZTJjZTEwLi5iY2Y1ZWI4YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hl
bkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3Ig
cGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAg
IEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIHJ1
biB0aW1lIGZsYWcgZm9yIENTU09NVmlld1Ntb290aFNjcm9sbGluZy4KKworICAgICAgICAqIFdl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEhhbmRsZSBDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmcgYnkuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAg
ICAgKFtXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IERpc2FibGUgQ1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nIGJ5IGRlZmF1bHQuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIENTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWRdKTogR2V0dGVyLgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOl0pOiBTZXR0ZXIuCisgICAg
ICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToK
KwogMjAxOS0xMi0wOSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW5hbWUgbWVkaWEgaW4gdGhlIEdQVSBwcm9jZXNzIHByZWZlcmVuY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCmluZGV4IDQ0MWI1YTg3NzYuLmM2NzlmYmQ2ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaApAQCAtMTg4LDYgKzE4OCw3IEBACiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9h
ZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKICNk
ZWZpbmUgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktp
dFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkIgorI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQiCiAjZGVm
aW5lIFdlYktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktp
dE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRSZW1vdGVQbGF5YmFj
a0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UmVtb3RlUGxheWJhY2tFbmFibGVkIgogI2Rl
ZmluZSBXZWJLaXRTdWJ0bGVDcnlwdG9FbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFN1YnRs
ZUNyeXB0b0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbQppbmRleCA0N2Y3Yzc1ZGRhLi5jZDIzNjc0NGRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY2
Myw2ICs2NjMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgICAgICBAWUVTLCBXZWJLaXRDU1NP
TVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgQE5PLCBXZWJL
aXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAg
QFlFUywgV2ViS2l0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmtLZXksCiAgICAg
ICAgIEBOTywgV2ViS2l0QWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVu
dGlhbHNLZXksCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTMxODEsNiArMzE4MiwxNiBA
QCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3Nl
dEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
UHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdENTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBf
c2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAoQk9PTCl3ZWJBbmltYXRpb25zRW5hYmxlZAog
ewogICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdFdlYkFuaW1hdGlvbnNF
bmFibGVkUHJlZmVyZW5jZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA1OTc1OGUyMzM1Li4wOTEx
OTMxZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTYzMiw2ICs2MzIsNyBAQCBleHRlcm4gTlNTdHJp
bmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBX
RUJLSVRfREVQUgogCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQ
SUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTY3JvbGxpbmdB
UElFbmFibGVkOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGxhcmdlSW1hZ2VBc3lu
Y0RlY29kaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFuaW1hdGVkSW1h
Z2VBc3luY0RlY29kaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFT
Y3JpcHRNYXJrdXBFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCmluZGV4IDQ3YWFlMzI4ZGIuLjY2NzAzNTllMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI5OTIsNiArMjk5Miw3IEBAIHN0YXRpYyBi
b29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy5zZXRW
aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5h
YmxlZF0pOwogICAgIHNldHRpbmdzLnNldFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQo
W3ByZWZlcmVuY2VzIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWRdKTsKICAgICBzZXR0
aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkXSk7CisgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZF0pOwogICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydF0pOwogCiAgICAgc3dpdGNoIChbcHJlZmVyZW5jZXMgc3RvcmFnZUJsb2NraW5nUG9s
aWN5XSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDQyMDE0ZDk5ZDUuLmU3Y2E2
ZjcyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAx
OS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZy
w6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJp
dmF0ZS5pZGw6IEhhbmRsZSBzbW9vdGggc2Nyb2xsaW5nIG9wdGlvbi4KKyAgICAgICAgKiBXZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogRGl0dG8uCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMu
Y3BwOiBEaXR0by4KKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNl
dHRpbmdzKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5oOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVm
ZXJlbmNlc0NoYW5nZWQpOgorCiAyMDE5LTEyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUGFnZUNvbmZpZ3VyYXRpb246OmRyYWdDbGllbnQgc2hvdWxkIHVz
ZSBhIHNtYXJ0IHBvaW50ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0lu
dGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IGE3MTc2MjIy
MWIuLmNjZmY5ZjA1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVy
ZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjIzLDYgKzIy
Myw4IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNl
c1ByaXZhdGU1CiAgICAgSFJFU1VMVCBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW2luXSBC
T09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChb
b3V0LCByZXR2YWxdIEJPT0wqKTsKICAgICBIUkVTVUxUIHNldENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOworICAgIEhSRVNVTFQgQ1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldENT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhS
RVNVTFQgZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCogZW5hYmxl
ZCk7CiAgICAgSFJFU1VMVCBzZXRGZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW2luXSBCT09MIGVu
YWJsZWQpOwogICAgIEhSRVNVTFQgc3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKFtvdXQsIHJldHZh
bF0gQk9PTCAqZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDA5OTM3NDIwZTQuLjA4YzQ1NjcyN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CkBAIC0yMDksNiArMjA5LDcgQEAKICNkZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgIldlYktpdFNlcnZlclRpbWluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmll
d1Njcm9sbGluZ0FQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkIgogCiAjZGVmaW5lIFdlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VL
ZXkgIldlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDk1ZWJlYTI2OGMuLmM4ZTIyNWFhNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTMzOSw2ICszMzks
OCBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAog
ICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRSZXNpemVPYnNl
cnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGlj
dGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3Jv
bGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRp
Y3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0Q29yZU1hdGhNTEVuYWJsZWRQ
cmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZh
bHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZFByZWZl
cmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwpAQCAtMjI4Myw2ICsyMjg1LDIwIEBAIEhSRVNV
TFQgV2ViUHJlZmVyZW5jZXM6OnNldENvcmVNYXRoTUxFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAg
ICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5h
YmxlZCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1
ZUZvcktleShXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtl
eSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldENT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJv
b2xWYWx1ZShXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtl
eSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5j
ZXM6OnJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAg
ICAgaWYgKCFlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgK
aW5kZXggMWRhYWE3MzAyNS4uNjA2NmU0NjQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlcy5oCkBAIC0yNzEsNiArMjcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9P
TCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOworICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkKF9PdXRfIEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKF9PdXRf
IEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RmV0Y2hB
UElLZWVwQWxpdmVFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBzcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBhMDQ0OGJiMDEzLi5kMmIyMmYwNDc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtNTMxOCw2ICs1MzE4LDExIEBAIEhSRVNVTFQg
V2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlm
aWNhdGlvbikKICAgICAgICAgcmV0dXJuIGhyOwogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Nj
cm9sbGluZ0FQSUVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5D
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVE
KGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNldENTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZmVyZW5jZXMtPnBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAg
ICAgICByZXR1cm4gaHI7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggMDBkYWJlNzNmNC4uZTlhMTI4YjAyNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTEw
ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3Vw
cG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZy
w6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJp
YyBXYW5nLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwOgorICAg
ICAgICAoVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKTogUGFyc2UgQ1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOiBB
ZGQgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCwgZGlzYWJsZWQgYnkgZGVmYXVsdC4K
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAg
IChzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKTogU2V0IENTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQgZnJvbSB0aGUgdGVzdCBvcHRpb25zLgorCiAyMDE5LTEyLTEwICBQZXIg
QXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggQVBJIHRlc3Qg
ZmFpbHVyZSBhZnRlciByMjUzMzUxCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKaW5k
ZXggN2M5YWU1OTk0YS4uMjM3Yzk4ODc4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcApAQCAtMTQyLDYgKzE0Miw4IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBz
dGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAg
ICAgICBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZh
bHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVzaXpl
T2JzZXJ2ZXJFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZVJlc2l6ZU9ic2VydmVyID0gcGFy
c2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09
ICJleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIpCisgICAgICAg
ICAgICBlbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcgPSBwYXJzZUJvb2xlYW5UZXN0SGVh
ZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpD
b3JlTWF0aE1MRW5hYmxlZCIpCiAgICAgICAgICAgICBlbmFibGVDb3JlTWF0aE1MID0gcGFyc2VC
b29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJl
eHBlcmltZW50YWw6UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQiKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmgKaW5kZXggZTUzMzVlODMxMS4uZjdlOGQyOTExZCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0T3B0aW9ucy5oCkBAIC01MCw2ICs1MCw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAg
ICAgYm9vbCBlbmFibGVDU1NMb2dpY2FsIHsgZmFsc2UgfTsKICAgICBib29sIGFkQ2xpY2tBdHRy
aWJ1dGlvbkVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlUmVzaXplT2JzZXJ2ZXIg
eyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nIHsgZmFs
c2UgfTsKICAgICBib29sIGVuYWJsZUNvcmVNYXRoTUwgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5h
YmxlUmVxdWVzdElkbGVDYWxsYmFjayB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVBc3luY0Ns
aXBib2FyZEFQSSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0KaW5kZXggY2NmZmUwNTVkMy4uNjdjYWVhNzE4ZCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTAyOSw2ICsxMDI5LDcgQEAgc3RhdGlj
IHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYg
b3B0aW9ucykKICAgICBwcmVmZXJlbmNlcy5DU1NMb2dpY2FsRW5hYmxlZCA9IG9wdGlvbnMuZW5h
YmxlQ1NTTG9naWNhbDsKICAgICBwcmVmZXJlbmNlcy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVk
ID0gb3B0aW9ucy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkOwogICAgIHByZWZlcmVuY2VzLnJl
c2l6ZU9ic2VydmVyRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlUmVzaXplT2JzZXJ2ZXI7CisgICAg
cHJlZmVyZW5jZXMuQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCA9IG9wdGlvbnMuZW5h
YmxlQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nOwogICAgIHByZWZlcmVuY2VzLmNvcmVNYXRoTUxF
bmFibGVkID0gb3B0aW9ucy5lbmFibGVDb3JlTWF0aE1MOwogICAgIHByZWZlcmVuY2VzLnJlcXVl
c3RJZGxlQ2FsbGJhY2tFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNr
OwogICAgIHByZWZlcmVuY2VzLmFzeW5jQ2xpcGJvYXJkQVBJRW5hYmxlZCA9IG9wdGlvbnMuZW5h
YmxlQXN5bmNDbGlwYm9hcmRBUEk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385362</attachid>
            <date>2019-12-11 00:46:38 -0800</date>
            <delta_ts>2019-12-11 03:35:07 -0800</delta_ts>
            <desc>native-animation-for-review</desc>
            <filename>upload_10.diff</filename>
            <type>text/plain</type>
            <size>153300</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MmMyMWFjMDgxLi43NTQzNzBiOGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2lu
ZyBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQu
IEluIG9yZGVyIHRvIHRlc3QgcHJvcGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9y
IHRlc3QgdG8gZmFzdC9zY3JvbGxpbmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2
ZVNjcm9sbGluZyk6CisgICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9s
bE5vZGUpOgorICAgICAgICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0
bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKIDIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0
aGUgV2ViIHByb2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uMGEwOTY4ZTAyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzCkBAIC0w
LDAgKzEsODcgQEAKK2Z1bmN0aW9uIG9ic2VydmVTY3JvbGxpbmcoZWxlbWVudHMsIGNhbGxiYWNr
KSB7CisgIGlmICghQXJyYXkuaXNBcnJheShlbGVtZW50cykpCisgICAgICBlbGVtZW50cyA9IFtl
bGVtZW50c107CisgIHZhciBsYXN0Q2hhbmdlZEZyYW1lID0gMDsKKyAgdmFyIGxhc3RMZWZ0ID0g
bmV3IE1hcCgpOworICB2YXIgbGFzdFRvcCA9IG5ldyBNYXAoKTsKKyAgZWxlbWVudHMuZm9yRWFj
aCgoZWxlbWVudCkgPT4geworICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9s
bExlZnQpOworICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsVG9wKTsKKyAg
fSk7CisgIGZ1bmN0aW9uIHRpY2soZnJhbWVzKSB7CisgICAgLy8gV2UgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lIGVpdGhlciBmb3IgNTAwIGZyYW1lcyBvciB1bnRpbCAyMCBmcmFtZXMgd2l0aAorICAg
IC8vIG5vIGNoYW5nZSBoYXZlIGJlZW4gb2JzZXJ2ZWQuCisgICAgaWYgKGZyYW1lcyA+PSA1MDAg
fHwgZnJhbWVzIC0gbGFzdENoYW5nZWRGcmFtZSA+IDIwKSB7CisgICAgICBjYWxsYmFjayh0cnVl
KTsKKyAgICB9IGVsc2UgeworICAgICAgdmFyIHNjcm9sbEhhcHBlbmVkID0gZWxlbWVudHMuc29t
ZSgoZWxlbWVudCkgPT4geworICAgICAgICByZXR1cm4gZWxlbWVudC5zY3JvbGxMZWZ0ICE9IGxh
c3RMZWZ0LmdldChlbGVtZW50KSB8fCBlbGVtZW50LnNjcm9sbFRvcCAhPSBsYXN0VG9wLmdldChl
bGVtZW50KTsKKyAgICAgIH0pOworICAgICAgaWYgKHNjcm9sbEhhcHBlbmVkKSB7CisgICAgICAg
IGxhc3RDaGFuZ2VkRnJhbWUgPSBmcmFtZXM7CisgICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVs
ZW1lbnQpID0+IHsKKyAgICAgICAgICBsYXN0TGVmdC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3Jv
bGxMZWZ0KTsKKyAgICAgICAgICBsYXN0VG9wLnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbFRv
cCk7CisgICAgICAgIH0pOworICAgICAgICBjYWxsYmFjayhmYWxzZSk7CisgICAgICB9CisgICAg
ICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljay5iaW5kKG51bGwsIGZyYW1lcyArIDEpKTsKKyAg
ICB9CisgIH0KKyAgdGljaygwKTsKK30KKworZnVuY3Rpb24gd2FpdEZvclNjcm9sbEVuZChlbGVt
ZW50cykgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICBvYnNlcnZl
U2Nyb2xsaW5nKGVsZW1lbnRzLCAoZG9uZSkgPT4geworICAgICAgaWYgKGRvbmUpCisgICAgICAg
IHJlc29sdmUoKTsKKyAgICB9KTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0U2Nyb2xsKHNj
cm9sbGluZ0VsZW1lbnQpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhl
IGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsKKyAg
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwgYmVoYXZpb3I6ICJpbnN0
YW50In0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhlIGVsZW1lbnQgcG9z
aXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOworICBzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rp
b24gc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgY2xhc3NOYW1lKSB7CisgIHN0eWxl
ZEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYXV0b0JlaGF2aW9yIiwgInNtb290aEJlaGF2aW9y
Iik7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpOworfQorCitmdW5j
dGlvbiBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlv
ciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdz
ID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7Cisg
IHN3aXRjaCAoc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBjYXNlICJzY3JvbGxJbnRvVmlldyI6Cisg
ICAgICBhcmdzLmlubGluZSA9ICJzdGFydCI7CisgICAgICBhcmdzLmJsb2NrID0gInN0YXJ0IjsK
KyAgICAgIGVsZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyhhcmdzKTsKKyAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0Owor
ICAgICAgYXJncy50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3A7CisgICAgICBzY3JvbGxpbmdFbGVt
ZW50W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKKyAgICAgIGJyZWFrOworICB9Cit9CisKK2Z1bmN0
aW9uIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlv
ciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdz
ID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7Cisg
IGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7CisgIGFyZ3MudG9wID0gZWxlbWVudFRv
UmV2ZWFsVG9wOworICBzY3JvbGxpbmdXaW5kb3dbc2Nyb2xsRnVuY3Rpb25dKGFyZ3MpOworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44ZDRjYTY0MTU1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNz
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgSW5zdGFudCBzY3JvbGxpbmcg
b2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAorUEFTUyBTbW9vdGgg
c2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLjM1YzY1MDNhYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKQEAgLTAsMCAr
MSw1MiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBkZWZh
dWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMg
V2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwt
YmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xs
YWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdo
dDogMjAwcHg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlk
PSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6
IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVk
ZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9j
azsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50
VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAt
MTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3Nw
YW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgc2Nyb2xsaW5nRWxlbWVudCA9
IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBl
bGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIHZhciBzY3JvbGxGdW5jdGlvbiA9ICJzY3JvbGwi
OworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50IiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgIH0sICJJbnN0YW50IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdp
dGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJTbW9vdGgg
c2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciIpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41M2E5NjFlZjU2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACisKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhl
ciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQzOGRm
ZmRlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBF
IGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlv
ciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87Cisg
ICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgIH0KKyAgLmF1dG9CZWhhdmlv
ciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7
CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJs
b2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4K
KyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9
ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9z
cGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFj
a2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2
YXIgc2Nyb2xsaW5nRWxlbWVudCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIHN0eWxlZEVsZW1lbnQg
PSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIg
ZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNj
cm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsK
KyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGws
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
cmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9u
LCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOwor
CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1
dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNj
cm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAg
IH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgIH0pOworICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICB9KTsK
KworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVs
ZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xs
aW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45N2Nh
ZWEyN2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzcgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQzMjVi
NGI5ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEsMTY5IEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dT
Y3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMn
IGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUg
cm9vdCBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250
ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIg
aHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZp
b3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
b20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBt
YXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBh
dXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9v
dGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdl
Q29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+Cisg
IDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlz
cGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5k
OiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFz
eW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50LCBzdHlsZWRF
bGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5j
dGlvbigpIHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dDsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBh
Z2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJw
eCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVp
Z2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cu
aW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5p
bm5lckhlaWdodCkgKiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVu
dFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVs
ZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygo
KSA9PiB7IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOyB9KTsKKworICAgIFsic2Nyb2xs
IiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Ny
b2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5n
RWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZl
KCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsg
cmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0
aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7Cisg
ICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGws
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3Jv
bGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9s
bEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAg
ICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsK
KworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhC
ZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZv
clNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQg
LyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5z
dGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIp
OworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXdpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MC4uMzgyMzg1YWFiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjkgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290
aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBv
biB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uOTA1N2IwY2QxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApA
QCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRl
cm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVz
dGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIG9uIHRoZSB3
aW5kb3cgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCxtaW5pbXVtLXNjYWxlPTEsaW5pdGlhbC1zY2FsZT0xIj4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2
aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9y
IHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBhZ2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4KKyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxz
Y3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0gYXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAg
dmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBh
Z2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nV2luZG93
ID0gd2luZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7
CisgICAgcGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkg
KiA1ICsgInB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cu
aW5uZXJIZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCAr
IHdpbmRvdy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsg
d2luZG93LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQg
PSBlbGVtZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUu
dG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2Nh
bGxiYWNrKCgpID0+IHsgcmVzZXRTY3JvbGxGb3JXaW5kb3cod2luZG93KTsgfSk7CisKKyAgICBb
InNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9u
KSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZv
cldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
c2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVh
bFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkg
PT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVu
KCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVu
Y3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9s
bEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
Mik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5n
Iik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDAp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5n
IHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9s
bGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi40NDNhODIwZTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHNjcm9sbEludG9WaWV3IHdp
dGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
Y3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDViNWQ4ZDdjNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50
b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciB3aXRoIHNjcm9s
bEludG9WaWV3IGZvciBuZXN0ZWQgc2Nyb2xsaW5nIG5vZGVzPC90aXRsZT4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLD
qWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVm
LXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisg
IC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICBoZWlnaHQ6IDIwMHB4Owor
ICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
IH0KKyAgLmdyYWRpZW50IHsKKyAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVn
LCByZWQsIGdyZWVuKTsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxk
aXY+CisgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0
aDogNDUwcHgiPgorICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9v
dGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiA0MDBweCI+CisgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
PGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAzNTBweCI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMzAw
cHgiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJs
ZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiAyNTBweCI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAy
MDBweCI+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImVs
ZW1lbnRUb1JldmVhbCIgc3R5bGU9IndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICA8
L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAg
PGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgPC9kaXY+Cisg
ICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1
MDBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
Ly8gVGhlIENTU09NLVZpZXcgc3BlYyBhbmQgaW1wbGVtZW50YXRpb25zIGZvbGxvdyBkaWZmZXJl
bnQgYWxnb3JpdGhtcyAoc2Nyb2xscyBwZXJmb3JtZWQgaW4gcGFyYWxsZWwsIGFzIGlubmVyLXRv
LW91dGVyIHNlcXVlbmNlIG9yIGFzIG91dGVyLXRvLWlubmVyIHNlcXVlbmNlKS4KKyAgLy8gU2Vl
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMTI3CisgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgdmFyIGRpdnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
c2Nyb2xsYWJsZSIpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGFibGVEaXYpOworICAgICAgfSk7CisgICAgICBlbGVt
ZW50VG9SZXZlYWwuc2Nyb2xsSW50b1ZpZXcoe2lubGluZTogInN0YXJ0IiwgYmxvY2s6ICJzdGFy
dCIsIGJlaGF2aW9yOiAiYXV0byJ9KTsKKyAgICAgIHZhciBzY3JvbGxUb3AgPSBuZXcgTWFwKCk7
CisgICAgICB2YXIgaXNTbW9vdGggPSBuZXcgTWFwKCk7CisgICAgICBkaXZzLmZvckVhY2goKHNj
cm9sbGFibGVEaXYpID0+IHsKKyAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2LCBz
Y3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgIGlzU21vb3RoLnNldChzY3JvbGxhYmxl
RGl2LCBzY3JvbGxhYmxlRGl2LmNsYXNzTGlzdC5jb250YWlucygic21vb3RoQmVoYXZpb3IiKSk7
CisgICAgICAgIC8vIElmIHNjcm9sbCBvcGVyYXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIGluIHBh
cmFsbGVsLCBzY3JvbGwgYm94ZXMgd2l0aCBpbnN0YW50IGJlaGF2aW9yIG1pZ2h0IGFsc28gbmVl
ZCB0byB3YWl0IGZvciB0aGVpciBwcmVkZWNlc3NvcnMuCisgICAgICAgIGlmIChpc1Ntb290aC5n
ZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxUb3Au
Z2V0KHNjcm9sbGFibGVEaXYpLCA1MDAsICJFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNo
b3VsZCBub3Qgc2Nyb2xsIGltbWVkaWF0ZWx5Iik7CisgICAgICB9KTsKKworICAgICAgb2JzZXJ2
ZVNjcm9sbGluZyhBcnJheS5mcm9tKGRpdnMpLCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRy
eSB7CisgICAgICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKHNjcm9sbFRvcC5nZXQoc2Nyb2xsYWJsZURpdiks
IHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsK
KyAgICAgICAgICAgIGlmICghaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAg
ICAgICBhc3NlcnRfYW55KGFzc2VydF9lcXVhbHMsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCBb
MCwgNTAwXSwgIkVsZW1lbnQgd2l0aCBpbnN0YW50IGJlaGF2aW9yIHNob3VsZCBqdW1wIHRvIHRo
ZSBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsIDUwMCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2
LCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0gY2F0
Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9u
ZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgInNjcm9s
bEludG9WaWV3IHdpdGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhh
dmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44
NTVhNmE2MTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIwIEBACisKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3Ro
IHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BB
U1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9t
ICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRv
ICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4g
cGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5n
IHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxU
bygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9s
bGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20g
KDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNj
cm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGgg
c2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAK
K1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBm
cm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwg
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0
byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRp
b25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUw
MCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAs
IDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hl
biBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmcgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxp
bmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1w
b3NpdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wYTQx
YjhiMDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTAsMCArMSwxNTEgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsIHBvc2l0
aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yPC90aXRs
ZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3
aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92
ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAw
MHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywg
cmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3
aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1Jl
dmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4
OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4K
KyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIEZvciBzbW9vdGggYmVoYXZpb3IsIGV2
b2x1dGlvbiBvZiBzY3JvbGwgcG9zaXRpb25zIG92ZXIgdGltZSBpcyBub3Qgc3BlY2lmaWVkIGJ5
IENTU09NIFZpZXcuCisgIC8vIFRoaXMgdGVzdCByZWxpZXMgb24gdGhlIG1pbmltYWwgYXNzdW1w
dGlvbiB0aGF0IHNjcm9sbCBwb3NpdGlvbiBmdW5jdGlvbnMgYXJlIG1vbm90b25pYy4KKyAgWyJz
Y3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNo
KGZ1bmN0aW9uKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgW3tsZWZ0OjAsIHRvcDowfSwge2xlZnQ6
MTAwMCwgdG9wOjB9LCB7bGVmdDowLCB0b3A6NTAwfSwge2xlZnQ6MTAwMCwgdG9wOjUwMH1dLmZv
ckVhY2goKGluaXRpYWwpID0+IHsKKyAgICAgIHZhciBmaW5hbExlZnQgPSA1MDA7CisgICAgICB2
YXIgZmluYWxUb3AgPSAyNTA7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAg
c2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIGluaXRpYWwubGVm
dCwgaW5pdGlhbC50b3ApOworICAgICAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNj
cm9sbExlZnQ7CisgICAgICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCBpbml0aWFsLmxlZnQsICJTY3JvbGxM
ZWZ0IHNob3VsZCBiZSBhdCBpbml0aWFsIHBvc2l0aW9uIik7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhvbGRUb3AsIGluaXRpYWwudG9wLCAiU2Nyb2xsVG9wIHNob3VsZCBiZSBhdCBpbml0aWFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgaWYgKHNjcm9sbEZ1bmN0aW9uID09PSAic2Nyb2xsQnki
KQorICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAi
c21vb3RoIiwgZmluYWxMZWZ0IC0gaW5pdGlhbC5sZWZ0LCBmaW5hbFRvcCAtIGluaXRpYWwudG9w
KTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwg
c2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBmaW5hbExlZnQsIGZpbmFsVG9wKTsKKyAgICAgICAg
ICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Ny
b2xsTGVmdDsKKyAgICAgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxU
b3A7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoTWF0aC5oeXBvdChmaW5h
bExlZnQgLSBuZXdMZWZ0LCBmaW5hbFRvcCAtIG5ld1RvcCksIE1hdGguaHlwb3QoZmluYWxMZWZ0
IC0gb2xkTGVmdCwgZmluYWxUb3AgLSBvbGRUb3ApLCAiU2Nyb2xsIHBvc2l0aW9uIHNob3VsZCBt
b3ZlIHRvd2FyZHMgdGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIGlmIChkb25l
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCBmaW5hbExlZnQsICJT
Y3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3VG9wLCBmaW5hbFRvcCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2gg
ZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBvbGRMZWZ0
ID0gbmV3TGVmdDsKKyAgICAgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICAgICAg
fSBjYXRjaChlKSB7CisgICAgICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgICAgfSwgYFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoJHtpbml0aWFsLmxlZnR9LCAke2luaXRpYWwudG9w
fSkgdG8gKCR7ZmluYWxMZWZ0fSwgJHtmaW5hbFRvcH0pIHVzaW5nICR7c2Nyb2xsRnVuY3Rpb259
KCkgYCk7CisgICAgfSk7CisgIH0pOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRT
Y3JvbGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZh
bHNlOworICAgICAgdmFyIHNjcm9sbERpcmVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKKyAgICAgIHZh
ciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0g
b3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7
CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJm
bG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNj
cm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAg
IHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmIChpbml0
aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgaWYgKHNjcm9sbERpcmVjdGlvbkNoYW5n
ZWQpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRMZWZ0LCBu
ZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFz
c2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMg
ZGVjcmVhc2luZyIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgIHNjcm9sbERp
cmVjdGlvbkNoYW5nZWQgPSBuZXdMZWZ0IDw9IG9sZExlZnQgJiYgbmV3VG9wIDw9IG9sZFRvcDsK
KyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFs
KG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAg
ICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRv
cCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAm
JiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBz
Y3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIs
IDUwMCwgMjUwKTsKKyAgICAgICAgICAgICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bExlZnQ7CisgICAgICAgICAgICAgICAgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsK
KyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBy
ZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3As
IDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAg
ICB9CisgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3
VG9wOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7Cisg
ICAgfSk7CisgIH0sICJTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Ny
b2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICByZXNldFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxT
Y3JvbGxBYm9ydGVkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3Ro
IiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5j
dGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoIWluaXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAg
ICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9s
bExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFu
X2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAg
ICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAwICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAg
ICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFsIHNjcm9sbC4KKyAgICAgICAgICAgICAgICBp
bml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShv
dmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIDUwMCwgMjUwKTsKKyAgICAgICAgICAg
ICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAg
bmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0
aW9uIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9s
bFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9u
Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Nyb2xsVG9wIHNo
b3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9s
ZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBj
YXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChk
b25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFuIGlu
c3RhbnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAuLjI3OTlmZGNjMjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzcgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBz
Y3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BB
U1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45NmQxMWFiOTYyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1s
PjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0Pgor
PGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIgd2lkdGg9IjQw
MHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgorICA8c3R5bGU+
CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRvQmVoYXZpb3Ig
eworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21vb3RoQmVoYXZp
b3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8L3N0eWxlPgor
ICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsg
YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Jz4KKyAgICAg
IDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0
OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHlsZT0nZGlzcGxh
eTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWln
aHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2PgorICA8L2Jv
ZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFtZUxvYWRUZXN0
ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5nRWxlbWVudCwg
c3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVm
dCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkg
PT4geworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9k
ZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisg
ICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5m
b3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZl
KSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7
CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
YXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAg
ICAgfSk7CisgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Ny
b2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAs
IDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhl
bigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7CisgIH0pKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA1ZWIzMjcyZjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBAQAorCitQ
QVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2lu
ZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMzMzM2Q2NGY4
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzEgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVu
dC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIg
d2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgor
ICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRv
QmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21v
b3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8
L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6
IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7
Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHls
ZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2
PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFt
ZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5n
V2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBlbGVtZW50VG9S
ZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICBpZnJh
bWVOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5zdGVwX2Z1bmNf
ZG9uZSgoKSA9PiB7CisgICAgc2Nyb2xsaW5nV2luZG93ID0gaWZyYW1lTm9kZS5jb250ZW50V2lu
ZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9kZS5jb250ZW50RG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisgICAgWyJzY3JvbGwi
LCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4gewor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3co
c2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGlu
Z1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRv
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAp
OworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwg
Imluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChz
Y3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3co
c2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
YCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJz
Y3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7
CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxX
aW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsK
KworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MDI4M2ZkYTJjLi5iN2FhN2NkOTQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8
Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwg
YmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRm
b3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5
MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNl
ZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
c3VwcG9ydCBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0uIEl0IHJlbGll
cyBvbiBVSVNjcm9sbFZpZXcncworICAgICAgICBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBw
b3J0IGFuZCBpcyBleGVjdXRlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBUZXN0czog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1w
b3NpdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKworICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBi
eSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVk
IHNjcm9sbCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5p
bWF0aW9uIHN0YXR1cyBmcm9tIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOiBB
ZGQgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gdG8gaW5kaWNhdGUgaXQn
cyBhbmltYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOiBEaXR0
by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6cmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2UpOiBVcGRhdGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFk
ZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90
LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRT
dGF0ZUFmdGVyQ2hpbGRyZW4pOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIHRoZSBzY3JvbGwgaXMg
YW5pbWF0ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGU6OnNjcm9sbFRvKTogSWYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiBpcyB0cnVlLCBzZW5k
IHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLCBldmVuIGlmIHRoZSBzY3Jv
bGwgcG9zaXRpb24gZG9lc24ndCBjaGFuZ2UuCisgICAgICAgIE1haW50YWluIHRoZSBzdGF0dXMg
b2YgbV9zdG9wU2Nyb2xsQW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9u
LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRT
Y3JvbGxQb3NpdGlvbkNoYW5nZWQpOiBBbmltYXRlZCBzY3JvbGwgd29uJ3QgY2hhbmdlIHRoZSBz
Y3JvbGwgcG9zaXRpb24gaW1tZWRpYXRlbHksIHNvIGRvbid0IG5vdGlmeSB0aGUgc2Nyb2xsaW5n
IGluZm8gbm93LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OnNldFJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKTogbV9yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1h
dGlvbiBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0Lgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RTY3Jv
bGxXaXRoQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk6IE1haW50
YWluIHRoZSBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzIGNvbnN0KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0
TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbik6IElmIHRoZSBOb2RlIGlzIHBlcmZvcm1p
bmcgYSBzY3JvbGwgYW5pbWF0aW9uLCB0aGUgcHJldmlvdXMgc2Nyb2xsIGFuaW1hdGlvbiBzaG91
bGQgc3RvcCBmaXJzdC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oOiBBZGQgU2Nyb2xsQmVoYXZpb3JUeXBlIHRvIGlu
ZGljYXRlIGl0J3MgaW5zdGFudCBvciBzbW9vdGggc2Nyb2xsLgorICAgICAgICBBZGQgU2Nyb2xs
QmVoYXZpb3JTdGF0dXMgdG8gaW5kaWNhdGUgdGhlIHN0YXR1cyBvZiBzY3JvbGxpbmcuCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6IFVwZGF0ZSBTY3JvbGxCZWhhdmlvclR5cGUuCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OlNjcm9sbGFibGVBcmVhKTogQWRkIG1fY3VycmVudFNjcm9sbEJlaGF2aW9y
VHlwZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsYWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgY29uc3QpOiBN
YWludGFpbiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OnNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
c2Nyb2xsVG9PZmZzZXQpOiBTZW5kIGEgcXVlc3Qgb2YgbmF0aXZlIHNjcm9sbC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBSZXF1
ZXN0cyBhIG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uIGJ5IGNhbGxpbmcgYW5pbWF0ZWQgcmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKCkuCisKIDIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0
aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVo
YXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA2NTZhZTUzYzVmLi45MDQ4ZmQ0MWNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNjY4LDYgKzM2NjgsMTQgQEAgdm9pZCBGcmFtZVZp
ZXc6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNl
dCwgU2Nyb2xsVHkKICAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxU
eXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CiAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJl
bnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGgpOworICAgIGlm
IChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9m
ZnNldCkpKSB7CisgICAgICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlw
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIGlmIChpc05vbk5hdGl2
ZUFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxB
bmltYXRpb25zKCk7CiAgICAgaWYgKG9mZnNldCAhPSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5jcHAKaW5kZXggOWFhZGVjMDNlYS4uZDhmZGYzOWFjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5jcHAKQEAgLTI0OCw3ICsyNDgsMTQgQEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNj
cm8KIAogICAgIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRv
Y3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tG
b3J3YXJkQ2FjaGU7CiAgICAgYm9vbCBpblByb2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbGFibGVB
cmVhLmN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwotICAg
IGlmIChpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGUpCisKKyAgICBi
b29sIHVwZGF0ZVNjcm9sbFBvc2l0aW9uID0gaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5CYWNr
Rm9yd2FyZENhY2hlOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCBhbmltYXRl
ZCA9IHNjcm9sbGFibGVBcmVhLmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSA9PSBTY3JvbGxC
ZWhhdmlvclR5cGU6OlNtb290aDsKKyAgICAvLyBUaGUgc2Nyb2xsIHBvc2l0aW9uIG9mIGFuaW1h
dGVkIHNjcm9sbGluZyB3aWxsIGJlIHNldCBmcm9tIHRoZSB0aGUgVUkgcHJvY2Vzcy4gU28gaXQg
c2hvdWxkbid0IGJlIHNldCBub3cuCisgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSAhYW5pbWF0
ZWQgJiYgdXBkYXRlU2Nyb2xsUG9zaXRpb247CisjZW5kaWYKKyAgICBpZiAodXBkYXRlU2Nyb2xs
UG9zaXRpb24pCiAgICAgICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChz
Y3JvbGxpbmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCB7IH0sIFNjcm9sbFR5cGU6OlByb2dyYW1t
YXRpYywgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIAogICAgIC8vIElmIHRo
aXMgZnJhbWUgdmlldydzIGRvY3VtZW50IGlzIGJlaW5nIHB1dCBpbnRvIHRoZSBiYWNrL2Zvcndh
cmQgY2FjaGUsIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIG91cgpAQCAtMjYwLDExICsyNjcsMTYg
QEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25V
cGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIXN0YXRlTm9kZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhdXRvIHN0YXR1
cyA9IGFuaW1hdGVkID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluVUlOYXRpdmVBbmltYXRpb24g
OiBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb247CisgICAgc2Nyb2xsYWJsZUFy
ZWEuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoc3RhdHVzKTsKKyAgICBzdGF0ZU5vZGUtPnNldFJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9s
bCwgYW5pbWF0ZWQpOworI2Vsc2UKICAgICAvLyBJZiBhIG5vbiBuYXRpdmUgYW5pbWF0aW9uIGlz
IGluIHByb2dyZXNzLCB0aGlzIGlzIHNldCBieSBzY3JvbGwgYW5pbWF0b3IsIG90aGVyd2lzZSwg
dGhlIGFuaW1hdGlvbiBzaG91bGQgc3RvcCBmaXJzdC4KICAgICBpZiAoIXNjcm9sbGFibGVBcmVh
LmlzTm9uTmF0aXZlQW5pbWF0aW9uSW5Qcm9ncmVzcygpKQogICAgICAgICBzY3JvbGxhYmxlQXJl
YS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5Bbmlt
YXRpb24pOwotCiAgICAgc3RhdGVOb2RlLT5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3Jv
bGxQb3NpdGlvbiwgaW5Qcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTI5NSw2ICszMDcsMzIgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3IKICAg
ICBtX3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQog
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBi
b29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8q
IGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUobm9kZUlEKTsKKyAgICBpZiAo
IWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZp
ZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1
cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNj
cm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQo
bm9kZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAg
ICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxC
ZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lk
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3lu
Y1Njcm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3lu
Y1Njcm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5ub2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xs
VXBkYXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3
cG9ydE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBk
YXRlTGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOWJlNjlhYWZi
MS4uM2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTIsNiArNTIsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJB
c3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRp
b25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIAorICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJv
b2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNl
cyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWxJbmRleCwgdW5zaWduZWQgdmVy
dGljYWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3MTdiZmMyYTU1Li43
ZTIxODhjMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAg
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUo
Y29uc3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpKQogICAgICwgbV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVO
b2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgp
KQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uV2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5p
bWF0aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMoc3RhdGVO
b2RlLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0yMTksMTIgKzIyMiwyMiBAQCB2b2lkIFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNv
bnN0IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBh
cmFtcyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9p
bnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlvbikKK3sKKyAgICBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CisgICAgbV9yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsOworICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0
aW9uID0gcmVxdWVzdGVkV2l0aEFuaW1hdGlvbjsKKyAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24pOworfQorI2Vsc2UKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBy
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xs
KQogewogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24gPSByZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbjsKICAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbCA9IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGw7CiAgICAgc2V0UHJvcGVydHlD
aGFuZ2VkKFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKTsKIH0KKyNlbmRpZgogCiB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SXNNb25pdG9yaW5nV2hlZWxFdmVudHMoYm9vbCBp
c01vbml0b3JpbmdXaGVlbEV2ZW50cykKIHsKQEAgLTMxNCw2ICszMjcsMTEgQEAgdm9pZCBTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBT
Y3JvbGxpbmdTdGF0ZVQKICAgICBpZiAobV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVk
IHNjcm9sbCBwb3NpdGlvbiByZXByZXNlbnRzIHByb2dyYW1tYXRpYyBzY3JvbGwiLCBtX3JlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0
aEFuaW1hdGlvbikKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQgc2Nyb2xsIHBv
c2l0aW9uIHdpdGggYW5pbWF0aW9uIiwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmlt
YXRpb24pOworI2VuZGlmCisKICAgICBpZiAoIW1fcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVj
dC5pc0VtcHR5KCkpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicGFyZW50IHJlbGF0aXZlIHNj
cm9sbGFibGUgcmVjdCIsIG1fcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlLmgKaW5kZXggNDk2N2E2Y2U4MS4uNmUyNWQ3YmJhNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmgKQEAgLTExMSw3ICsxMTEsMTIgQEAgcHVibGljOgogCiAgICAgY29uc3QgRmxv
YXRQb2ludCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uOyB9CiAgICAgYm9vbCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsgfQorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRp
b24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlv
bjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24o
Y29uc3QgRmxvYXRQb2ludCYsIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9v
bCByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uID0gZmFsc2UpOworI2Vsc2UKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBi
b29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAKICAgICBib29sIGlz
TW9uaXRvcmluZ1doZWVsRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pc01vbml0b3JpbmdXaGVl
bEV2ZW50czsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SXNNb25pdG9yaW5nV2hlZWxF
dmVudHMoYm9vbCk7CkBAIC0xNzEsNiArMTc2LDkgQEAgcHJpdmF0ZToKICAgICBTY3JvbGxhYmxl
QXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM7CiAKICAgICBib29sIG1f
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsIHsgZmFs
c2UgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgbV9yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbldpdGhBbmltYXRpb24geyBmYWxzZSB9OworI2VuZGlmCiAgICAgYm9vbCBtX2lz
TW9uaXRvcmluZ1doZWVsRXZlbnRzIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCAxNTFhYzI5ZjhhLi5jOWYwNDRi
NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5o
CkBAIC04Miw4ICs4MiwxNyBAQCBwdWJsaWM6CiAgICAgLy8gVXBkYXRlcyBGcmFtZVZpZXcvUmVu
ZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBHcmFwaGljc0xheWVycy4KICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUmLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bkFjdGlvbjo6U3luYykgPSAwOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBD
YWxsZWQgZm9yIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzIHVwZGF0ZXMuCisgICAgdmlydHVhbCB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdl
KFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCAvKmlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzcyovKSB7IH0KKworICAgIC8vIENhbGxlZCBmb3IgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlv
biB1cGRhdGVzLgorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgLypzY3JvbGxQb3NpdGlvbiov
LCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCovLCBib29sIC8qd2l0aEFuaW1h
dGlvbiovKSB7IH0KKyNlbHNlCiAgICAgLy8gQ2FsbGVkIGZvciByZXF1ZXN0ZWQgc2Nyb2xsIHBv
c2l0aW9uIHVwZGF0ZXMuCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVz
dHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0
aW9uKi8sIGJvb2wgLypyZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKi8pIHsgfQorI2VuZGlm
CisKIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxpbmcvem9vbWluZyBoYXMgY2F1c2VkIHRoZSB2
aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2aWV3cG9ydC1jb25zdHJhaW5lZCBsYXllcnMK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5GcmFtZVZpZXdwb3J0Q2hhbmdlZFZpYURlbGVn
YXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwgZG91YmxlIHNjYWxlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYxLi5hZmE4NDUzNDlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3LDE2IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVO
CiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRy
ZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCiB7CiAgICAgY29uc3QgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSBkb3duY2FzdDxT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7Ci0gICAgaWYgKHNjcm9sbGlu
Z1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpCi0gICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3Jv
bGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdT
dGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyAg
ICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgeworICAgICAgICBzY3Jv
bGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCgKKyAgICAgICAgICAg
IHNjcm9sbGluZ05vZGVJRCgpCisgICAgICAgICAgICAsIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbigpCisgICAgICAgICAgICAsIHNjcm9sbGluZ1N0YXRlTm9kZS5y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKQorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgICAgICAsIHNjcm9sbGluZ1N0YXRlTm9kZS5y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKQorI2VuZGlmCisgICAgICAgICAg
ICApOworICAgIH0KIAogICAgIG1faXNGaXJzdENvbW1pdCA9IGZhbHNlOwogfQpAQCAtMTU3LDE1
ICsxNjUsNDQgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQnkoY29u
c3QgRmxvYXRTaXplJiBkZWx0YSwgU2Nyb2xsUG9zaXRpb24KICAgICBzY3JvbGxUbyhjdXJyZW50
U2Nyb2xsUG9zaXRpb24oKSArIGRlbHRhLCBTY3JvbGxUeXBlOjpVc2VyLCBjbGFtcCk7CiB9CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcCBjbGFtcCwgYm9vbCBuZWVkU3luY1Njcm9sbFBvc2l0
aW9uKQoreworICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgewor
ICAgICAgICAvLyBTZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgor
ICAgICAgICBpZiAocmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oKSAmJiBuZWVkU3luY1Njcm9s
bFBvc2l0aW9uKQorICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2Rl
RGlkU2Nyb2xsKCp0aGlzLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsKKyAg
ICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzRGlkQ2hhbmdlKHNjcm9sbGluZ05vZGVJRCgpLCBmYWxzZSk7CisgICAgICAgIHNl
dFJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIC8vIElmIGR1cmluZyBhIHNjcm9sbCBhbmltYXRpb24sIG5lZWQgdG8gc3RvcCBp
dCBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgb25lLgorICAgIGlmIChzY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKCkpCisgICAgICAgIHNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24odHJ1
ZSk7CisgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwo
c2Nyb2xsVHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOworCisgICAgbV9jdXJyZW50
U2Nyb2xsUG9zaXRpb24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7
CisKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBzY3JvbGxUbyAiIDw8
IHBvc2l0aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFzdCBjb21taXR0ZWQgcG9zaXRpb24gIiA8PCAo
bV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gLSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikg
PDwgIikiKTsKKworICAgIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKCk7
CisgICAgY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOworCisgICAgc2V0TmVlZHNTdG9w
Q3VycmVudFNjcm9sbEFuaW1hdGlvbihmYWxzZSk7CisgICAgc2V0UmVxdWVzdFNjcm9sbFdpdGhB
bmltYXRpb24oZmFsc2UpOworICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3Jh
bW1hdGljU2Nyb2xsKGZhbHNlKTsKK30KKyNlbHNlCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBz
Y3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wKQogewogICAgIGlmIChwb3NpdGlv
biA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2Ny
b2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Nyb2xsVHlwZSA9
PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOwotICAgIAorCiAgICAgbV9jdXJyZW50U2Nyb2xs
UG9zaXRpb24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7Ci0gICAg
CisKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBzY3JvbGxUbyAiIDw8
IHBvc2l0aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFzdCBjb21taXR0ZWQgcG9zaXRpb24gIiA8PCAo
bV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gLSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikg
PDwgIikiKTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKCk7
CkBAIC0xNzMsMTQgKzIxMCwyMCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpz
Y3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZQogCiAgICAgc2Ny
b2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOwogfQor
I2VuZGlmCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQ
b3NpdGlvbkNoYW5nZWQoKQogewogICAgIHJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKTsKICAg
ICByZXBvc2l0aW9uUmVsYXRlZExheWVycygpOwogCi0gICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlm
eVJlbGF0ZWROb2Rlc0FmdGVyU2Nyb2xsUG9zaXRpb25DaGFuZ2UoKnRoaXMpOwotICAgIHNjcm9s
bGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcyk7CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoIXJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKCkpCisj
ZW5kaWYKKyAgICB7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5ub3RpZnlSZWxhdGVkTm9kZXNB
ZnRlclNjcm9sbFBvc2l0aW9uQ2hhbmdlKCp0aGlzKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgp
LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzKTsKKyAgICB9CiB9CiAKIGJvb2wgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFBvc2l0aW9uQW5kTGF5b3V0Vmlld3BvcnRN
YXRjaChjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgT3B0aW9uYWw8RmxvYXRSZWN0PikKQEAg
LTI2Niw2ICszMDksMzcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZHVtcFBy
b3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNjcm9sbGluZ1N0YXRlVHIKICAgICB0cy5kdW1wUHJv
cGVydHkoInNjcm9sbGFibGUgYXJlYSBwYXJhbWV0ZXJzIiwgbV9zY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGJvb2wgd2l0aEFu
aW1hdGlvbikKK3sKKyAgICBtX3JlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uID0gd2l0aEFuaW1h
dGlvbjsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdFNjcm9s
bFdpdGhBbmltYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3RTY3JvbGxXaXRo
QW5pbWF0aW9uOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKGJvb2wgaW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MgPSBpblByb2dyZXNzOworfQorCitib29sIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9zY3JvbGxBbmltYXRpb25JblByb2dyZXNzOworfQorCit2b2lkIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlOjpzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGJvb2wg
c3RvcCkKK3sKKyAgICBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24gPSBzdG9wOwor
fQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpuZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uOworfQorI2VuZGlmCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNGNi
ZjRkMWFmMC4uNTUwYjcxYzg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC02MCw3ICs2MCwx
MSBAQCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0KCkg
Y29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gLSBtX2xhc3RDb21taXR0ZWRT
Y3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8gVGhlc2UgYXJlIGltcGVyYXRpdmU7IHRoZXkgYWRq
dXN0IHRoZSBzY3JvbGxpbmcgbGF5ZXJzLgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
dm9pZCBzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6
OlVzZXIsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRl
bnRFZGdlcywgYm9vbCBuZWVkU3luY1Njcm9sbFBvc2l0aW9uID0gZmFsc2UpOworI2Vsc2UKICAg
ICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlw
ZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29u
dGVudEVkZ2VzKTsKKyNlbmRpZgogICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiwg
U2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2Vz
KTsKIAogICAgIHZvaWQgd2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9h
dFBvaW50JiBwb3NpdGlvbiwgT3B0aW9uYWw8RmxvYXRSZWN0PiBvdmVycmlkZUxheW91dFZpZXdw
b3J0ID0geyB9LCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbjo6U3luYyk7CkBAIC05MSw2ICs5NSwxNSBAQCBwdWJsaWM6CiAgICAgY29u
c3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBtX3Njcm9sbENvbnRhaW5lckxheWVyOyB9CiAgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRh
dGlvbiYgc2Nyb2xsZWRDb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxlZENv
bnRlbnRzTGF5ZXI7IH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzZXRS
ZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihib29sKTsKKyAgICBib29sIHJlcXVlc3RTY3JvbGxX
aXRoQW5pbWF0aW9uKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKGJvb2wpOworICAgIGJvb2wgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0Owor
ICAgIHZvaWQgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29sKTsKKyAgICBi
b29sIG5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdDsKKyNlbmRpZgorCiBw
cm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nVHJlZSYs
IFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCkBAIC0xNDgsNiArMTYxLDEy
IEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFy
ZWFQYXJhbWV0ZXJzOwogICAgIGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9OwogCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRp
b24geyBmYWxzZSB9OworICAgIGJvb2wgbV9zY3JvbGxBbmltYXRpb25JblByb2dyZXNzIHsgZmFs
c2UgfTsKKyAgICBib29sIG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbiB7IGZhbHNl
IH07CisjZW5kaWYKKwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxDb250YWluZXJM
YXllcjsKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IGY0NTdiMTU2MWUuLmNl
MzVmYzJkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtNTQsMTEg
KzU0LDE5IEBAIGVudW0gY2xhc3MgU2Nyb2xsUG9zaXRpb25DbGFtcCA6IHVpbnQ4X3QgewogICAg
IFRvQ29udGVudEVkZ2VzLAogfTsKIAotLy8gRklYTUU6IEFkZCBhbm90aGVyIHN0YXR1cyBJbk5h
dGl2ZUFuaW1hdGlvbiB0byBpbmRpY2F0ZSBuYXRpdmUgc2Nyb2xsaW5nIGlzIGluIHByb2dyZXNz
LgotLy8gU2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKK2Vu
dW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JUeXBlIDogdWludDhfdCB7CisgICAgSW5zdGFudCwKKyAg
ICBTbW9vdGgsCit9OworI2VuZGlmCisKIGVudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JTdGF0dXMg
OiB1aW50OF90IHsKICAgICBOb3RJbkFuaW1hdGlvbiwKICAgICBJbk5vbk5hdGl2ZUFuaW1hdGlv
biwKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQor
ICAgIEluVUlOYXRpdmVBbmltYXRpb24sCisjZW5kaWYKIH07CiAKIGlubGluZSBTY3JvbGxEaXJl
Y3Rpb24gbG9naWNhbFRvUGh5c2ljYWwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24s
IGJvb2wgaXNWZXJ0aWNhbCwgYm9vbCBpc0ZsaXBwZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwCmluZGV4IGRlODA4ZTc0YmQuLjgzYzgwODk3Y2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00NjUsNiArNDY1LDEwIEBAIHZvaWQgU2Nyb2xs
Vmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0
aW9uLCBib29sLyoKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwg
IlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBz
ZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7
CisjZW5kaWYKKwogICAgIGlmIChwcm9oaWJpdHNTY3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJu
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggYjQx
YTkxNzk4ZC4uZDIyNmRlMTdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmNwcApAQCAtNzEsNiArNzEsOSBAQCBTY3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFy
ZWEoKQogICAgICwgbV9zY3JvbGxPcmlnaW5DaGFuZ2VkKGZhbHNlKQogICAgICwgbV9jdXJyZW50
U2Nyb2xsVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oU2Nyb2xsVHlwZTo6VXNlcikpCiAgICAg
LCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKGZhbHNlKQorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgLCBtX2N1cnJlbnRTY3Jv
bGxCZWhhdmlvclR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFNjcm9sbEJlaGF2aW9yVHlwZTo6
SW5zdGFudCkpCisjZW5kaWYKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmgKaW5kZXggOTAyMTQ2NGNhNi4uNjNhYjFhZWFjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0yNDcsNiArMjQ3LDExIEBAIHB1YmxpYzoKICAg
ICBTY3JvbGxUeXBlIGN1cnJlbnRTY3JvbGxUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8U2Nyb2xsVHlwZT4obV9jdXJyZW50U2Nyb2xsVHlwZSk7IH0KICAgICB2b2lkIHNldEN1cnJl
bnRTY3JvbGxUeXBlKFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSkgeyBtX2N1cnJlbnRTY3JvbGxUeXBl
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcm9sbFR5cGUpOyB9CiAKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIFNjcm9sbEJlaGF2aW9y
VHlwZSBjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8U2Nyb2xsQmVoYXZpb3JUeXBlPihtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUpOyB9Cisg
ICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZSBz
Y3JvbGxCZWhhdmlvclR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHNjcm9sbEJlaGF2aW9yVHlwZSk7IH0KKyNlbmRpZgorCiAgICAgYm9v
bCBzY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xs
U2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGU7IH0KICAgICB2b2lkIHNldFNjcm9sbFNob3VsZENsZWFy
TGF0Y2hlZFN0YXRlKGJvb2wgc2hvdWxkQ2xlYXIpIHsgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNo
ZWRTdGF0ZSA9IHNob3VsZENsZWFyOyB9CiAKQEAgLTQxMCw2ICs0MTUsOSBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZCA6IDE7CiAgICAgdW5zaWduZWQgbV9j
dXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9sbFR5cGUKICAgICB1bnNpZ25lZCBtX3Njcm9s
bFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbEJl
aGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGZiNzQ1MjhhM2QuLmFk
MTJiMDBmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAt
MjYwMiwxMiArMjYwMiwyNCBAQCBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xs
T2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjbwogCiB2b2lkIFJlbmRl
ckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwg
U2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1
cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNl
bmRpZgorCiAgICAgaWYgKGlzTm9uTmF0aXZlQW5pbWF0aW9uSW5Qcm9ncmVzcygpKQogICAgICAg
ICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKIAogICAgIFNjcm9sbE9mZnNl
dCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1w
ZWQgPyBjbGFtcFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQpIDogc2Nyb2xsT2Zmc2V0OwotICAg
IGlmIChjbGFtcGVkU2Nyb2xsT2Zmc2V0ID09IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgIGlm
IChjbGFtcGVkU2Nyb2xsT2Zmc2V0ID09IHRoaXMtPnNjcm9sbE9mZnNldCgpKSB7CisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICAgICAgLy8g
SWYgVUlTY3JvbGxWaWV3IGlzIHBlcmZvcm1pbmcgYSBzY3JvbGwgYW5pbWF0aW9uLCB0aGUgc2Ny
b2xsIG9mZnNldCBvZiB0aGUgV2ViIHByb2Nlc3MgbWlnaHQgYmUgb3ZlcnJpZGRlbi4KKyAgICAg
ICAgLy8gU28gd2UgbmVlZCB0byBjYWxsIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSBoZXJl
IGFuZCBsZXQgaXQgYmUgY2hlY2tlZCBvbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgLy8gSWYg
dGhlIHNjcm9sbCBvZmZzZXQgb24gdGhlIFVJIHByb2Nlc3MgaXMgZGlmZmVyZW50LCB0aGUgY29y
cmVjdCBzY3JvbGwgb2Zmc2V0IG5lZWRzIHRvIHN5bmMgYmFjayB0byB0aGUgV2ViIHByb2Nlc3Mu
CisgICAgICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhh
dmlvclN0YXR1czo6SW5VSU5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgICAgIHJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQoY2xhbXBlZFNjcm9sbE9m
ZnNldCkpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvIHByZXZp
b3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9s
bFR5cGUoc2Nyb2xsVHlwZSk7CkBAIC0yNjM5LDYgKzI2NTEsMTQgQEAgdm9pZCBSZW5kZXJMYXll
cjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0
LCBTY3JvbGwKICAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBl
KCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CiAKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRT
Y3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGgpOworICAgIGlmIChy
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNl
dCkpKSB7CisgICAgICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIFNjcm9sbE9mZnNldCBuZXdT
Y3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1w
U2Nyb2xsT2Zmc2V0KG9mZnNldCkgOiBvZmZzZXQ7CiAgICAgaWYgKGlzTm9uTmF0aXZlQW5pbWF0
aW9uSW5Qcm9ncmVzcygpKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlv
bnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZDQzNTVjYjAwZC4uYjI4YWE0ZDBjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAxOS0xMi0xMSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24g
bmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBG
csOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcgYXMg
YW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuIE9uIGlvcyBwbGF0Zm9ybSwgdXNlIG5hdGl2ZSBhbmlt
YXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaW50ZXJmYWNlcyB0byBwZXJmb3JtYW5jZSBzbW9vdGgg
c2Nyb2xsIGFuZCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgor
CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVu
Y29kZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZT46OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXApOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAocG9pbnRzRXF1YWxJblJvdW5kVG9E
ZXZpY2VQaXhlbCk6IEhlbHAgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdHdvIGZsb2F0IHBvaW50cyBh
cmUgbm90IGVxdWFsIGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwuCisgICAgICAgICgtW1dL
V2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsT3JpZ2luOmFuaW1h
dGVkOl0pOiBBZGQgYW5pbWF0ZWQgZmxhZyB0byBzdGFydCBhIGFuaW1hdGVkIHNjcm9sbCBpZiBu
ZWVkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5p
bWF0aW9uOl0pOiBTZW5kIHNyb2xsIGVuZCBtZXNzYWdlIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxP
cmlnaW46XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKTogUHJvdmlk
ZSBpbnRlcmZhY2UgZm9yIGFuaW1hdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVy
VHJlZSk6IEFkZCBhbmltYXRlZCBmbGFnLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlk
U2Nyb2xsKTogU3luYyB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5n
VHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhbmltYXRlZCBzY3JvbGxpbmcgaW5mbyB0byBt
X3JlcXVlc3RlZFNjcm9sbEluZm8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzRGlkQ2hhbmdlKTogU3luYyBzY3JvbGxBbmltYXRpb25JblByb2dyZXNzIHRvIHRoZSBXZWIg
cHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hh
bmdlKTogRGl0dG8uIEl0J3Mgc3BlY2lmaWMgdG8gdGhlIHJvb3Qgbm9kZS4KKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1Ry
ZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdU
cmVlTm9kZURpZFNjcm9sbCk6IEFkZCBhbmltYXRlZCBpbmZvLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogRGl0
dG8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVO
b2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogRGl0dG8uCisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06CisgICAgICAgICgt
W1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xs
aW5nQW5pbWF0aW9uOl0pOiBTZW5kIHNjb2xsIGVuZCBpbmZvIHRvIHRoZSBXZWIgcHJvY2Vzcy4K
KyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6
Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTogSWYgdGhlIHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUg
V2ViIHByb2Nlc3MgaXNuJ3QgZXF1YWwgdG8gdGhlIFVJIHByb2Nlc3MsCisgICAgICAgIHRoZSBz
Y3JvbGwgcG9zaXRpb24gc2hvdWxkIGJlIHN5bmNocm9uaXplZCwgZXZlbiB0aGVyZSdzIG5vIHNj
cm9sbGluZyBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdM
YXllcnMpOiBDYWxsaW5nIHRoZSBuYXRpdmUgYW5pbWF0ZWQgc2Nyb2xsaW5nIGludGVyZmFjZSBm
b3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgSWYgdGhlcmUncyBhIHNjcm9sbCBhbmltYXRpb24g
cGVyZm9ybWluZywgaXQgc2hvdWxkIGJlIHN0b3BwZWQgZmlyc3QsIHRoZW4gc3RhcnQgYSBuZXcg
c2Nyb2xsaW5nLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uKTogU3luYyBzY3Jv
bGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3Jv
bGwpOiBUbyBjYWxsIGRpZmZlcmVudCBmdW5jdGlvbnMgZm9yIHNtb290aCBhbmQgaW5zdGFudCBz
Y3JvbGwuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
cmVxdWVzdFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0
U2Nyb2xsV2l0aEFuaW1hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9y
Tm9kZSk6CisKIDIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29t
PgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmlu
ZGV4IGQ3YjFlMTkzNzIuLjU3NDRlMWM4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKQEAgLTE1Miw2ICsxNTIsOSBAQCB2b2lk
IEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0CiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMsIHNjcm9sbGFibGVBcmVhUGFy
YW1ldGVycykKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24p
CiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFNDUk9M
TElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisjZW5k
aWYKIAogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuc2Nyb2xsQ29udGFp
bmVyTGF5ZXIoKSk7CkBAIC0yNjAsNyArMjYzLDE0IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Nyb2xs
CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9s
bCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgICAgICBib29sIHNjcm9sbFdpdGhBbmltYXRpb247CisgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoc2Nyb2xsV2l0aEFuaW1hdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIG5vZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24s
IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIHNjcm9sbFdpdGhBbmltYXRpb24pOworI2Vs
c2UKICAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlv
biwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisjZW5kaWYKICAgICB9CiAKICAgICBp
ZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxDb250YWluZXJMYXllcikpIHsKQEAgLTYwOCw2ICs2MTgsOSBAQCBzdGF0aWMgdm9pZCBk
dW1wKFRleHRTdHJlYW0mIHRzLCBjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUmIG5v
ZGUsIGJvb2wgYwogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb24pKSB7CiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1w
b3NpdGlvbiIsIG5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSk7CiAgICAgICAgIHRzLmR1
bXBQcm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1wb3NpdGlvbi1pcy1wcm9ncmFtYXRpYyIsIG5v
ZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkp
OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVx
dWVzdGVkLXNjcm9sbC1wb3NpdGlvbi13aXRoLWFuaW1hdGlvbiIsIG5vZGUucmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKCFj
aGFuZ2VkUHJvcGVydGllc09ubHkgfHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzMzU0YWM2ZWVjLi4x
MDhlNGMwM2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KQEAgLTE2MTcsNiArMTYxNywxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcG9pbnRz
RXF1YWxJbkRldmljZVBpeGVscyhDR1BvaW50IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2aWNlUwog
ICAgICAgICAmJiBmYWJzKGEueSAqIGRldmljZVNjYWxlRmFjdG9yIC0gYi55ICogZGV2aWNlU2Nh
bGVGYWN0b3IpIDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKIH0KIAor
c3RhdGljIGlubGluZSBib29sIHBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoQ0dQb2lu
dCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIHJldHVybiBD
R1JvdW5kKGEueCAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueCAqIGRldmljZVNj
YWxlRmFjdG9yKQorICAgICAgICAmJiBDR1JvdW5kKGEueSAqIGRldmljZVNjYWxlRmFjdG9yKSA9
PSBDR1JvdW5kKGIueSAqIGRldmljZVNjYWxlRmFjdG9yKTsKK30KIHN0YXRpYyBDR1NpemUgcm91
bmRTY3JvbGxWaWV3Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2Us
IENHU2l6ZSBjb250ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IHBh
Z2UuZGV2aWNlU2NhbGVGYWN0b3IoKTsKQEAgLTIzNDEsOSArMjM0NiwxMCBAQCBzdGF0aWMgV2Vi
Q29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9p
bnQgY29udGVudE9mZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2Vl
bihXZWJDb3JlOjpGbG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNvbnRl
bnRPZmZzZXQpKTsKIH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246
KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3Jl
OjpJbnRQb2ludClzY3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBv
c2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjoo
V2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7
Ci0gICAgaWYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3
cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RS
ZXNpemluZykKKyAgICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBwZWQu
CisgICAgaWYgKCFhbmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8
fCBfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVw
ZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6
RmxvYXRQb2ludCBjb250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9s
bE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3Jp
Z2luKSk7CkBAIC0yMzU3LDEzICsyMzYzLDIxIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50
IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAK
ICAgICBbX3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CiAK
LSAgICBpZiAoIUNHUG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzLCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Njcm9s
bFZpZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0
ZXNdOworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1dCBp
biB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4KKyAg
ICAvLyBXZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhlcmUu
CisgICAgaWYgKCFwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZzZXRJ
blNjcm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBfcGFn
ZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50
T2Zmc2V0OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDphbmlt
YXRlZF07CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBhbnl0
aGluZywgdGhlcmUgd291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRlIHNl
bnQgdG8gdGhlIGNvbnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtlZXAg
dGhlIGludmFsaWQgY29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAgICAg
ICAvLyBUbyBzeW5jaHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2NyZWVu
LCB3ZSBzZW5kIHRoZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdlLT5y
ZXNlbmRMYXN0VmlzaWJsZUNvbnRlbnRSZWN0cygpOworICAgICAgICAvLyBJZiBfc2Nyb2xsVmll
dyB3b24ndCBjaGFuZ2UsIHdlIHN0aWxsIG5lZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nlc3MgdGhh
dCB0aGUgYW5pbWF0aW9uIHN0b3BwZWQuCisgICAgICAgIGlmIChhbmltYXRlZCkgeworICAgICAg
ICAgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRv
ciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgICAgICAgICBpZiAo
Y29vcmRpbmF0b3IpCisgICAgICAgICAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVS
b290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CisgICAg
ICAgIH0KICAgICB9CiB9CiAKQEAgLTI4NzksNiArMjg5MywxMCBAQCBzdGF0aWMgV2ViQ29yZTo6
RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29u
dGVudE9mZgogLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNj
cm9sbFZpZXcgKilzY3JvbGxWaWV3CiB7CiAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGluZ107
CisKKyAgICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5h
dG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICBpZiAoY29vcmRp
bmF0b3IpCisgICAgICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOwogfQogCiAtICh2b2lkKV9zY3Jv
bGxWaWV3RGlkSW50ZXJydXB0RGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJ
bnRlcm5hbC5oCmluZGV4IDQzNTA4MGYzMjQuLjVjYjVmNTgxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC05
Nyw3ICs5Nyw3IEBAIHN0cnVjdCBQcmludEluZm87CiAKIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdT
bmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3Q7CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNj
cm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9y
aWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luOworLSAodm9pZClfc2Nyb2xsVG9D
b250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24g
c2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6KEJP
T0wpYW5pbWF0ZWQ7CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0
YXJnZXRSZWN0IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNjcm9s
bERpc3RhbmNlOihmbG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFuY2U7CiAtIChkb3VibGUpX2luaXRp
YWxTY2FsZUZhY3RvcjsKIC0gKGRvdWJsZSlfY29udGVudFpvb21TY2FsZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlODQ4MjRmZDg1Li5kNTdkN2Q2NTMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDEwIEBAIHB1YmxpYzoK
ICAgICAvLyBUZWxsIHRoZSB2aWV3IHRvIHNjcm9sbCB0byB0aGUgZ2l2ZW4gcG9zaXRpb24sIGFu
ZCB3aGV0aGVyIHRoaXMgd2FzIGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4KICAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgPSAwOwogCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmlt
YXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIHsgfQorI2VuZGlmCisKICAgICAvLyBSZXR1
cm4gdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIChub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUg
YXMgdGhlIFdlYkNvcmUgc2Nyb2xsIHBvc2l0aW9uLCBiZWNhdXNlIG9mIHNjYWxpbmcsIGluc2V0
cyBldGMuKQogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRp
b24oKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHkubW0KaW5kZXggMzgwZjEyNDQ0My4uMGE0MmY5NDQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KQEAgLTIyNCw4ICsyMjQsMTQgQEAgdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUoY29uc3Qg
UmVtb3RlTGF5ZXJUcmVlVHJhbnMKIAogICAgIC8vIEhhbmRsZSByZXF1ZXN0ZWQgc2Nyb2xsIHBv
c2l0aW9uIHVwZGF0ZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUgdHJhbnNhY3Rpb24gYWZ0ZXIg
ZGlkQ29tbWl0TGF5ZXJUcmVlKCkKICAgICAvLyBoYXMgdXBkYXRlZCB0aGUgdmlldyBzaXplIGJh
c2VkIG9uIHRoZSBjb250ZW50IHNpemUuCi0gICAgaWYgKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVx
dWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSkKLSAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVz
dFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBsYXll
clRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKSk7CisgICAgaWYgKHJlcXVlc3RlZFNjcm9s
bEluZm8ucmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSkgeworICAgICAgICBtX3dlYlBhZ2VQ
cm94eS5yZXF1ZXN0U2Nyb2xsKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24KKyAgICAgICAgICAgICwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCkK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICAgICAgLCByZXF1ZXN0ZWRTY3JvbGxJ
bmZvLnJlcXVlc3RXaXRoQW5pbWF0aW9uCisjZW5kaWYKKyAgICAgICAgICAgICk7CisgICAgfQog
I2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAKICAgICBpZiAobV9kZWJ1Z0luZGlj
YXRvckxheWVyVHJlZUhvc3QpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmNwcAppbmRleCA0ODIzZjc2YTk3Li5kM2M5ZmMyNzU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0yMDgsNyAr
MjA4LDExIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y3VycmVudFNu
YXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6CiB9CiAKIC8vIFRoaXMgY29tZXMgZnJv
bSB0aGUgc2Nyb2xsaW5nIHRyZWUuCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwo
U2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBuZXdTY3Jv
bGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3Jp
Z2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCisjZWxzZQogdm9pZCBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9s
bChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Nj
cm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRP
cmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bkFjdGlvbikKKyNlbmRpZgogewogICAgIC8vIFNjcm9sbCB1cGRhdGVzIGZvciB0aGUgbWFpbiBm
cmFtZSBhcmUgc2VudCB2aWEgV2ViUGFnZVByb3h5Ojp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3Rz
KCkKICAgICAvLyBzbyBkb24ndCBzZW5kIHRoZW0gaGVyZS4KQEAgLTIyMiwyMSArMjI2LDQ1IEBA
IHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVE
aWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlECiAgICAgbV93ZWJQYWdlUHJveHkuc2Nyb2xsaW5nTm9k
ZVNjcm9sbFZpZXdEaWRTY3JvbGwoKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xs
KCkgJiYgIWluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKQorICAgICAgICByZXR1cm47Cisj
ZWxzZQogICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3Jv
bGwoKSkKICAgICAgICAgcmV0dXJuOworI2VuZGlmCiAKICAgICBtX3dlYlBhZ2VQcm94eS5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6U2Nyb2xsUG9zaXRpb25DaGFu
Z2VkRm9yTm9kZShzY3JvbGxlZE5vZGVJRCwgbmV3U2Nyb2xsUG9zaXRpb24sIHNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb24gPT0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykp
OwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdO
b2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBi
b29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFuaW1hdGlvbikKKyNl
bHNlCiB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVO
b2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Ny
b2xsKQorI2VuZGlmCiB7CiAgICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RTY3JvbGxpbmdO
b2RlSUQoKSAmJiBtX3JlcXVlc3RlZFNjcm9sbEluZm8pIHsKICAgICAgICAgbV9yZXF1ZXN0ZWRT
Y3JvbGxJbmZvLT5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlID0gdHJ1ZTsKICAgICAgICAg
bV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
ICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdFdpdGhBbmltYXRpb24gPSB3aXRoQW5p
bWF0aW9uOworI2VuZGlmCiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKICAgICB9CiB9CiAKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3Jv
bGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5v
ZGUoc2Nyb2xsZWROb2RlSUQsIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOworfQorCit2
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVSb290Tm9k
ZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRG
b3JOb2RlKHJvb3RTY3JvbGxpbmdOb2RlSUQoKSwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNz
KSk7Cit9CisjZW5kaWYKKwogU3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OnNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9sbGluZ1RyZWUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAppbmRleCAx
YTc2OTQzZjI0Li4yMzU1MDdjMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmgKQEAgLTU1LDkgKzU1LDE3IEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYpOwogICAgIHZp
cnR1YWwgflJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVSb290Tm9kZUlz
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzcyk7CisgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJvY2VzcyB0aGF0IHRoZSBzY3Jv
bGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlKQorICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0
aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJDb3Jl
OjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBib29sIGluc3RhbnRTY3JvbGxEaWRTdG9w
QW5pbWF0aW9uID0gZmFsc2UpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wg
d2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKKyNlbHNlCiAgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJv
Y2VzcyB0aGF0IHRoZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNj
cm9sbGluZyB0cmVlKQogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQ
b3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdw
b3J0T3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKICAgICB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyNlbmRpZgogCiAgICAgV2ViQ29yZTo6VHJhY2tp
bmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRO
YW1lLCBXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CiAKQEAgLTgwLDYgKzg4LDkgQEAgcHVibGlj
OgogICAgIHN0cnVjdCBSZXF1ZXN0ZWRTY3JvbGxJbmZvIHsKICAgICAgICAgYm9vbCByZXF1ZXN0
c1Njcm9sbFBvc2l0aW9uVXBkYXRlIHsgfTsKICAgICAgICAgYm9vbCByZXF1ZXN0SXNQcm9ncmFt
bWF0aWNTY3JvbGwgeyB9OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIGJvb2wg
cmVxdWVzdFdpdGhBbmltYXRpb24geyB9OworI2VuZGlmCiAgICAgICAgIFdlYkNvcmU6OkZsb2F0
UG9pbnQgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgfTsKICAgICB2b2lkIGNvbW1pdFNj
cm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0
aW9uJiwgUmVxdWVzdGVkU2Nyb2xsSW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3Bw
CmluZGV4IGFmYWJiYzFlYWUuLjU2NDU4OTNkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJl
ZS5jcHAKQEAgLTEwNCwxMyArMTA0LDI0IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmCiAgICAg
aWYgKGlzPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpKQogICAgICAgICBs
YXlvdXRWaWV3cG9ydE9yaWdpbiA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGU+KG5vZGUpLmxheW91dFZpZXdwb3J0KCkubG9jYXRpb24oKTsKIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1Ry
ZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9s
bFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uLCBub2RlLm5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSAmJiAhbm9kZS5y
ZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbigpKTsKKyNlbHNlCiAgICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9k
ZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2lu
LCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyNlbmRpZgogfQogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5v
ZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29s
IHdpdGhBbmltYXRpb24pCit7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9s
bGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgcmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgd2l0aEFuaW1hdGlvbik7Cit9CisjZWxzZQogdm9pZCBS
ZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29s
IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiB7CiAgICAgbV9zY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQ
b3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiB9CisjZW5kaWYKIAogUmVm
PFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdU
cmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJ
RCkKIHsKQEAgLTE0Myw2ICsxNTQsMTMgQEAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVT
Y3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2QKICAgICBy
ZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogfQog
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MpCit7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2Rl
SXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGVJRCwgaXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKTsKK30KKyNlbmRpZgorCiB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6
OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQs
IHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKQogewogICAgIG1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5jdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShub2Rl
SUQsIGhvcml6b250YWwsIHZlcnRpY2FsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCmluZGV4
IDIzYmFjMDZhM2IuLjRiZDU2MGRkODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaApAQCAt
NTIsNyArNTIsMTIgQEAgcHVibGljOgogICAgIGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkmIHNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7IH0KIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVE
aWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBXZWJDb3JlOjpT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbjo6U3luYykgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKSBvdmVycmlkZTsKKyNlbHNlCiAgICAgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCkgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIHZvaWQgY3VycmVudFNuYXBQb2lu
dEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jp
em9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKaW5kZXgg
ZTYzN2Q2MTUzMi4uMDBiNGRiY2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxW
aWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsVmlld0RpZFNj
cm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPZmZzZXQsIGJvb2wgaW5Vc2Vy
SW50ZXJhY3Rpb24pOworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlv
bigpOwogCiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25l
ZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7CiAgICAgQ0FMYXllciAqc2Ny
b2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdldCgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW0KaW5kZXggZTc2ODk4Mzc1OC4uN2E2ZTY0YWI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAt
MTUyLDYgKzE1MiwxMSBAQAogICAgIH0KIH0KIAorLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Ny
b2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgX3Njcm9s
bGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24o
KTsKK30KKwogI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0gKENHUG9pbnQpX3Njcm9sbFZp
ZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENH
UG9pbnQpb2Zmc2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6
KENHUG9pbnQpc3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9y
aXpvbnRhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91
dCBkb3VibGUgKil2dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3Qg
U2Nyb2wKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CiAg
ICAgICAgIGF1dG8gc2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSA/IFNjcm9sbFR5cGU6OlBy
b2dyYW1tYXRpYyA6IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAgIHNjcm9sbGluZ05vZGUoKS5z
Y3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Ny
b2xsVHlwZSk7CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2V0
UmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24odHJ1ZSk7CisgICAgICAgIC8vIElmIHRoZSBzY3Jv
bGwgcG9zaXRpb25zIGFyZSBub3QgdGhlIHNhbWUsIHRoZXJlJ3MgYSBwb3NzaWJpbGl0eSB0aGF0
IHRoZSBzY3JvbGwgb2Zmc2V0IGZyb20gdGhlIFdlYiBwcm9jZXNzIGhhcyBiZWVuIG92ZXJyaWRk
ZW4uCisgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIHNjcm9sbCBwb3NpdGlvbiBuZWVkIHRv
IGJlIHNlbnQgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBib29sIHNob3VsZFN5bmNTY3Jv
bGxQb3NpdGlvbiA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxQb3NpdGlvbigpICE9IHNjcm9s
bGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgc2Nyb2xsaW5nTm9k
ZSgpLnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigp
LCBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywgc2hvdWxk
U3luY1Njcm9sbFBvc2l0aW9uKTsKICAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpCiB7Ci0gICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW3Njcm9sbFZpZXcoKSBzZXRDb250ZW50
T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOwotICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBib29sIGFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBzY3Jv
bGxpbmdOb2RlKCkuc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpOworICAgIGJvb2wgbmVlZFRv
U3RvcEFuaW1hdGlvbiA9IHNjcm9sbGluZ05vZGUoKS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5p
bWF0aW9uKCk7CisgICAgaWYgKG5lZWRUb1N0b3BBbmltYXRpb24gJiYgYW5pbWF0aW9uSW5Qcm9n
cmVzcykgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Nj
cm9sbFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbFZpZXcoKS5jb250ZW50T2Zmc2V0IGFu
aW1hdGVkOk5PXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0KKwor
ICAgIGlmIChzY3JvbGxpbmdOb2RlKCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oKSkgewor
ICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXco
KSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCkg
YW5pbWF0ZWQ6WUVTXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworCisgICAg
ICAgIHNjcm9sbGluZ05vZGUoKS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKHRydWUpOwor
ICAgIH0gZWxzZSBpZiAoIWFuaW1hdGlvbkluUHJvZ3Jlc3MgfHwgbmVlZFRvU3RvcEFuaW1hdGlv
bikgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9s
bFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zm
c2V0KCldOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgfQogfQogCiB2
b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFdpbGxTdGFy
dCgpIGNvbnN0CkBAIC0zMzUsNiArMzYxLDE1IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBGbG9hdFBvaW50CiAg
ICAgc2Nyb2xsaW5nTm9kZSgpLndhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmcoc2Nyb2xs
UG9zaXRpb24sIHsgfSwgaW5Vc2VySW50ZXJhY3Rpb24gPyBTY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uOjpTeW5jIDogU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIH0KIAor
dm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlk
RW5kU2Nyb2xsaW5nQW5pbWF0aW9uKCkKK3sKKyAgICBhdXRvJiBub2RlID0gc2Nyb2xsaW5nTm9k
ZSgpOworICAgIGlmICghKG5vZGUucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oKSAmJiBub2Rl
LnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgp
LnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5v
ZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2Uo
dW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAgaWYg
KG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggZGIyY2UwNzljYS4uOTgxNDUyZDc4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzY3LDEwICsxNzY3LDIwIEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFJlZ2lvbiYgcmVnaW9uKQogICAg
IHBhZ2VDbGllbnQoKS5zZXRWaWV3TmVlZHNEaXNwbGF5KHJlZ2lvbik7CiB9CiAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4s
IGNvbnN0IGJvb2wgd2l0aEFuaW1hdGlvbikKK3sKKyAgICBpZiAod2l0aEFuaW1hdGlvbikKKyAg
ICAgICAgcGFnZUNsaWVudCgpLnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKHNjcm9sbFBvc2l0
aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGVsc2UKKyAgICAgICAgcGFnZUNsaWVudCgpLnJlcXVl
c3RTY3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7Cit9CisjZWxzZQogdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCiB7CiAgICAgcGFnZUNsaWVudCgpLnJl
cXVlc3RTY3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CiB9CisjZW5kaWYKIAog
V2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQb3NpdGlvbigpIGNv
bnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFlMzg1MjIy
MWQuLjYwNDc0OTc5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC02MTMsNyArNjEzLDExIEBAIHB1YmxpYzoKICAgICBQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KCkg
Y29uc3Q7CiAKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVn
aW9uJik7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGwo
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBzY3JvbGxPcmlnaW4sIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKKyNl
bHNlCiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKTsKKyNl
bmRpZgogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKaW5kZXggZDZjOGMzOGQ0YS4uNTE5OGVmNDQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2lu
Z0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZXdO
ZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBy
ZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKKyAgICB2b2lk
IHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVy
cmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJy
aWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29s
IGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGRjOWY3NGM0OWEuLjJjMzBjNGJj
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KQEAgLTk1LDcgKzk1LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVk
c0Rpc3BsYXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNj
cm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNj
cm9sbE9yaWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3Np
dGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luXTsKKyAgICBbbV93
ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3Jv
bGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5PXTsKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit7CisgICAgW21fd2ViVmll
dyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3Jp
Z2luOnNjcm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwogfQogCiBXZWJDb3JlOjpGbG9hdFBvaW50
IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA4ZTY0OTM1NTQ1Li4z
ZDM0NWQ3NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjcm9s
bFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlv
bik7CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGlj
YWwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgorCiAgICAgV2ViUGFnZSogbV93
ZWJQYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4IDJjMDk4YTEwOTcuLjUzN2Zk
MzRkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDkgQEAKIG1lc3NhZ2Vz
IC0+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAgICBTY3JvbGxQb3NpdGlvbkNoYW5n
ZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxQb3Np
dGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgQ3VycmVudFNuYXBQb2ludEluZGlj
ZXNDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVu
c2lnbmVkIHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIGJvb2wgaXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5tbQppbmRleCA4MzU0NDFkMzE5Li42ODlkNTU2MjZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBA
IC0xMDQsNiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmN1cnJl
bnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoU2Nyb2xsaW5nCiAgICAgc2V0QWN0aXZl
U2Nyb2xsU25hcEluZGljZXMobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CiB9CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6
c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAg
IHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385374</attachid>
            <date>2019-12-11 03:35:07 -0800</date>
            <delta_ts>2019-12-11 07:24:45 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_24.diff</filename>
            <type>text/plain</type>
            <size>302814</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjg4NDBmM2NmLi43NTQzNzBiOGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2lu
ZyBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQu
IEluIG9yZGVyIHRvIHRlc3QgcHJvcGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9y
IHRlc3QgdG8gZmFzdC9zY3JvbGxpbmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2
ZVNjcm9sbGluZyk6CisgICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9s
bE5vZGUpOgorICAgICAgICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0
bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKKzIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0
aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlc2UgdGVzdHMgb24gV0sxIGFzIHRoZXkgZG9u
J3Qgd29yayBmb3Igbm93LgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBh
cnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBC
YXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTEyLTEwICBQZW5nIExpdSAgPHBl
bmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3JlYXRlIGEgVGVzdEV4cGVjdGF0aW9ucyBm
aWxlIGZvciB0aGUgR1BVIHByb2Nlc3MgcmVsYXRlZCB3b3JrCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBhMDk2OGUwMjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Nj
cm9sbC1iZWhhdmlvci5qcwpAQCAtMCwwICsxLDg3IEBACitmdW5jdGlvbiBvYnNlcnZlU2Nyb2xs
aW5nKGVsZW1lbnRzLCBjYWxsYmFjaykgeworICBpZiAoIUFycmF5LmlzQXJyYXkoZWxlbWVudHMp
KQorICAgICAgZWxlbWVudHMgPSBbZWxlbWVudHNdOworICB2YXIgbGFzdENoYW5nZWRGcmFtZSA9
IDA7CisgIHZhciBsYXN0TGVmdCA9IG5ldyBNYXAoKTsKKyAgdmFyIGxhc3RUb3AgPSBuZXcgTWFw
KCk7CisgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAgICBsYXN0TGVmdC5zZXQo
ZWxlbWVudCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICBsYXN0VG9wLnNldChlbGVtZW50LCBl
bGVtZW50LnNjcm9sbFRvcCk7CisgIH0pOworICBmdW5jdGlvbiB0aWNrKGZyYW1lcykgeworICAg
IC8vIFdlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIDUwMCBmcmFtZXMgb3IgdW50
aWwgMjAgZnJhbWVzIHdpdGgKKyAgICAvLyBubyBjaGFuZ2UgaGF2ZSBiZWVuIG9ic2VydmVkLgor
ICAgIGlmIChmcmFtZXMgPj0gNTAwIHx8IGZyYW1lcyAtIGxhc3RDaGFuZ2VkRnJhbWUgPiAyMCkg
eworICAgICAgY2FsbGJhY2sodHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIHZhciBzY3JvbGxI
YXBwZW5lZCA9IGVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IHsKKyAgICAgICAgcmV0dXJuIGVs
ZW1lbnQuc2Nyb2xsTGVmdCAhPSBsYXN0TGVmdC5nZXQoZWxlbWVudCkgfHwgZWxlbWVudC5zY3Jv
bGxUb3AgIT0gbGFzdFRvcC5nZXQoZWxlbWVudCk7CisgICAgICB9KTsKKyAgICAgIGlmIChzY3Jv
bGxIYXBwZW5lZCkgeworICAgICAgICBsYXN0Q2hhbmdlZEZyYW1lID0gZnJhbWVzOworICAgICAg
ICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7CisgICAgICAgICAgbGFzdExlZnQuc2V0
KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsTGVmdCk7CisgICAgICAgICAgbGFzdFRvcC5zZXQoZWxl
bWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOworICAgICAgICB9KTsKKyAgICAgICAgY2FsbGJhY2so
ZmFsc2UpOworICAgICAgfQorICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2suYmluZChu
dWxsLCBmcmFtZXMgKyAxKSk7CisgICAgfQorICB9CisgIHRpY2soMCk7Cit9CisKK2Z1bmN0aW9u
IHdhaXRGb3JTY3JvbGxFbmQoZWxlbWVudHMpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7CisgICAgb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgKGRvbmUpID0+IHsKKyAg
ICAgIGlmIChkb25lKQorICAgICAgICByZXNvbHZlKCk7CisgICAgfSk7CisgIH0pOworfQorCitm
dW5jdGlvbiByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KSB7CisgIC8vIFRyeSB2YXJpb3Vz
IG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0
ZWx5LgorICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsKHtsZWZ0OiAwLCB0
b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGxG
b3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KSB7CisgIC8vIFRyeSB2YXJpb3VzIG1ldGhvZHMgdG8g
ZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0ZWx5LgorICBzY3Jv
bGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAg
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsK
KyAgc2Nyb2xsaW5nV2luZG93LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImlu
c3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
IGNsYXNzTmFtZSkgeworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImF1dG9CZWhh
dmlvciIsICJzbW9vdGhCZWhhdmlvciIpOworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5hZGQo
Y2xhc3NOYW1lKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBz
Y3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5i
ZWhhdmlvciA9IGJlaGF2aW9yOworICBzd2l0Y2ggKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgY2Fz
ZSAic2Nyb2xsSW50b1ZpZXciOgorICAgICAgYXJncy5pbmxpbmUgPSAic3RhcnQiOworICAgICAg
YXJncy5ibG9jayA9ICJzdGFydCI7CisgICAgICBlbGVtZW50VG9SZXZlYWwuc2Nyb2xsSW50b1Zp
ZXcoYXJncyk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgYXJncy5sZWZ0ID0g
ZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgICAgIGFyZ3MudG9wID0gZWxlbWVudFRvUmV2ZWFsVG9w
OworICAgICAgc2Nyb2xsaW5nRWxlbWVudFtzY3JvbGxGdW5jdGlvbl0oYXJncyk7CisgICAgICBi
cmVhazsKKyAgfQorfQorCitmdW5jdGlvbiBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5i
ZWhhdmlvciA9IGJlaGF2aW9yOworICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0Owor
ICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgc2Nyb2xsaW5nV2luZG93W3Njcm9s
bEZ1bmN0aW9uXShhcmdzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOGQ0Y2E2NDE1
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQ
QVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1i
ZWhhdmlvciAKK1BBU1MgU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVs
dCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zNWM2NTAzYWIyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0t
PgorPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxl
PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdp
ZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0i
bG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+
CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5k
OiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwv
c3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJh
Y2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZl
YWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICB2YXIgc2Ny
b2xsRnVuY3Rpb24gPSAic2Nyb2xsIjsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICB9LCAiSW5zdGFudCBzY3Jv
bGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7CisKKyAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgIH0pOworICB9LCAiU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVs
dCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTNhOTYx
ZWY1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1l
bnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24g
YW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbiBpbnN0YW50
IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi5kMzhkZmZkZWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKQEAgLTAs
MCArMSwxNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6
QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcg
c2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJl
aGF2aW9yIG9uIGFuIGVsZW1lbnQ8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9y
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgewor
ICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4
OworICB9CisgIC5hdXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAg
fQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9
Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2Rl
IiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdo
dDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVu
KTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4K
KzwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7
CisgIHZhciBzdHlsZWRFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVudFRvUmV2
ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKworICBbInNj
cm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2go
KHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHki
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9
LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9
KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVz
b2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
YCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlv
biwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAg
IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgIH0sIGBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3JgKTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNl
dFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGgg
c2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOwor
ICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9v
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uOTdjYWVhMjdiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgUGFnZSBsb2FkZWQgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGlu
ZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi5kMzI1YjRiOWUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRt
bApAQCAtMCwwICsxLDE2OSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBp
bnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+
VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBz
Y3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcv
I3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVoYXZpb3Igewor
ICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAg
IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4K
KzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJw
b3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4K
KyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOworICB2YXIgc2Ny
b2xsaW5nRWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBhZ2VMb2Fk
ZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9
ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZl
YWxMZWZ0ID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZl
YWxUb3AgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZl
YWwuc3R5bGUubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRU
b1JldmVhbC5zdHlsZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRk
X2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsgfSk7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJ
bnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAg
ICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5j
dGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAg
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3Rh
bnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShz
Y3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVt
ZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGgg
YW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM4MjM4NWFhYjQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisKK1BBU1MgUGFnZSBsb2FkZWQg
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjkwNTdiMGNkMTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1h
aW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVs
ZW1lbnQuc2Nyb2xsKiBvbiB0aGUgd2luZG93IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2Nh
bGU9MSI+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBtYXJnaW46
IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOwor
ICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
IH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdlQ29udGVu
dCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+CisgIDxkaXYg
aWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTog
aW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFj
azsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFzeW5jX3Rl
c3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdXaW5kb3csIHN0eWxlZEVsZW1lbnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKCkg
eworICAgIHNjcm9sbGluZ1dpbmRvdyA9IHdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEw
ICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJweCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUu
aGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1l
bnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1l
bnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA0OworICAgIGVsZW1l
bnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAg
ZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisK
KyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlc2V0U2Nyb2xsRm9yV2luZG93
KHdpbmRvdyk7IH0pOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5m
b3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyBy
ZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5j
dGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJh
dXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFks
IDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlv
biwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3Jv
bGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5j
dGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3Ai
KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhz
Y3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxG
dW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAg
ICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1
bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93
KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3Jv
bGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIs
IGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
MiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFu
b3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xs
aW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Ny
b2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9
LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1l
IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9s
bGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDQzYTgyMGU1OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBz
Y3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQ1YjVkOGQ3
YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsODggQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3Igd2l0aCBzY3JvbGxJbnRvVmlldyBmb3IgbmVzdGVkIHNjcm9sbGluZyBub2Rl
czwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGln
YWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJv
eCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87
CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9s
bC1iZWhhdmlvcjogc21vb3RoOworICB9CisgIC5ncmFkaWVudCB7CisgICAgYmFja2dyb3VuZDog
bGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7CisgIH0KKzwvc3R5bGU+Cis8ZGl2
IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2PgorICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIHNtb290
aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQ1MHB4Ij4KKyAgICA8ZGl2IGNsYXNzPSJncmFkaWVu
dCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogNDAwcHgiPgor
ICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDog
NTAwcHg7Ij48L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0
aDogMzUwcHgiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAx
MDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlIiBzdHlsZT0id2lkdGg6IDMwMHB4Ij4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVu
dCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAg
IDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogMjUw
cHgiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9s
bGFibGUiIHN0eWxlPSJ3aWR0aDogMjAwcHgiPgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJn
cmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAg
ICAgICAgICAgICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJ3aWR0aDogMTBweDsg
aGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsi
PjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
ICAgIDwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPGRp
diBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48
L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3
aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+
Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIFRoZSBDU1NPTS1WaWV3IHNwZWMgYW5kIGltcGxlbWVu
dGF0aW9ucyBmb2xsb3cgZGlmZmVyZW50IGFsZ29yaXRobXMgKHNjcm9sbHMgcGVyZm9ybWVkIGlu
IHBhcmFsbGVsLCBhcyBpbm5lci10by1vdXRlciBzZXF1ZW5jZSBvciBhcyBvdXRlci10by1pbm5l
ciBzZXF1ZW5jZSkuCisgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0
cy9pc3N1ZXMvMzEyNworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciBkaXZzID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLnNjcm9sbGFibGUiKTsKKyAgICAgIGRpdnMuZm9yRWFjaCgo
c2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxhYmxlRGl2KTsK
KyAgICAgIH0pOworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbEludG9WaWV3KHtpbmxpbmU6
ICJzdGFydCIsIGJsb2NrOiAic3RhcnQiLCBiZWhhdmlvcjogImF1dG8ifSk7CisgICAgICB2YXIg
c2Nyb2xsVG9wID0gbmV3IE1hcCgpOworICAgICAgdmFyIGlzU21vb3RoID0gbmV3IE1hcCgpOwor
ICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAgIHNjcm9sbFRv
cC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAgICBp
c1Ntb290aC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5jbGFzc0xpc3QuY29udGFp
bnMoInNtb290aEJlaGF2aW9yIikpOworICAgICAgICAvLyBJZiBzY3JvbGwgb3BlcmF0aW9ucyBh
cmUgbm90IHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgc2Nyb2xsIGJveGVzIHdpdGggaW5zdGFudCBi
ZWhhdmlvciBtaWdodCBhbHNvIG5lZWQgdG8gd2FpdCBmb3IgdGhlaXIgcHJlZGVjZXNzb3JzLgor
ICAgICAgICBpZiAoaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2KSwgNTAwLCAiRWxlbWVudCB3
aXRoIHNtb290aCBiZWhhdmlvciBzaG91bGQgbm90IHNjcm9sbCBpbW1lZGlhdGVseSIpOworICAg
ICAgfSk7CisKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcoQXJyYXkuZnJvbShkaXZzKSwgZnVuY3Rp
b24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgIGRpdnMuZm9yRWFjaCgoc2Nyb2xs
YWJsZURpdikgPT4geworICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChzY3JvbGxU
b3AuZ2V0KHNjcm9sbGFibGVEaXYpLCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgIlNjcm9sbFRv
cCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICBpZiAoIWlzU21vb3RoLmdldChzY3Jv
bGxhYmxlRGl2KSkKKyAgICAgICAgICAgICAgYXNzZXJ0X2FueShhc3NlcnRfZXF1YWxzLCBzY3Jv
bGxhYmxlRGl2LnNjcm9sbFRvcCwgWzAsIDUwMF0sICJFbGVtZW50IHdpdGggaW5zdGFudCBiZWhh
dmlvciBzaG91bGQganVtcCB0byB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIGlm
IChkb25lKQorICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGFibGVEaXYuc2Nyb2xs
VG9wLCA1MDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgICAgIHNjcm9s
bFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAg
ICAgIH0pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7
CisgICAgfSk7CisgIH0sICJzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRo
IGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMC4uODU1YTZhNjEwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9u
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5n
IHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3Jv
bGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgx
MDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9z
aXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1
MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBw
ZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1
c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcg
c21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xs
VG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5n
IHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1Zp
ZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygp
ICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJv
cnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uMGE0MWI4YjA4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5o
dG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUg
IGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRs
ZT5UZXN0aW5nIHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRo
IHNtb290aCBiZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAg
b3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7Cisg
ICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ci
PgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAg
PGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxp
bmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRp
c3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFu
PjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dy
b3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICAvLyBG
b3Igc21vb3RoIGJlaGF2aW9yLCBldm9sdXRpb24gb2Ygc2Nyb2xsIHBvc2l0aW9ucyBvdmVyIHRp
bWUgaXMgbm90IHNwZWNpZmllZCBieSBDU1NPTSBWaWV3LgorICAvLyBUaGlzIHRlc3QgcmVsaWVz
IG9uIHRoZSBtaW5pbWFsIGFzc3VtcHRpb24gdGhhdCBzY3JvbGwgcG9zaXRpb24gZnVuY3Rpb25z
IGFyZSBtb25vdG9uaWMuCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNj
cm9sbEludG9WaWV3Il0uZm9yRWFjaChmdW5jdGlvbihzY3JvbGxGdW5jdGlvbikgeworICAgIFt7
bGVmdDowLCB0b3A6MH0sIHtsZWZ0OjEwMDAsIHRvcDowfSwge2xlZnQ6MCwgdG9wOjUwMH0sIHts
ZWZ0OjEwMDAsIHRvcDo1MDB9XS5mb3JFYWNoKChpbml0aWFsKSA9PiB7CisgICAgICB2YXIgZmlu
YWxMZWZ0ID0gNTAwOworICAgICAgdmFyIGZpbmFsVG9wID0gMjUwOworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwg
Imluc3RhbnQiLCBpbml0aWFsLmxlZnQsIGluaXRpYWwudG9wKTsKKyAgICAgICAgICB2YXIgb2xk
TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBvbGRUb3AgPSBv
dmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwg
aW5pdGlhbC5sZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCBpbml0aWFsLnRvcCwgIlNjcm9sbFRv
cCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIpOworICAgICAgICAgIGlmIChzY3JvbGxG
dW5jdGlvbiA9PT0gInNjcm9sbEJ5IikKKyAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCAtIGluaXRpYWwubGVmdCwg
ZmluYWxUb3AgLSBpbml0aWFsLnRvcCk7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Ny
b2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZmluYWxMZWZ0
LCBmaW5hbFRvcCk7CisgICAgICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1
bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHZhciBuZXdM
ZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgIHZhciBuZXdUb3Ag
PSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFu
X2VxdWFsKE1hdGguaHlwb3QoZmluYWxMZWZ0IC0gbmV3TGVmdCwgZmluYWxUb3AgLSBuZXdUb3Ap
LCBNYXRoLmh5cG90KGZpbmFsTGVmdCAtIG9sZExlZnQsIGZpbmFsVG9wIC0gb2xkVG9wKSwgIlNj
cm9sbCBwb3NpdGlvbiBzaG91bGQgbW92ZSB0b3dhcmRzIHRoZSBmaW5hbCBwb3NpdGlvbiIpOwor
ICAgICAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
bmV3TGVmdCwgZmluYWxMZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRp
b24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgZmluYWxUb3AsICJT
Y3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgICAgIG9sZFRvcCA9
IG5ld1RvcDsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICByZWplY3Qo
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKCR7aW5pdGlh
bC5sZWZ0fSwgJHtpbml0aWFsLnRvcH0pIHRvICgke2ZpbmFsTGVmdH0sICR7ZmluYWxUb3B9KSB1
c2luZyAke3Njcm9sbEZ1bmN0aW9ufSgpIGApOworICAgIH0pOworICB9KTsKKworICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5p
dGlhbFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBzY3JvbGxEaXJlY3Rpb25DaGFu
Z2VkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0
OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICBhc3Nl
cnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3RoIiwgMTUwMCwg
NzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25l
KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUu
c2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRv
cDsKKyAgICAgICAgICBpZiAoaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsKKyAgICAgICAgICAgIGlm
IChzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkKSB7CisgICAgICAgICAgICAgIGFzc2VydF9ncmVhdGVy
X3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgZGVjcmVhc2lu
ZyIpOworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9sZFRvcCwgbmV3
VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICBzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkID0gbmV3TGVmdCA8PSBvbGRMZWZ0
ICYmIG5ld1RvcCA8PSBvbGRUb3A7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVw
cyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xk
VG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAg
ICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7CisgICAgICAgICAgICAgICAg
Ly8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAgICAgIGluaXRpYWxTY3Jv
bGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9k
ZSwgInNjcm9sbCIsICJzbW9vdGgiLCA1MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVm
dCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAg
ICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAw
LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9sZExlZnQgPSBuZXdMZWZ0Owor
ICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAg
ICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChkb25lKQorICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Nyb2xsIHBvc2l0aW9ucyB3aGVu
IGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGlu
ZyIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRTY3JvbGwob3ZlcmZsb3dOb2Rl
KTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZhbHNlOworICAgICAgdmFyIG9s
ZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZhciBvbGRUb3AgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAwKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAgICBvYnNlcnZlU2Nyb2xs
aW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAg
ICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgdmFy
IG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgaWYgKCFpbml0aWFs
U2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9s
ZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBr
ZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAmJiBu
ZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBzY3Jv
bGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAgICAg
ICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCA1
MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxM
ZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNo
b3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQg
c3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdU
b3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgc3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAg
ICAgICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3Ag
PSBuZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9
KTsKKyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290
aCBzY3JvbGxpbmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1
YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yNzk5ZmRjYzI5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1y
b290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgaWZyYW1lIGxvYWRlZCAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRp
bmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uOTZkMTFhYjk2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEs
MTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5j
T3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGlu
Z0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZp
b3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9m
IGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIv
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0
bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Nj
cm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJl
aGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9
ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZ
UEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2luOiAwOworICAg
IH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAg
ICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3Ro
OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIw
MDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcs
IHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2Nr
OyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRU
b1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0x
NXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bh
bj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+
CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2FkZWQiKTsKKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAg
dmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3Ag
PSAyNTA7CisgIGlmcmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRU
ZXN0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gaWZyYW1l
Tm9kZS5jb250ZW50RG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICBzdHlsZWRFbGVtZW50
ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1l
bnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
bGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5
IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24s
IG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyBy
ZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAi
aW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1
YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFu
dCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhh
dmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4g
eworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAg
IH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3
aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwLi4wNWViMzI3MmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjkgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFu
IG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIg
c21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLjMzMzNkNjRmODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCkBA
IC0wLDAgKzEsMTcxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVy
bmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFt
ZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9y
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxp
ZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9j
PSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2lu
OiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjog
YXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlv
cjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0n
d2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVu
dCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5s
aW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9
J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwt
YWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFj
azsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4K
KzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2Fk
ZWQiKTsKKyAgdmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2
ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1Jl
dmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZy
YW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgIHNjcm9sbGluZ1dpbmRvdyA9
IGlmcmFtZU5vZGUuY29udGVudFdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9k
ZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9
IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZl
YWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgo
c2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgp
OyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdX
aW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0Jl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsK
KyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIp
OworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Nj
cm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAg
ICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAg
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsK
KyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdX
aW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAp
OworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
ICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5n
V2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24s
ICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50
VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBv
bmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNt
b290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNl
dFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRv
dywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJp
bnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFu
IGluc3RhbnQgc2Nyb2xsaW5nIik7CisKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCA0N2ZkNWUxYTU0Li4zNmY1M2I2MGEzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENo
ZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNj
cm9sbCBiZWhhdmlvciByZWxpZXMgb24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBXZWIgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQg
b24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBFbmFibGUgQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCBvbiBzY3JvbGwgYmVoYXZpb3IgdGVzdHMgYW5kIHVw
ZGF0ZSBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRl
ZmF1bHQtY3NzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDoK
KworMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNo
IGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6CisKIDIwMTktMTItMTAgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1zeW5jIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2luLW9i
amVjdHMvY3Jvc3Mtb3JpZ2luLW9iamVjdHMuaHRtbCBmcm9tIHVzcHRyZWFtCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0
CmluZGV4IDNhYzBhMzdjZmYuLjg3NWE3MjdjOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NCBAQAogCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBoYXMgaW5pdGlhbCB2YWx1ZSBh
dXRvIGFzc2VydF90cnVlOiBzY3JvbGwtYmVoYXZpb3IgZG9lc24ndCBzZWVtIHRvIGJlIHN1cHBv
cnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9yIGRvZXMgbm90IGluaGVyaXQgYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBoYXMg
aW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgZG9lcyBu
b3QgaW5oZXJpdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0
CmluZGV4IDkwNjhiNzk3NTUuLjhkNGNhNjQxNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKIFBBU1MgSW5zdGFudCBzY3Jv
bGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAotRkFJTCBT
bW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU21vb3Ro
IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCmluZGV4IDY5MjVjZjA5MmMuLmZlNDc1YjAzOWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQ
RSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+
VGVzdGluZyBkZWZhdWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dAppbmRleCAyYjkxMjljMWNmLi41M2E5NjFlZjU2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMiwzNSArMiwzNSBA
QAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1G
QUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAor
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJ
TCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
NTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNt
b290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQuaHRtbAppbmRleCAzY2JkNzIyZjcyLi42YzE1OTI5YzlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50
PC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVk
LnR4dAppbmRleCBkOTIyMjU4YWYyLi45N2NhZWEyN2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTMsMzUgKzMsMzUgQEAgUEFTUyBQ
YWdlIGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
NDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190
aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVt
YmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBn
b3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFz
c2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3Qg
MjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQ
QVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1
dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAog
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJh
bWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCmluZGV4IGZjZjc1
YWExZGQuLjZkOWIyMjQyZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9y
IGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiB0
aGUgbWFpbiBmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25n
Ii8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFp
bHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGM2YmU5NjY2MWMuLjM4MjM4NWFhYjQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAg
LTMsMjcgKzMsMjcgQEAgUEFTUyBQYWdlIGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBi
dXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0
MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1
dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3cuaHRtbAppbmRleCA4Yzg4ZWM2ODYxLi5iZjM4NzMwNDI2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUg
aHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVu
dGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRl
c3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBvbiB0aGUg
d2luZG93IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2NhbGU9MSI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dAppbmRleCA3
Y2UxMGMwODk2Li40NDNhODIwZTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3Jv
bGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNj
cm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
c2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xs
LWJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IEVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
c2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50
cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKaW5kZXggM2E4OTA2NTMyYi4uM2YzZDliNzJkMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3Igd2l0aCBz
Y3JvbGxJbnRvVmlldyBmb3IgbmVzdGVkIHNjcm9sbGluZyBub2RlczwvdGl0bGU+CiA8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCmluZGV4IDAwNWQyYjYwNGQuLmVhYTBmZmYw
MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBd
IC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBl
bGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQi
IGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBX
YW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CmluZGV4IGI2ZmExYzJlYzguLjI3OTlmZGNjMjkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0z
LDM1ICszLDM1IEBAIFBBU1MgaWZyYW1lIGxvYWRlZAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlM
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAor
UEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3Ro
YW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
Ci1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBn
b3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3Vi
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3Vi
ZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmcgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAppbmRleCBlNjQxZTUzZTMz
Li5lOGNjYjY2YmU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVt
ZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1l
PC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dAppbmRleCBjYzY2NWViZGI4Li4wNWViMzI3MmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTMsMjcgKzMsMjcgQEAgUEFTUyBp
ZnJhbWUgbG9hZGVkCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJ
TCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xl
c3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3Ro
IHNjcm9sbGluZyAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9u
IHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKaW5kZXggZDkzMWUwMDNkNC4uOTI2ODRkNjc0ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURP
Q1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRp
dGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBh
bmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgogPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0NDk2
Y2YyZGNiLi4wNDFmMzZlYmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC03NDgsNiArNzQ4LDE1IEBAIHdlYmtpdC5vcmcvYi8xODk1OTQg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvcGVuZGlu
Zy1zCiAKIHdlYmtpdC5vcmcvYi8xODgwNzAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zdHJlYW1zL3BpcGluZy9lcnJvci1wcm9wYWdhdGlvbi1iYWNrd2FyZC5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KIAorIyBUZXN0cyBmb3Igc21vb3RoIHNjcm9sbCBiZWhhdmlvciBkbyBub3QgYWxs
IHdvcmsgYW5kIHRoZXkgYXJlIHNsb3csIHNvIGxldCdzIGp1c3Qgc2tpcCB0aGVtLgord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMTkxMzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBbIFNraXAgXQorCisjIFRo
aXMgaXMgZmFpbGluZyBvbiBtYWMtd2sxLCB0cnkgdG8gZmlndXJlIGl0IG91dCBpbiB0aGUgZm9s
bG93LXVwIGJ1Zy4KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS5odG1sIFsgU2tpcCBdCisKIHdlYmtp
dC5vcmcvYi8xODk5MDggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10
aW1pbmcvcmVzb3VyY2VfdGltaW5nLndvcmtlci5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5v
cmcvYi8xODk3NTYgWyBNb2phdmUrIF0gY29tcG9zaXRpbmcvZmlsdGVycy9vcGFjaXR5LWNoYW5n
ZS1vbi1maWx0ZXJlZC1wYWludHMtaW50by1hbmNlc3Rvci5odG1sIFsgUGFzcyBJbWFnZU9ubHlG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTIyMDY4NzMxYy4uMGU4MTRiYmMwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTk2NCw4ICs5NjQsMTAgQEAgc2V0KFdlYkNvcmVfTk9O
X1NWR19JRExfRklMRVMKICAgICBwYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsCiAgICAg
cGFnZS9SZXNpemVPYnNlcnZlckVudHJ5LmlkbAogICAgIHBhZ2UvU2NyZWVuLmlkbAorICAgIHBh
Z2UvU2Nyb2xsQmVoYXZpb3IuaWRsCiAgICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRs
CiAgICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsCisgICAgcGFnZS9TY3JvbGxPcHRp
b25zLmlkbAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAogICAgIHBhZ2UvU2hhcmVEYXRh
LmlkbAogICAgIHBhZ2UvVW5kb0l0ZW0uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmExNmI0NDBhZC4uYTQ4
MTFmYzgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0MCBAQAorMjAxOS0xMi0xMSAgQ2F0aGll
IENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBp
T1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBzdXBwb3J0IG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybS4g
SXQgcmVsaWVzIG9uIFVJU2Nyb2xsVmlldydzCisgICAgICAgIG5hdGl2ZSBzY3JvbGwgYW5pbWF0
aW9uIHN1cHBvcnQgYW5kIGlzIGV4ZWN1dGVkIGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAg
IFRlc3RzOiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxl
bWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbAorCisgICAg
ICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBSZXF1ZXN0cyBhIG5hdGl2ZSBzY3JvbGwgYW5p
bWF0aW9uIGJ5IGNhbGxpbmcgYW5pbWF0ZWQgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKCku
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUpOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIGlmIHRoaXMgaXMgYW4g
YW5pbWF0ZWQgc2Nyb2xsIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOiBVcGRhdGUgdGhlIHNj
cm9sbCBhbmltYXRpb24gc3RhdHVzIGZyb20gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZSk6IEFkZCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbiB0byBpbmRp
Y2F0ZSBpdCdzIGFuaW1hdGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpyZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gY29uc3QpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0RpZENoYW5nZSk6IFVwZGF0ZSB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9s
bCBvciBub3QuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgdGhlIHNj
cm9sbCBpcyBhbmltYXRlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8pOiBJZiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uIGlzIHRy
dWUsIHNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MsIGV2ZW4gaWYg
dGhlIHNjcm9sbCBwb3NpdGlvbiBkb2Vzbid0IGNoYW5nZS4KKyAgICAgICAgTWFpbnRhaW4gdGhl
IHN0YXR1cyBvZiBtX3N0b3BTY3JvbGxBbmltYXRpb24gYW5kIG1fcmVxdWVzdEFuaW1hdGVkU2Ny
b2xsLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJl
bnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQpOiBBbmltYXRlZCBzY3JvbGwgd29uJ3QgY2hhbmdlIHRo
ZSBzY3JvbGwgcG9zaXRpb24gaW1tZWRpYXRlbHksIHNvIGRvbid0IG5vdGlmeSB0aGUgc2Nyb2xs
aW5nIGluZm8gbm93LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OnNldFJlcXVlc3RBbmltYXRlZFNjcm9sbCk6IG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsIGlu
ZGljYXRlcyB0aGF0IHRoaXMgaXMgYW4gYW5pbWF0ZWQgc2Nyb2xsIHJlcXVlc3QuCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Ny
b2xsIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk6IE1haW50YWluIHRoZSBzY3Jv
bGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzIGNvbnN0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbik6IElmIHRoZSBOb2RlIGlzIHBlcmZvcm1pbmcgYSBzY3JvbGwg
YW5pbWF0aW9uLCB0aGUgcHJldmlvdXMgc2Nyb2xsIGFuaW1hdGlvbiBzaG91bGQgc3RvcCBmaXJz
dC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpuZWVkc1N0
b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxUeXBlcy5oOiBBZGQgU2Nyb2xsQmVoYXZpb3JUeXBlIHRvIGluZGljYXRlIGl0J3Mg
aW5zdGFudCBvciBzbW9vdGggc2Nyb2xsLgorICAgICAgICBBZGQgU2Nyb2xsQmVoYXZpb3JTdGF0
dXMgdG8gaW5kaWNhdGUgdGhlIHN0YXR1cyBvZiBzY3JvbGxpbmcuCisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbik6IFVwZGF0ZSBTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OlNjcm9sbGFibGVBcmVhKTogQWRkIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgY29uc3QpOiBNYWludGFpbiBjdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OnNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZz
ZXQpOiBTZW5kIGEgcXVlc3Qgb2YgbmF0aXZlIHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBSZXF1ZXN0cyBhIG5hdGl2
ZSBzY3JvbGwgYW5pbWF0aW9uIGJ5IGNhbGxpbmcgYW5pbWF0ZWQgcmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKCkuCisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVz
IG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgcHJvZ3JhbW1h
dGljIHNtb290aCBzY3JvbGxpbmcgaW4gV2ViS2l0IGZyb20gdGhlIENTU09NIFZpZXcKKyAgICAg
ICAgc3BlY2lmaWNhdGlvbiBbMV0uIFRvIHVzZSB0aGlzIGVmZmVjdCwgd2ViIGRldmVsb3BlcnMg
Y2FuIHBhc3MgYSBiZWhhdmlvciBwYXJhbWV0ZXIgKGF1dG8sCisgICAgICAgIHNtb290aCwgb3Ig
aW5zdGFudCkgdG8gRWxlbWVudC5zY3JvbGwsIEVsZW1lbnQuc2Nyb2xsVG8sIEVsZW1lbnQuc2Ny
b2xsQnksCisgICAgICAgIEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcsIFdpbmRvdy5zY3JvbGwsIFdp
bmRvdy5zY3JvbGxUbyBvciBXaW5kb3cuc2Nyb2xsQnkgWzJdLiBXaGVuIGJlaGF2aW9yCisgICAg
ICAgIGlzIGF1dG8sIHRoZSBpbnN0YW50L3Ntb290aCBjaGFyYWN0ZXJpc3RpYyBpcyBhY3R1YWxs
eSB0YWtlbiBmcm9tIHRoZSB2YWx1ZSBvZiBhIG5ldyBDU1MKKyAgICAgICAgc2Nyb2xsLWJlaGF2
aW9yIHByb3BlcnR5IFszXS4gQm90aCB0aGUgbmV3IENTUyBhbmQgRE9NIGJlaGF2aW9yIGFyZSBw
cm90ZWN0ZWQgYnkgYSBydW50aW1lCisgICAgICAgIGZsYWcuCisKKyAgICAgICAgWzFdIGh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3CisgICAgICAgIFsyXSBodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jZGljdGRlZi1zY3JvbGxvcHRpb25zCisgICAgICAgIFsz
XSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVo
YXZpb3IKKworICAgICAgICBUZXN0czogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbAorICAgICAgICAg
ICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXJvb3QuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbAor
ICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKKyAgICAgICAg
ICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c3ViZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cu
aHRtbAorICAgICAgICAqIFNvdXJjZXMudHh0OiBCdWlsZCBTY3JvbGxBbmltYXRpb25TbW9vdGgu
Y3BwIG9uIGFsbCBwbGF0Zm9ybXMuCisgICAgICAgICogU291cmNlc0dUSy50eHQ6IFJlbW92ZSBT
Y3JvbGxBbmltYXRpb25TbW9vdGguY3BwIHNpbmNlIGl0IGlzIGJ1aWx0IG9uIGFsbCBwbGF0Zm9y
bXMgbm93LgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbEludG9WaWV3KTogUGFzcyBzY3JvbGwgYmVoYXZpb3IsIGlmIGFueS4KKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbFRvKTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlz
IHNtb290aC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNjcm9sbExlZnQpOiBIYW5k
bGUgdGhlIGNhc2Ugd2hlbiBzY3JvbGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6c2V0U2Nyb2xsVG9wKTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xs
IGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9sbEJ5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2Nyb2xsVG8gY29uc3QpOiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiBzY3Jv
bGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICBUaGUgb3B0aW1pemF0aW9uIG9mIGNhbmNl
bCAoMCwgMCkgc2Nyb2xsaW5nIGlzIHNraXBwZWQgaWYgYW4gYW5pbWF0ZWQgc2Nyb2xsIGlzIGlu
IHByb2dyZXNzLgorICAgICAgICBPdGhlcndpc2UsIHRoZSBwcmV2aW91cyBzY3JvbGwgd29uJ3Qg
YmUgc3RvcHBlZCBieSBhIGZvbGxvdy11cCBzY3JvbGwuCisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bik6IFN0YXJ0IGFuIGFuaW1hdGVkIHNjcm9sbC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbjo6c2Nyb2xsKTogRnVuY3Rpb24g
dG8gYW5pbWF0ZSBzY3JvbGxpbmcgdG8gYSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICAgICog
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcDogQnVpbGQgdGhpcyBmaWxlIG9uIGFs
bCBwbGF0Zm9ybXMuIEFkZCBhCisgICAgICAgIHNtb290aEZhY3RvckZvclByb2dyYW1tYXRpY1Nj
cm9sbCBwYXJhbWV0ZXIgdG8gc2xvdyBkb3duIHRoZSBzbW9vdGggc2Nyb2xsaW5nLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVQZXJBeGlzRGF0YSk6IFNjYWxlIHRo
ZSB0aW1lIHBhcmFtZXRlcnMgb2YgdGhlCisgICAgICAgIGFuaW1hdGlvbiBzbyB0aGF0IGl0IGxv
b2tzIHNtb290aGVyLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5o
OiBEZWNsYXJlIHRoZSBjbGFzcyBvbiBhbGwgcGxhdGZvcm1zLgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpT
Y3JvbGxBbmltYXRvcik6IEluaXRpYWxpemUgYW5pbWF0aW9uIG1lbWJlciBmb3IgcHJvZ3JhbW1h
dGljIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxU
b09mZnNldCk6IEFuaW1hdGUgc2Nyb2xsaW5nIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucyk6IENvcHkg
bG9naWMgZnJvbSBTY3JvbGxBbmltYXRpb25TbW9vdGguY3BwLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VTY3JvbGxBbmltYXRpb25zKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFkZEhvcml6b250
YWxTY3JvbGxiYXIpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
OiBOZXcgYW5pbWF0aW9uIG1lbWJlciBmb3Igc21vb3RoIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OmNhbmNl
bEFuaW1hdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6
OlNjcm9sbEFuaW1hdG9yOjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OndpbGxFbmRMaXZl
UmVzaXplKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3Jv
bGxBbmltYXRvcjo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFs
U2Nyb2xsYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oOiBB
ZGQgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgdG8gaW5kaWNhdGUgdGhlIHN0YXR1cyBvZiBzY3JvbGxp
bmcuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6IEZvbGxvdyB0aGUgQ1NTT00gVmlldyBz
cGVjOiBJZiBhIHNjcm9sbCBpcyBpbgorICAgICAgICBwcm9ncmVzcywgd2UgaW50ZXJydXB0IGl0
IGFuZCBjb250aW51ZSB0aGUgc2Nyb2xsIGNhbGwgKGV2ZW4gd2hlbiB3ZSBhcmUgYXQgdGhlIGZp
bmFsIHBvc2l0aW9uKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFscyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUFuaW1hdGlvbik6
IFRvIGF2b2lkIGl0ZXJhdGUgY2FsbGluZywKKyAgICAgICAgbW92ZSB0aGUgcmVxdWVzdFNjcm9s
bFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uKSBjaGVja2luZyBvdXQgb2Ygc2V0U2Nyb2xsT2Zmc2V0
RnJvbUFuaW1hdGlvbigpLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6Y3VycmVudFNjcm9sbEJlaGF2aW9yU3Rh
dHVzIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvckdlbmVyaWM6OnVwZGF0ZVBvc2l0aW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2VsQW5pbWF0aW9ucyk6IENhbGwgcGFyZW50IG1l
bWJlciB0byBoYW5kbGUgcHJvZ3JhbW1hdGljIHNjcm9sbGluZy4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xs
TGVmdCk6IEFkZCBmbGFnIHRvIGluZGljYXRlIGFuaW1hdGVkIG9yIG5vdC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xsVG9wKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb1hQb3NpdGlvbik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQpOiBGb2xsb3cgdGhlIENTU09NIFZp
ZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGludGVycnVw
dCBpdCBhbmQgY29udGludWUgdGhlIHNjcm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJlIGF0IHRo
ZSBmaW5hbAorICAgICAgICBwb3NpdGlvbikuIEl0J3MgU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0
YW50IHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZXF1ZXN0U2Nyb2xs
UG9zaXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
T2Zmc2V0V2l0aEFuaW1hdGlvbik6IERpdHRvLiBUaGlzIGlzIHNpbWlsYXIgdG8gc2Nyb2xsVG9P
ZmZzZXQKKyAgICAgICAgYnV0IGFuaW1hdGVzIHRoZSBzY3JvbGwuIEl0J3MgU2Nyb2xsQmVoYXZp
b3JUeXBlOjpTbW9vdGggc2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNj
cm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNp
YmxlKTogQWdhaW4gZG9uJ3QgZG8gYW4gZWFybHkgcmV0dXJuIGlmIHNjcm9sbCBpcyBpbgorICAg
ICAgICBwcm9ncmVzcy4gV2UgY2FsbCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24gaW5zdGVh
ZCBvZiBzY3JvbGxUb09mZnNldCB3aGVuIGFwcHJvcHJpYXRlLgorICAgICAgICBOb3RlIHRoYXQg
dGhpcyBmdW5jdGlvbiBtYXkgbm90IHdvcmsgd2VsbCBmb3Igc2V2ZXJhbCBuZXN0ZWQgc2Nyb2xs
IGJveGVzIHdpdGggYXQgbGVhc3Qgb25lCisgICAgICAgIGVsZW1lbnQgd2l0aCBzbW9vdGggYmVo
YXZpb3IuIEl0IHdpbGwgaGFuZGxlZCBpbiBidWcgRm9sbG93LgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5oOiBBZGQgc2Nyb2xsIGJlaGF2aW9yIHRvIFNjcm9sbFRlY3RUb1Zpc2li
bGVPcHRpb25zLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldFNjcm9sbExlZnQpOiBBZGQgYW5pbWF0ZWQg
ZmxhZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldFNjcm9sbFRvcCk6IERp
dHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbExlZnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3ApOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVu
Y29uc3RyYWluZWRTY3JvbGxUbyk6CisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGll
Y2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZp
b3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAg
ICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHBhcnNpbmcgc2Nyb2xsLWJlaGF2aW9yIGNzcyBwcm9wZXJ0eSBhbmQgU2Ny
b2xsT3B0aW9ucy4KKworICAgICAgICBUZXN0czogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIElETCBmaWxlcyBmb3IgU2Nyb2xsT3B0aW9ucyBhbmQg
U2Nyb2xsQmVoYXZpb3IuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOiBBZGQgaGVhZGVycyBmb3IgU2Nyb2xsQmVoYXZvciBhbmQgU2Nyb2xs
T3B0aW9ucy4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkIFNjcm9sbEJlaGF2b3IgYW5kIFNj
cm9sbE9wdGlvbnMgaW1wbGVtZW50YXRpb24uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBBZGQgZmlsZXMgdG8gdGhlIGJ1aWxkIHN5c3RlbS4KKyAgICAgICAg
KiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDogSGFuZGxlIHNjcm9sbC1iZWhh
dmlvci4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9y
UHJvcGVydHlJblN0eWxlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydGllcy5qc29uOiBBZGQg
c2Nyb2xsLWJlaGF2aW9yLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOiBBZGQg
a2V5d29yZHMgZm9yIHNjcm9sbC1iZWhhdmlvci4KKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Bh
cnNlckNvbnRleHQuY3BwOiBBZGQgcnVudGltZSBjb25maWcgZm9yIHNjcm9sbC1iZWhhdmlvci4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0Lmg6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyQ29udGV4
dEhhc2g6Omhhc2gpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNw
cDogUmVtb3ZlIHNjcm9sbC1iZWhhdmlvciB0ZW1wbGF0ZXMuIEl0IGlzIGhhbmRsZWQgaW4gdGhl
IHNsb3cgcGF0aCBzaW5jZSBwcm9wZXJ0eSBjYW4gYmUgZGlzYWJsZWQuCisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5
SUQpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3VtZVNjcm9sbEJlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKTogUGFyc2Ugc2Nyb2xsLWJlaGF2aW9y
IChvbmx5IGlmIGVuYWJsZWQpLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnVzZVNtb290aFNjcm9sbGluZyk6IEhlbHBlciBmdW5j
aXRvbiB0byBkZXRlcm1pbmUgdGhlIHNjcm9sbCBiZWhhdmlvciB0byBhcHBseSB0byBhbiBlbGVt
ZW50IGZyb20gdGhlIENTUyBhbmQgRE9NIGJlaGF2aW9yLgorICAgICAgICAqIHBhZ2UvU2Nyb2xs
QmVoYXZpb3IuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxCZWhhdmlvci5pZGw6IEFk
ZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmg6IE1ha2UgdGhpcyBj
bGFzcyBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbi4gQWxzbyByZW1vdmUgdW5uZWNlc3Nhcnkg
Zm9yd2FyZCBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEludG9WaWV3T3B0aW9u
cy5pZGw6IE1ha2UgdGhpcyBjbGFzcyBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbi4KKyAgICAg
ICAgKiBwYWdlL1Njcm9sbE9wdGlvbnMuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxP
cHRpb25zLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxUb09wdGlvbnMuaDogTWFr
ZSB0aGlzIHN0cnVjdCBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbnMuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxUb09wdGlvbnM6OlNjcm9sbFRvT3B0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
Ojpub3JtYWxpemVOb25GaW5pdGVDb29yZGluYXRlc09yRmFsbEJhY2tUbyk6IENvcHkgdGhlIGN1
cnJlbnQgU2Nyb2xsVG9PcHRpb25zIHNvIHRoYXQgdGhlIHNjcm9sbCBiZWhhdmlvciBpcyBwcmVz
ZXJ2ZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xh
c3MgaW5oZXJpdCBmcm9tIFNjcm9sbE9wdGlvbnMuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55
YW1sOiBOZXcgc2V0dGluZyBmb3IgQ1NTT00gVmlldyBzbW9vdGggc2Nyb2xsaW5nLgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOiBIYW5kbGUgJ3Ntb290aCBzY3JvbGxp
bmcnIGJvb2xlYW4gZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjp1c2VTbW9v
dGhTY3JvbGxpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFVz
ZVNtb290aFNjcm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5pdGlh
bFVzZVNtb290aFNjcm9sbGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAq
IHN0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTbW9vdGhTY3JvbGxpbmcpOgorCiAyMDE5LTEyLTEw
ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXhlZCBQ
YXR0ZXJuLmggY29tcGlsZSBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
MGJmYWJlY2E0My4uZTk3MTRjODVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC05MTUsOCArOTE1LDEwIEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3Bh
Z2UvUmVzaXplT2JzZXJ2ZXJDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9SZXNp
emVPYnNlcnZlckVudHJ5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1NjcmVlbi5pZGwgXAor
ICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxCZWhhdmlvci5pZGwgXAogICAgICQoV2ViQ29yZSkv
cGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbE9wdGlv
bnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9wYWdlL1NoYXJlRGF0YS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9VbmRv
SXRlbS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZWU4OWVlM2YwYy4uMmYxNzcyNjBmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCkBAIC04MTYsOCArODE2LDEwIEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1JlbW90ZUZyYW1lLmgKICAgICBwYWdlL1Jl
bmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCiAgICAgcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgKKyAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmgKICAgICBwYWdlL1Njcm9sbEludG9WaWV3T3B0
aW9ucy5oCiAgICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaAorICAgIHBhZ2UvU2Nyb2xs
T3B0aW9ucy5oCiAgICAgcGFnZS9TY3JvbGxUb09wdGlvbnMuaAogICAgIHBhZ2UvU2VjdXJpdHlP
cmlnaW4uaAogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
YmNhNzNjZjllNy4uM2U2ODA0NGYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE2NDcsNiArMTY0Nyw3
IEBAIHBhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwCiBwYWdlL1Jlc291cmNlVXNhZ2VUaHJl
YWQuY3BwCiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCiBwYWdlL1NjcmVlbi5jcHAK
K3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAogcGFnZS9T
ZWN1cml0eU9yaWdpbkRhdGEuY3BwCiBwYWdlL1NlY3VyaXR5UG9saWN5LmNwcApAQCAtMTc1Miw2
ICsxNzUzLDcgQEAgcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAogcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAogcGxhdGZvcm0vU1NMS2V5R2VuZXJhdG9yLmNw
cAogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCitwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguY3BwCiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAogcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC0zMzc2LDggKzMzNzgsMTAgQEAgSlNT
Vkdab29tQW5kUGFuLmNwcAogSlNTVkdab29tRXZlbnQuY3BwCiBKU1NjcmVlbi5jcHAKIEpTU2Ny
aXB0UHJvY2Vzc29yTm9kZS5jcHAKK0pTU2Nyb2xsQmVoYXZpb3IuY3BwCiBKU1Njcm9sbEludG9W
aWV3T3B0aW9ucy5jcHAKIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcAorSlNTY3JvbGxPcHRp
b25zLmNwcAogSlNTY3JvbGxUb09wdGlvbnMuY3BwCiBKU1NlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQuY3BwCiBKU1NlcnZpY2VXb3JrZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CmluZGV4IGMy
YzI3MDliODcuLjU0YjUzNmVkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNH
VEsudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CkBAIC02Myw3ICs2Myw2
IEBAIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuY3BwCiBw
YWdlL3Njcm9sbGluZy9nZW5lcmljL1Njcm9sbGluZ1RocmVhZEdlbmVyaWMuY3BwCiAKIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuY3BwCi1wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguY3BwCiBwbGF0Zm9ybS9Vc2VyQWdlbnRRdWlya3MuY3BwCiAKIHBsYXRmb3JtL2dlbmVy
aWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAzZTZmNTQzM2IuLmJjOTk3MDZlODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTIzOTcsNiArMjM5Nyw4IEBACiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAvKiBW
aXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFFOEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5n
ZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNUVCMCAvKiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDEx
REE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IH07CiAJCTgz
NDQ3NkVGMURBNUJDNUUwMDJCNUVDMSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1QTUx
RTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi87IH07CisJCTgzNDQ3NkVG
MURBNUJDNUUwMDJCNkVCMCAvKiBKU1Njcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyog
SlNTY3JvbGxCZWhhdmlvci5oICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQzEgLyog
SlNTY3JvbGxPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmggKi87
IH07CiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1
QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi87IH07CiAJCTgzNDhCRkFDMUI4
NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDhCRkFBMUI4NTcyOTUwMDkxMkYzNiAvKiBDbGFz
c0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODM0REZBRDAxRjdEQUU1RDAwQzI3MjVCIC8qIFNoYXJl
ZFN0cmluZ0hhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNERGQUNDMUY3REFFNTYwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI0NTEsNiArMjQ1
Myw4IEBACiAJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9uQnViYmxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0M0NUI4RDFE
QzJCNjdDMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzQzU3OTVEMURBNUMzMDEwMDZGOUM4NiAv
KiBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dpY2Fs
UG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFE
QTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZB
Qzg2IC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4M0M1
Nzk1RDFEQTVDMzAxMDA2RkFDOTcgLyogU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDQTggLyogU2Nyb2xsVG9PcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFE
QTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNEMzVBRUMxQzcxODdGQTAwRjcwRDVBIC8q
IFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUVBMUM3MTg3RUQwMEY3MEQ1QSAvKiBYTUxIdHRwUmVx
dWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDM1QUYyMUM3MThEOTAwMEY3MEQ1QSAvKiBK
U1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBKU1hNTEh0dHBS
ZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKQEAgLTEwMTY3LDkgKzEwMTcxLDE0IEBACiAJCTgz
NERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFN0cmluZ0hhc2guY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xs
TG9naWNhbFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bExvZ2ljYWxQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNF
NzFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVo
YXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQmVoYXZpb3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM0
IC8qIFNjcm9sbEJlaGF2aW9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2Nyb2xsQmVoYXZpb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNF
NzFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsVG9PcHRpb25zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dp
Y2FsUG9zaXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbExvZ2ljYWxQb3Np
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIw
MDM1NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNjcm9sbEludG9WaWV3T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU2Nyb2xsQmVoYXZpb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2Nyb2xsT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlv
bnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbFRvT3B0aW9ucy5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTIwQzdEMUE3MUJGQ0MwMDZCRDJBQSAvKiBDU1NG
b250RmFtaWx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZvbnRGYW1p
bHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1NjU3QzYxRUNBQjBFODAwQ0RF
NzJEIC8qIEpTRE9NTWF0cml4SW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0RPTU1hdHJpeEluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTAyOTEsOSArMTAzMDAsMTMgQEAKIAkJODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5h
dGl2ZU5vZGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZl
Tm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMDFEQTVB
NTFFMDBGRkQ4RDQgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkQ4RTUgLyogSlNT
Y3JvbGxJbnRvVmlld09wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1Njcm9sbE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
M0U5QjMwMDFEQTVBNTFFMDBGRkU4RjYgLyogSlNTY3JvbGxUb09wdGlvbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxUb09wdGlvbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkQ4RDQgLyogSlNT
Y3JvbGxMb2dpY2FsUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODNFOUIzMDExREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThENCAv
KiBKU1Njcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
U2Nyb2xsQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDEx
REE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1Njcm9sbE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsVG9PcHRpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1OThCMUY1MDk1OEIwMDNFOEIzMCAvKiBKU0Vy
cm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFcnJvckNh
bGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1OThDMUY1MDk1OEIw
MDNFOEIzMCAvKiBKU0Vycm9yQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNFcnJvckNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIwNzY4LDEwICsyMDc4MSwxNSBAQAogCQkJCUJDRUMwMUJBMEMyNzREQUMwMDlGNEVD
OSAvKiBTY3JlZW4uY3BwICovLAogCQkJCUJDRUMwMUJCMEMyNzREQUMwMDlGNEVDOSAvKiBTY3Jl
ZW4uaCAqLywKIAkJCQlCQ0VDMDFCQzBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmlkbCAqLywK
KwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MzQgLyogU2Nyb2xsQmVoYXZpb3IuY3BwICovLAor
CQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5oICovLAorCQkJ
CTgzNTBDM0U4MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5pZGwgKi8sCiAJCQkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3T3B0aW9ucy5oICovLAog
CQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRs
ICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dpY2FsUG9zaXRp
b24uaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBv
c2l0aW9uLmlkbCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0
aW9ucy5oICovLAorCQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25z
LmlkbCAqLywKIAkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25z
LmggKi8sCiAJCQkJODM1MEMzRTgxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5p
ZGwgKi8sCiAJCQkJQkNEMEUwRjcwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmNw
cCAqLywKQEAgLTI1NTYzLDEwICsyNTU4MSwxNCBAQAogCQkJCTU4QjJGQTAyMjIzMkQ2MEEwMDkz
OEQ2MyAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnkuaCAqLywKIAkJCQlCQ0VDMDFDMDBDMjc0RERE
MDA5RjRFQzkgLyogSlNTY3JlZW4uY3BwICovLAogCQkJCUJDRUMwMUMxMEMyNzREREQwMDlGNEVD
OSAvKiBKU1NjcmVlbi5oICovLAorCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThENCAvKiBKU1Nj
cm9sbEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyogSlNT
Y3JvbGxCZWhhdmlvci5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Nj
cm9sbEludG9WaWV3T3B0aW9ucy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEU1
IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8sCiAJCQkJODNFOUIzMDAxREE1QTUxRTAw
RkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcCAqLywKIAkJCQk4M0U5QjMwMTFE
QTVBNTFFMDBGRkQ4RDQgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCAqLywKKwkJCQk4M0U5
QjMwMDFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmNwcCAqLywKKwkJCQk4M0U5
QjMwMTFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmggKi8sCiAJCQkJODNFOUIz
MDAxREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmNwcCAqLywKIAkJCQk4M0U5
QjMwMTFEQTVBNTFFMDBGRkU4RjYgLyogSlNTY3JvbGxUb09wdGlvbnMuaCAqLywKIAkJCQk3Qzcz
RkIwRjE5MUVGNkY0MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXIuY3BwICovLApAQCAt
MzA5MTIsOCArMzA5MzQsMTAgQEAKIAkJCQk1RTJDNDM2QzFCQ0YwNzFFMDAwMUUyQkMgLyogSlNS
VENUcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFDMzBDMjc0REREMDA5RjRF
QzkgLyogSlNTY3JlZW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUNFMTJCMDNGNjEwMDNB
NTgzQSAvKiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzNDQ3
NkVGMURBNUJDNUUwMDJCNkVCMCAvKiBKU1Njcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQzEgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNUVCMCAvKiBKU1Njcm9s
bExvZ2ljYWxQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJODM0NDc2RUYxREE1QkM1RTAw
MkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUQyIC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRUQwNkFEMTFDNzc3NTQ4MDBGREZBRjEgLyogSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTgyQzI1NjFGMzE0M0NEMDA1OUJBN0MgLyogSlNT
ZXJ2aWNlV29ya2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTE3LDYgKzMyMTQxLDcgQEAKIAkJ
CQk0NEM5OTE4NjBGM0QxRUJFMDA1ODY2NzAgLyogU2Nyb2xsYmFyVGhlbWVJT1MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDOEI4NTNFMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3JvbGxiYXJUaGVtZU1h
Yy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNzE0MDYxNDIxNzBCODAwREIzM0JBIC8qIFNjcm9s
bGJhclRoZW1lTW9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZB
Qzg2IC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE4NEYwNTE0M0JB
N0JEMDA1MUQxNTMgLyogU2Nyb2xsQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2
MDVBRUQxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUY2MkVFODE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzIxNTMsNiArMzIxNzgsNyBAQAogCQkJCTgzQzU3OTVE
MURBNUMzMDEwMDZGOUM5NyAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdBQUZFOEQwMTlDQjg2NzIwMDBGNTZEOCAvKiBTY3JvbGxMYXRjaGluZ1N0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFD
OTcgLyogU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ3ODc1NTQxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNDY3MjkyODFFMERFNjg1MDBBQ0MzRDggLyogU2Nyb2xsU25hcE9mZnNldHNJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDQTggLyogU2Nyb2xsVG9PcHRp
b25zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMWM0ZTM2ZjE0OS4uZDRhYmYyM2I3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKQEAgLTMzOTMsNiArMzM5MywxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVF
eHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAg
ICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlQXV0byk7CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZVRvdWNoKTsKICNlbmRpZgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
U2Nyb2xsQmVoYXZpb3I6CisgICAgICAgICAgICBpZiAoIXN0eWxlLnVzZVNtb290aFNjcm9sbGlu
ZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmll
clZhbHVlKENTU1ZhbHVlQXV0byk7CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVNtb290aCk7CiAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlQZXJzcGVjdGl2ZToKICAgICAgICAgICAgIGlmICghc3R5bGUuaGFzUGVyc3BlY3RpdmUo
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZU5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KaW5k
ZXggNDE1NzhhOTRlZC4uZjk4MmQzZjVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGll
cy5qc29uCkBAIC0zNTU3LDYgKzM1NTcsMTYgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0
dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcvc2hhcGVzLmh0bWwiCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0sCisgICAgICAgICJzY3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAgICAidmFsdWVz
IjogWworICAgICAgICAgICAgICAgICJhdXRvIiwKKyAgICAgICAgICAgICAgICAic21vb3RoIgor
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAg
ICAgICAgICJjYXRlZ29yeSI6ICJjc3NvbS12aWV3IiwKKyAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInNoYXBlLXJlbmRlcmlu
ZyI6IHsKICAgICAgICAgICAgICJpbmhlcml0ZWQiOiB0cnVlLAogICAgICAgICAgICAgInZhbHVl
cyI6IFsKQEAgLTY0ODksNiArNjQ5OSwyMiBAQAogICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0
cHM6Ly93d3cudzMub3JnL1RSL2Nzcy11aS00LyNwcm9wZGVmLXVzZXItc2VsZWN0IgogICAgICAg
ICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Nyb2xsLWJlaGF2aW9yIjogeworICAgICAg
ICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiYXV0byIsCisgICAgICAgICAgICAg
ICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0
aWVzIjogeworICAgICAgICAgICAgICAgICJjb252ZXJ0ZXIiOiAiU21vb3RoU2Nyb2xsaW5nIiwK
KyAgICAgICAgICAgICAgICAibmFtZS1mb3ItbWV0aG9kcyI6ICJVc2VTbW9vdGhTY3JvbGxpbmci
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAgICAgICAgICAgICAg
ICAic3RhdHVzIjogImV4cGVyaW1lbnRhbCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAi
c3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInNjcm9sbC1wYWRkaW5nIjogewogICAgICAgICAg
ICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAiZW5hYmxlLWlmIjog
IkVOQUJMRV9DU1NfU0NST0xMX1NOQVAiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgppbmRleCA4ZGZlM2FiYjIxLi5kYTgyNjllNjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTM4OCw2ICsxMzg4LDEwIEBAIHBhbi15CiBwaW5jaC16b29t
CiAjZW5kaWYKIAorLy8gc2Nyb2xsLWJlaGF2aW9yCisvLyBhdXRvCitzbW9vdGgKKwogLy8gaGFu
Z2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKaW5kZXggNzUzNzE4OGNiOS4uNzFmOWFhNjJj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3Bw
CkBAIC03NSw2ICs3NSw3IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoY29u
c3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAgICAgYXR0YWNobWVu
dEVuYWJsZWQgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmF0dGFj
aG1lbnRFbGVtZW50RW5hYmxlZCgpOwogI2VuZGlmCiAgICAgZGVmZXJyZWRDU1NQYXJzZXJFbmFi
bGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQoKTsKKyAg
ICBzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLkNTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWQoKTsKICAgICB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gZG9jdW1l
bnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxz
ZTsKIH0KIApAQCAtOTksNiArMTAwLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuYXR0
YWNobWVudEVuYWJsZWQgPT0gYi5hdHRhY2htZW50RW5hYmxlZAogI2VuZGlmCiAgICAgICAgICYm
IGEuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVk
CisgICAgICAgICYmIGEuc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIuc2Nyb2xsQmVoYXZpb3JF
bmFibGVkCiAgICAgICAgICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0Rv
Y3VtZW50U2VjdXJpdHlPcmlnaW4KICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09
IGIudXNlU3lzdGVtQXBwZWFyYW5jZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJDb250ZXh0LmgKaW5kZXggODY1MjVmZDcwYy4uYzc0ZGM5NGMyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTY1LDYgKzY1LDcg
QEAgcHVibGljOgogICAgIGJvb2wgYXR0YWNobWVudEVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlm
CiAgICAgYm9vbCBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wg
c2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAgICAvLyBUaGlzIGlzIG9u
bHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgogICAgIGJvb2wgaGFzRG9j
dW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMTYsNyArMTE3LDggQEAgc3RydWN0
IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
ICAgICAgICAgICAgJiBrZXkuYXR0YWNobWVudEVuYWJsZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgPDwgMTEKICNlbmRpZgotICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPDwgMTI7IC8vIEtlZXAgdGhpcyBsYXN0LgorICAgICAgICAg
ICAgJiBrZXkuc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICAgICAgPDwgMTIK
KyAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDw8IDEzOyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAgICAgaGFzaCBePSBXVEY6OmludEhh
c2goYml0cyk7CiAgICAgICAgIHJldHVybiBoYXNoOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRleCAzMWQxMmFiOWFiLi40
MjEyODg5ZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckZhc3RQYXRocy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJG
YXN0UGF0aHMuY3BwCkBAIC02MzYsMTAgKzYzNiw2IEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBhdGhz
Ojppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlk
CiAgICAgICAgICAgICB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3RpY2t5IHx8IHZhbHVlSUQgPT0g
Q1NTVmFsdWVXZWJraXRTdGlja3k7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJlc2l6ZTogLy8gbm9u
ZSB8IGJvdGggfCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBhdXRvCiAgICAgICAgIHJldHVybiB2
YWx1ZUlEID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQm90aCB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlSG9yaXpvbnRhbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVmVydGljYWwg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG87Ci0gICAgLy8gRklYTUUtTkVXUEFSU0VSOiBJbnZl
c3RpZ2F0ZSB0aGlzIHByb3BlcnR5LgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhh
dmlvcjogLy8gYXV0byB8IHNtb290aAotICAgIC8vICAgICBBU1NFUlQoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6Y3Nzb21TbW9vdGhTY3JvbGxFbmFibGVkKCkpOwotICAgIC8vICAgcmV0dXJuIHZh
bHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTbW9vdGg7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVNoYXBlUmVuZGVyaW5nOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9
PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU9wdGltaXplU3BlZWQgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZUNyaXNwZWRnZXMgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUdlb21ldHJp
Y1ByZWNpc2lvbjsKICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlTGluZWpvaW46CkBAIC05Mzks
NyArOTM1LDYgQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5SUQo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlGb250S2Vy
bmluZzoKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5SHlwaGVuczoKICAgICAvLyBjYXNlIENTU1By
b3BlcnR5T3ZlcmZsb3dBbmNob3I6Ci0gICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2
aW9yOgogICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxTbmFwVHlwZToKICAgICAvLyBjYXNl
IENTU1Byb3BlcnR5VGV4dEFsaWduTGFzdDoKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5VGV4dENv
bWJpbmVVcHJpZ2h0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcAppbmRleCBlYmQwZWFmNWY2Li42M2Y1YWI1MmY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjMyNyw2ICsyMzI3
LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBjb25zdW1lU2Nyb2xsU25hcFR5cGUo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAKICNlbmRpZgogCitzdGF0aWMgUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0gcmFuZ2UucGVlaygpLmlkKCk7CisgICAg
aWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVTbW9vdGgp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2Up
OworfQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVyUmFkaXVzQ29ybmVy
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUp
CiB7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEgPSBjb25zdW1l
TGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRp
dmUpOwpAQCAtMzkyNyw2ICszOTM1LDEwIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQ
YXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVNjcm9sbFNuYXBUeXBlOgogICAgICAgICByZXR1cm4gY29uc3VtZVNj
cm9sbFNuYXBUeXBlKG1fcmFuZ2UpOwogI2VuZGlmCisgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9s
bEJlaGF2aW9yOgorICAgICAgICBpZiAoIW1fY29udGV4dC5zY3JvbGxCZWhhdmlvckVuYWJsZWQp
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3Jv
bGxCZWhhdmlvcihtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDoKICAgICAgICAg
cmV0dXJuIGNvbnN1bWVDbGlwKG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKICNpZiBFTkFCTEUo
UE9JTlRFUl9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNzBkOWUxYjBhZS4uYmU1
YTg1MjZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODMyLDcgKzgzMiw2IEBAIHZvaWQg
RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoT3B0aW9uYWw8VmFyaWFudDxib29sLCBTY3JvbGxJbnRv
Vmlld09wdGlvbnM+PiYmIGFyCiAgICAgYm9vbCBpbnNpZGVGaXhlZDsKICAgICBMYXlvdXRSZWN0
IGFic29sdXRlQm91bmRzID0gcmVuZGVyZXIoKS0+YWJzb2x1dGVBbmNob3JSZWN0KCZpbnNpZGVG
aXhlZCk7CiAKLSAgICAvLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQzKTogU3VwcG9ydCBTY3Jv
bGxCZWhhdmlvci4KICAgICBTY3JvbGxJbnRvVmlld09wdGlvbnMgb3B0aW9uczsKICAgICBpZiAo
YXJnKSB7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBhcmcudmFsdWUoKTsKQEAgLTg1MSw3ICs4NTAs
OCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwg
U2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgogICAgICAgICBTZWxlY3Rpb25SZXZlYWxNb2Rl
OjpSZXZlYWwsCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFsaWduWCA6IGFsaWduWSwKICAgICAg
ICAgaXNIb3Jpem9udGFsID8gYWxpZ25ZIDogYWxpZ25YLAotICAgICAgICBTaG91bGRBbGxvd0Ny
b3NzT3JpZ2luU2Nyb2xsaW5nOjpObworICAgICAgICBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Ny
b2xsaW5nOjpObywKKyAgICAgICAgb3B0aW9ucy5iZWhhdmlvci52YWx1ZU9yKFNjcm9sbEJlaGF2
aW9yOjpBdXRvKQogICAgIH07CiAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShh
YnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIHZpc2libGVPcHRpb25zKTsKIH0KQEAgLTkxMiw3
ICs5MTIsNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYg
b3B0aW9ucykKIAogdm9pZCBFbGVtZW50OjpzY3JvbGxCeShkb3VibGUgeCwgZG91YmxlIHkpCiB7
Ci0gICAgc2Nyb2xsQnkoeyB4LCB5IH0pOworICAgIHNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9ucyh4
LCB5KSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25z
JiBvcHRpb25zLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKQEAgLTk0OCwxMyArOTQ4LDE3IEBA
IHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBT
Y3JvbGxDbGFtcGluZyBjbGFtcGluZykKICAgICAgICAgYWRqdXN0Rm9yQWJzb2x1dGVab29tKHJl
bmRlcmVyLT5zY3JvbGxMZWZ0KCksICpyZW5kZXJlciksCiAgICAgICAgIGFkanVzdEZvckFic29s
dXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsVG9wKCksICpyZW5kZXJlcikKICAgICApOwotICAgIHJl
bmRlcmVyLT5zZXRTY3JvbGxMZWZ0KGNsYW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy5sZWZ0
LnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKLSAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKGNs
YW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgY2xhbXBpbmcp
OworICAgIEludFBvaW50IHNjcm9sbFBvc2l0aW9uKAorICAgICAgICBjbGFtcFRvSW50ZWdlcihz
Y3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZl
Wm9vbSgpKSwKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLnRvcC52YWx1
ZSgpICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKQorICAgICk7CisgICAgYm9v
bCBhbmltYXRlZCA9IHVzZVNtb290aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3Iu
dmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0byksICp0aGlzKTsKKyAgICByZW5kZXJlci0+c2V0
U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
YW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxUbyhkb3VibGUg
eCwgZG91YmxlIHkpCiB7Ci0gICAgc2Nyb2xsVG8oeyB4LCB5IH0pOworICAgIHNjcm9sbFRvKFNj
cm9sbFRvT3B0aW9ucyh4LCB5KSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsQnlVbml0cyhp
bnQgdW5pdHMsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMTI4OCwxMyArMTI5
MiwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQpCiAgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlm
IChkb2N1bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKLSAgICAgICAgICAg
IGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGlu
dD4obmV3TGVmdCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVG
YWN0b3IoKSksIGZyYW1lLT52aWV3KCktPnNjcm9sbFkoKSkpOworICAgICAgICBpZiAoYXV0byog
ZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAg
ICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1MDU5CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gZG9jdW1lbnQoKS5kb2N1bWVudEVs
ZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICpkb2N1
bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnNl
dFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4obmV3TGVmdCAqIGZyYW1l
LT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSksIGZyYW1lLT52
aWV3KCktPnNjcm9sbFkoKSksIGFuaW1hdGVkKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcmVuZGVyQm94KCkpIHsKLSAgICAg
ICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoc3RhdGljX2Nhc3Q8aW50PihuZXdMZWZ0ICogcmVu
ZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGlj
KTsKKyAgICAgICAgaW50IGNsYW1wZWRMZWZ0ID0gY2xhbXBUb0ludGVnZXIobmV3TGVmdCAqIHJl
bmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGJvb2wgYW5pbWF0ZWQg
PSB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICp0aGlzKTsKKyAgICAg
ICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoY2xhbXBlZExlZnQsIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYywgYW5pbWF0ZWQpOwogICAgICAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBy
ZW5kZXJlci0+bGF5ZXIoKSkKICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxT
aG91bGRDbGVhckxhdGNoZWRTdGF0ZSh0cnVlKTsKICAgICB9CkBAIC0xMzA1LDEzICsxMzE1LDE5
IEBAIHZvaWQgRWxlbWVudDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3ApCiAgICAgZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlmIChkb2N1
bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKLSAgICAgICAgICAgIGZyYW1l
LT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZyYW1lLT52aWV3KCktPnNjcm9s
bFgoKSwgc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAq
IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKSk7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9
IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkgeworICAgICAgICAgICAgLy8gRklYTUU6
IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgpPworICAgICAgICAg
ICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkK
KyAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgp
ICYmIHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvcjo6QXV0bywgKmRvY3VtZW50KCku
ZG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xs
UG9zaXRpb24oSW50UG9pbnQoZnJhbWUtPnZpZXcoKS0+c2Nyb2xsWCgpLCBzdGF0aWNfY2FzdDxp
bnQ+KG5ld1RvcCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVG
YWN0b3IoKSkpLCBhbmltYXRlZCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKSB7Ci0gICAgICAgIHJlbmRl
cmVyLT5zZXRTY3JvbGxUb3Aoc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiByZW5kZXJlci0+c3R5
bGUoKS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOworICAgICAg
ICBpbnQgY2xhbXBlZFRvcCA9IGNsYW1wVG9JbnRlZ2VyKG5ld1RvcCAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9vdGhT
Y3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICp0aGlzKTsKKyAgICAgICAgcmVuZGVyZXIt
PnNldFNjcm9sbFRvcChjbGFtcGVkVG9wLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1h
dGVkKTsKICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVy
KCkpCiAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRj
aGVkU3RhdGUodHJ1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDA1
NjhiMDY5ZGMuLmY5ZTQzMjdkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE1
OTUsNyArMTU5NSw3IEBAIGRvdWJsZSBET01XaW5kb3c6OmRldmljZVBpeGVsUmF0aW8oKSBjb25z
dAogCiB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5KSBjb25zdAog
ewotICAgIHNjcm9sbEJ5KHsgeCwgeSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMo
eCwgeSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsQnkoY29uc3QgU2Nyb2xsVG9PcHRp
b25zJiBvcHRpb25zKSBjb25zdApAQCAtMTYxNywxMCArMTYxNywxMCBAQCB2b2lkIERPTVdpbmRv
dzo6c2Nyb2xsQnkoY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zKSBjb25zdAogCiB2b2lk
IERPTVdpbmRvdzo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5LCBTY3JvbGxDbGFtcGluZyBj
bGFtcGluZykgY29uc3QKIHsKLSAgICBzY3JvbGxUbyh7IHgsIHkgfSwgY2xhbXBpbmcpOworICAg
IHNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucyh4LCB5KSwgY2xhbXBpbmcpOwogfQogCi12b2lkIERP
TVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3JvbGxD
bGFtcGluZykgY29uc3QKK3ZvaWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09w
dGlvbnMmIG9wdGlvbnMsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKSBjb25zdAogewogICAgIGlm
ICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE2
MzMsMTIgKzE2MzMsMjIgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRv
T3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0CiAgICAgICAgIHZpZXctPmNv
bnRlbnRzU2Nyb2xsUG9zaXRpb24oKS54KCksIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24o
KS55KCkKICAgICApOwogCi0gICAgaWYgKCFzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICYm
ICFzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkgJiYgdmlldy0+Y29udGVudHNTY3JvbGxQb3Np
dGlvbigpID09IEludFBvaW50KDAsIDApKQorICAgIC8vIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9u
IGZvciB0aGUgY29tbW9uIGNhc2Ugb2Ygc2Nyb2xsaW5nIHRvICgwLCAwKSB3aGVuIHRoZSBzY3Jv
bGxlciBpcyBhbHJlYWR5IGF0IHRoZSBvcmlnaW4uCisgICAgLy8gSWYgYW4gYW5pbWF0ZWQgc2Ny
b2xsIGlzIGluIHByb2dyZXNzLCB0aGlzIG9wdGltaXphdGlvbiBpcyBza2lwcGVkIHRvIGVuc3Vy
ZSB0aGF0IHRoZSBhbmltYXRlZCBzY3JvbGwgaXMgcmVhbGx5IHN0b3BwZWQuCisgICAgaWYgKHZp
ZXctPmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpICE9IFNjcm9sbEJlaGF2aW9yU3RhdHVz
OjpOb3RJbkFuaW1hdGlvbiAmJiAhc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Ny
b2xsVG9PcHRpb25zLnRvcC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24o
KSA9PSBJbnRQb2ludCgwLCAwKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZG9jdW1lbnQoKS0+
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBJbnRQb2ludCBs
YXlvdXRQb3Modmlldy0+bWFwRnJvbUNTU1RvTGF5b3V0VW5pdHMoc2Nyb2xsVG9PcHRpb25zLmxl
ZnQudmFsdWUoKSksIHZpZXctPm1hcEZyb21DU1NUb0xheW91dFVuaXRzKHNjcm9sbFRvT3B0aW9u
cy50b3AudmFsdWUoKSkpOworCisgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQo
KS0+c2Nyb2xsaW5nRWxlbWVudCgpPworICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgaWYgKGRvY3VtZW50KCktPmRvY3VtZW50RWxl
bWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3IudmFs
dWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0byksICpkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQo
KSkpIHsKKyAgICAgICAgdmlldy0+c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGxheW91dFBv
cywgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFtcGluZyk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICB2aWV3LT5zZXRDb250ZW50c1Njcm9sbFBvc2l0aW9uKGxheW91dFBvcyk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAwNDAxMmY5ZWZmLi43MzFlMzIy
OTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMjc5LDcgKzIyNzksNyBAQCB2
b2lkIEZyYW1lVmlldzo6c2Nyb2xsRWxlbWVudFRvUmVjdChjb25zdCBFbGVtZW50JiBlbGVtZW50
LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIHNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGJv
dW5kcy54KCkgLSBjZW50ZXJpbmdPZmZzZXRYIC0gcmVjdC54KCksIGJvdW5kcy55KCkgLSBjZW50
ZXJpbmdPZmZzZXRZIC0gcmVjdC55KCkpKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgRnJh
bWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9z
aXRpb24sIGJvb2wgYW5pbWF0ZWQpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywg
c3RyZWFtIDw8ICJGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRp
b24gPDwgIiAsIGNsZWFyaW5nIGFuY2hvciIpOwogCkBAIC0yMjkyLDcgKzIyOTIsMTAgQEAgdm9p
ZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3Jv
bGxQb3NpdGlvbikKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgaWYgKHBh
Z2UgJiYgcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKICAgICAgICAgc2Nyb2xsQW5p
bWF0b3IoKS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocGFnZS0+d2hlZWxFdmVudFRlc3RNb25p
dG9yKCkpOwotICAgIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9u
KTsKKyAgICBpZiAoYW5pbWF0ZWQpCisgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pLCBjdXJyZW50U2Nyb2xs
VHlwZSgpKTsKKyAgICBlbHNlCisgICAgICAgIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uKTsKIAogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKG9sZFNjcm9sbFR5
cGUpOwogfQpAQCAtMzY2MCw2ICszNjYzLDI2IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUbyhj
b25zdCBTY3JvbGxQb3NpdGlvbiYgbmV3UG9zaXRpb24pCiAgICAgZGlkQ2hhbmdlU2Nyb2xsT2Zm
c2V0KCk7CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24o
Y29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xs
VHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOworCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsKKyAgICBp
ZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChv
ZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5
cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoY3VycmVudFNj
cm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZl
QW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsK
KyAgICBpZiAob2Zmc2V0ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAgICBTY3JvbGxh
YmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKG9mZnNldCk7CisgICAgc2V0Q3Vy
cmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKK30KKwogZmxvYXQgRnJhbWVWaWV3
OjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250ZW50KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsK
ICAgICBpZiAoZ3JhbnVsYXJpdHkgIT0gU2Nyb2xsQnlQYWdlIHx8IG9yaWVudGF0aW9uID09IEhv
cml6b250YWxTY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBlMzZmOTk2ODA0
Li5iMzdmMDYwZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTIyMyw3ICsyMjMsNyBA
QCBwdWJsaWM6CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFs
OwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Ny
b2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2Up
IGZpbmFsOwogICAgIHZvaWQgcmVzdG9yZVNjcm9sbGJhcigpOwogICAgIHZvaWQgc2NoZWR1bGVT
Y3JvbGxUb0ZvY3VzZWRFbGVtZW50KFNlbGVjdGlvblJldmVhbE1vZGUpOwogICAgIHZvaWQgc2Ny
b2xsVG9Gb2N1c2VkRWxlbWVudEltbWVkaWF0ZWx5SWZOZWVkZWQoKTsKQEAgLTY1OSw2ICs2NTks
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbmRlckxheWVyRGlkU2Nyb2xsKGNvbnN0IFJlbmRl
ckxheWVyJik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFu
aW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKwog
cHJvdGVjdGVkOgogICAgIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0
JiBjbGlwUmVjdCkgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0
IEludFJlY3QmIHVwZGF0ZVJlY3QpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JvbGxCZWhhdmlvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2
aW9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40ZWQyOWNiNDJi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5j
cHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3Iu
aCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2Jvb2wgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yIGJl
aGF2aW9yLCBFbGVtZW50JiBhc3NvY2lhdGVkRWxlbWVudCkKK3sKKyAgICBpZiAoIWFzc29jaWF0
ZWRFbGVtZW50LmRvY3VtZW50KCkuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkKCkgfHwgIWFzc29jaWF0ZWRFbGVtZW50LnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNz
Y3JvbGxpbmcKKyAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7CisgICAgY2FzZSBTY3JvbGxCZWhhdmlv
cjo6QXV0bzoKKyAgICAgICAgcmV0dXJuIGFzc29jaWF0ZWRFbGVtZW50LnJlbmRlcmVyKCktPnN0
eWxlKCkudXNlU21vb3RoU2Nyb2xsaW5nKCk7CisgICAgY2FzZSBTY3JvbGxCZWhhdmlvcjo6SW5z
dGFudDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OlNt
b290aDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLjFiYWVmODgxZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbEJlaGF2aW9yLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBFbGVtZW50OworCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2aW9yIDog
dWludDhfdCB7CisgICAgQXV0byA9IDAsCisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgKK307CisK
K2Jvb2wgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yLCBFbGVtZW50JiBhc3NvY2lh
dGVkRWxlbWVudCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
Y3JvbGxCZWhhdmlvci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u
ODk3MWFlOTM3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xs
QmVoYXZpb3IuaWRsCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworZW51bSBTY3JvbGxCZWhhdmlvciB7ICJhdXRvIiwgImluc3Rh
bnQiLCAic21vb3RoIiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJ
bnRvVmlld09wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRp
b25zLmgKaW5kZXggOTM5Y2Q3MzQyNS4uZjI3NWYyZmJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oCkBAIC0yMCwxMiArMjAsMTEgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmgiCisjaW5jbHVkZSAiU2Ny
b2xsT3B0aW9ucy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEVsZW1lbnQ7Ci0K
LXN0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnMgeworc3RydWN0IFNjcm9sbEludG9WaWV3T3B0
aW9ucyA6IFNjcm9sbE9wdGlvbnMgewogICAgIE9wdGlvbmFsPFNjcm9sbExvZ2ljYWxQb3NpdGlv
bj4gYmxvY2tQb3NpdGlvbiB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6U3RhcnQgfTsKICAgICBP
cHRpb25hbDxTY3JvbGxMb2dpY2FsUG9zaXRpb24+IGlubGluZVBvc2l0aW9uIHsgU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uOjpOZWFyZXN0IH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3Jv
bGxJbnRvVmlld09wdGlvbnMuaWRsCmluZGV4IGNmOWQxZmQ3NjcuLjFiMjRjNjg2ZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKQEAgLTE3LDgg
KzE3LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLS8vIEZJWE1F
KHdlYmtpdC5vcmcvYi8xODgwNDMpOiBTdXBwb3J0IFNjcm9sbEJlaGF2aW9yLgotZGljdGlvbmFy
eSBTY3JvbGxJbnRvVmlld09wdGlvbnMgeworZGljdGlvbmFyeSBTY3JvbGxJbnRvVmlld09wdGlv
bnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBbSW1wbGVtZW50ZWRBcz1ibG9ja1Bvc2l0aW9uXSBT
Y3JvbGxMb2dpY2FsUG9zaXRpb24gYmxvY2sgPSAic3RhcnQiOwogICAgIFtJbXBsZW1lbnRlZEFz
PWlubGluZVBvc2l0aW9uXSBTY3JvbGxMb2dpY2FsUG9zaXRpb24gaW5saW5lID0gIm5lYXJlc3Qi
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uZTE4NjdjNjAxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJTY3JvbGxCZWhhdmlvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBT
Y3JvbGxPcHRpb25zIHsKKyAgICBPcHRpb25hbDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IgeyBT
Y3JvbGxCZWhhdmlvcjo6QXV0byB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uMzI5ZDZmZjEwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitkaWN0aW9uYXJ5IFNjcm9sbE9wdGlvbnMg
eworICAgIFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yID0gImF1dG8iOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbFRvT3B0aW9ucy5oCmluZGV4IGNlMWNiYTFjN2MuLmY1Nzc0ZDQ0YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaApAQCAtMjgsMTQgKzI4LDIxIEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSAiU2Nyb2xsT3B0aW9ucy5oIgogI2luY2x1ZGUgPGNtYXRo
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
cnVjdCBTY3JvbGxUb09wdGlvbnMgeworc3RydWN0IFNjcm9sbFRvT3B0aW9ucyA6IFNjcm9sbE9w
dGlvbnMgewogICAgIE9wdGlvbmFsPGRvdWJsZT4gbGVmdDsKICAgICBPcHRpb25hbDxkb3VibGU+
IHRvcDsKKworICAgIFNjcm9sbFRvT3B0aW9ucygpID0gZGVmYXVsdDsKKyAgICBTY3JvbGxUb09w
dGlvbnMoZG91YmxlIHgsIGRvdWJsZSB5KQorICAgICAgICA6IGxlZnQoeCkKKyAgICAgICAgLCB0
b3AoeSkKKyAgICB7IH0KIH07CiAKIGlubGluZSBkb3VibGUgbm9ybWFsaXplTm9uRmluaXRlVmFs
dWVPckZhbGxCYWNrVG8oT3B0aW9uYWw8ZG91YmxlPiB2YWx1ZSwgZG91YmxlIGZhbGxiYWNrVmFs
dWUpCkBAIC00Nyw3ICs1NCw3IEBAIGlubGluZSBkb3VibGUgbm9ybWFsaXplTm9uRmluaXRlVmFs
dWVPckZhbGxCYWNrVG8oT3B0aW9uYWw8ZG91YmxlPiB2YWx1ZSwgZG91YmxlCiAvLyBGSVhNRSho
dHRwczovL3dlYmtpdC5vcmcvYi84ODMzOSk6IENvbnNpZGVyIHVzaW5nIEZsb2F0UG9pbnQgb3Ig
RG91YmxlUG9pbnQgZm9yIGZhbGxiYWNrIGFuZCByZXR1cm4gdmFsdWVzLgogaW5saW5lIFNjcm9s
bFRvT3B0aW9ucyBub3JtYWxpemVOb25GaW5pdGVDb29yZGluYXRlc09yRmFsbEJhY2tUbyhjb25z
dCBTY3JvbGxUb09wdGlvbnMmIHZhbHVlLCBkb3VibGUgeCwgZG91YmxlIHkpCiB7Ci0gICAgU2Ny
b2xsVG9PcHRpb25zIG9wdGlvbnM7CisgICAgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMgPSB2YWx1
ZTsKICAgICBvcHRpb25zLmxlZnQgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tU
byh2YWx1ZS5sZWZ0LCB4KTsKICAgICBvcHRpb25zLnRvcCA9IG5vcm1hbGl6ZU5vbkZpbml0ZVZh
bHVlT3JGYWxsQmFja1RvKHZhbHVlLnRvcCwgeSk7CiAgICAgcmV0dXJuIG9wdGlvbnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKaW5kZXggNTEwYmMwNzFhNi4uMmI5YjU1
NDEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbApAQCAtMjYsOCAr
MjYsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQz
KTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsVG9PcHRpb25zIHsK
K2RpY3Rpb25hcnkgU2Nyb2xsVG9PcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7CiAgICAgdW5yZXN0
cmljdGVkIGRvdWJsZSBsZWZ0OwogICAgIHVucmVzdHJpY3RlZCBkb3VibGUgdG9wOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCBiMzI5ZjEyNDc5Li4xZDc5ZjQ1OWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC02MjIsNiArNjIyLDkgQEAgc3ludGhldGljRWRp
dGluZ0NvbW1hbmRzRW5hYmxlZDoKIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIGlu
aXRpYWw6IGZhbHNlCiAKK0NTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6CisgIGluaXRp
YWw6IGZhbHNlCisKIGlucHV0RXZlbnRzRW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwCmluZGV4IDQyOWVlZTlhOTYuLmE5N2VhNDJlODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCkBAIC0yNDgsNyArMjQ4LDE0IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3Jv
CiAKICAgICBib29sIGluQmFja0ZvcndhcmRDYWNoZSA9IGZyYW1lVmlldy0+ZnJhbWUoKS5kb2N1
bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9y
d2FyZENhY2hlOwogICAgIGJvb2wgaW5Qcm9ncmFtbWF0aWNTY3JvbGwgPSBzY3JvbGxhYmxlQXJl
YS5jdXJyZW50U2Nyb2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYzsKLSAgICBp
ZiAoaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5CYWNrRm9yd2FyZENhY2hlKQorCisgICAgYm9v
bCB1cGRhdGVTY3JvbGxQb3NpdGlvbiA9IGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFja0Zv
cndhcmRDYWNoZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgYW5pbWF0ZWQg
PSBzY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKCkgPT0gU2Nyb2xsQmVo
YXZpb3JUeXBlOjpTbW9vdGg7CisgICAgLy8gVGhlIHNjcm9sbCBwb3NpdGlvbiBvZiBhbmltYXRl
ZCBzY3JvbGxpbmcgd2lsbCBiZSBzZXQgYnkgdGhlIFVJIHByb2Nlc3MuIFNvIHNob3VsZG4ndCBz
ZXQgaXQgbm93LgorICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uID0gIWFuaW1hdGVkICYmIHVwZGF0
ZVNjcm9sbFBvc2l0aW9uOworI2VuZGlmCisgICAgaWYgKHVwZGF0ZVNjcm9sbFBvc2l0aW9uKQog
ICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9k
ZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiAKICAgICAvLyBJZiB0aGlzIGZyYW1lIHZp
ZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB3
ZSBkb24ndCB3YW50IHRvIHVwZGF0ZSBvdXIKQEAgLTI2MCw3ICsyNjcsMTQgQEAgYm9vbCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xs
YWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIXN0YXRlTm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhdXRvIHN0YXR1cyA9IGFuaW1hdGVk
ID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5pbWF0aW9uIDogU2Nyb2xsQmVoYXZp
b3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOworICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJl
aGF2aW9yU3RhdHVzKHN0YXR1cyk7CisKKyAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCwgYW5pbWF0ZWQp
OworI2Vsc2UKICAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCk7CisjZW5kaWYKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApAQCAtMjkxLDYgKzMwNSwzMiBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcgogICAg
IG1fdXBkYXRlTm9kZVNjcm9sbFBvc2l0aW9uVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJv
b2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byog
ZnJhbWVWaWV3ID0gZnJhbWVWaWV3Rm9yU2Nyb2xsaW5nTm9kZShub2RlSUQpOworICAgIGlmICgh
ZnJhbWVWaWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobm9kZUlEID09IGZyYW1lVmll
dy0+c2Nyb2xsaW5nTm9kZUlEKCkpIHsKKyAgICAgICAgaWYgKCFpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpCisgICAgICAgICAgICBmcmFtZVZpZXctPnNldFNjcm9sbEJlaGF2aW9yU3RhdHVz
KFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAvLyBPdmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAgICBpZiAoYXV0byogc2Ny
b2xsYWJsZUFyZWEgPSBmcmFtZVZpZXctPnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRChu
b2RlSUQpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAg
ICAgICAgICAgc2Nyb2xsYWJsZUFyZWEtPnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgfQorfQorI2VuZGlmCisKIHZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5j
U2Nyb2xsVGltZXJGaXJlZCgpCiB7CiAgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5j
U2Nyb2xsKG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLm5vZGVJRCwgbV9zY2hlZHVsZWRTY3JvbGxV
cGRhdGUuc2Nyb2xsUG9zaXRpb24sIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLmxheW91dFZpZXdw
b3J0T3JpZ2luLCBTY3JvbGxUeXBlOjpVc2VyLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS51cGRh
dGVMYXllclBvc2l0aW9uQWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA5YmU2OWFhZmIx
Li4zZGUwMWNjMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC01Miw2ICs1Miw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNjcm9sbGluZ1N0YXRlVHJlZVByb3BlcnRpZXNDaGFuZ2VkKCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFz
eW5jU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IE9wdGlv
bmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbik7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCwgYm9v
bCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCiAKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2Vz
KFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbEluZGV4LCB1bnNpZ25lZCB2ZXJ0
aWNhbEluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDcxN2JmYzJhNTUuLjdl
MjE4OGMyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcApAQCAtNTYsNiArNTYsOSBAQCBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShj
b25zdCBTY3JvbGxpbmdTdGF0ZVNjcgogI2VuZGlmCiAgICAgLCBtX3Njcm9sbGFibGVBcmVhUGFy
YW1ldGVycyhzdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkpCiAgICAgLCBtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbChzdGF0ZU5v
ZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkp
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b25XaXRoQW5pbWF0aW9uKHN0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmlt
YXRpb24oKSkKKyNlbmRpZgogICAgICwgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyhzdGF0ZU5v
ZGUuaXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKIHsKICAgICBpZiAoaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbENvbnRhaW5lckxheWVyKSkKQEAgLTIxOSwxMiArMjIyLDIyIEBAIHZvaWQgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoY29u
c3QgU2Nyb2xsYWJsZUFyCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFNjcm9sbGFibGVBcmVhUGFy
YW1zKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2lu
dCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCwgYm9vbCByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uKQoreworICAgIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24gPSByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKKyAgICBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGw7CisgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRp
b24gPSByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uOworICAgIHNldFByb3BlcnR5Q2hhbmdlZChSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbik7Cit9CisjZWxzZQogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
CiB7CiAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uOwogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKICAgICBzZXRQcm9wZXJ0eUNo
YW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQorI2VuZGlmCiAKIHZvaWQgU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRJc01vbml0b3JpbmdXaGVlbEV2ZW50cyhib29sIGlz
TW9uaXRvcmluZ1doZWVsRXZlbnRzKQogewpAQCAtMzE0LDYgKzMyNywxMSBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNj
cm9sbGluZ1N0YXRlVAogICAgIGlmIChtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQg
c2Nyb2xsIHBvc2l0aW9uIHJlcHJlc2VudHMgcHJvZ3JhbW1hdGljIHNjcm9sbCIsIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRo
QW5pbWF0aW9uKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9z
aXRpb24gd2l0aCBhbmltYXRpb24iLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1h
dGlvbik7CisjZW5kaWYKKwogICAgIGlmICghbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0
LmlzRW1wdHkoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJwYXJlbnQgcmVsYXRpdmUgc2Ny
b2xsYWJsZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUuaAppbmRleCA0OTY3YTZjZTgxLi42ZTI1ZDdiYmE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuaApAQCAtMTExLDcgKzExMSwxMiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBGbG9h
dFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb247IH0KICAgICBib29sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOyB9CisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBib29sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9u
OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihj
b25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29s
IHJlcXVlc3RlZFdpdGhBbmltYXRpb24gPSBmYWxzZSk7CisjZWxzZQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGJv
b2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisjZW5kaWYKIAogICAgIGJvb2wgaXNN
b25pdG9yaW5nV2hlZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRvcmluZ1doZWVs
RXZlbnRzOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJc01vbml0b3JpbmdXaGVlbEV2
ZW50cyhib29sKTsKQEAgLTE3MSw2ICsxNzYsOSBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVB
cmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKIAogICAgIGJvb2wgbV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgeyBmYWxz
ZSB9OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uV2l0aEFuaW1hdGlvbiB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1faXNN
b25pdG9yaW5nV2hlZWxFdmVudHMgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDE1MWFjMjlmOGEuLmM5ZjA0NGI0
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgK
QEAgLTgyLDggKzgyLDE3IEBAIHB1YmxpYzoKICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5k
ZXJMYXllciBzY3JvbGxpbmcgc3RhdGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZSYsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uOjpTeW5jKSA9IDA7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIENh
bGxlZCBmb3Igc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMgdXBkYXRlcy4KKyAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uo
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIC8qaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKi8pIHsgfQorCisgICAgLy8gQ2FsbGVkIGZvciByZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9u
IHVwZGF0ZXMuCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3Jv
bGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8s
IGJvb2wgLypyZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKi8sIGJvb2wgLyp3aXRoQW5pbWF0
aW9uKi8pIHsgfQorI2Vsc2UKICAgICAvLyBDYWxsZWQgZm9yIHJlcXVlc3RlZCBzY3JvbGwgcG9z
aXRpb24gdXBkYXRlcy4KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0
c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9zaXRp
b24qLywgYm9vbCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLykgeyB9CisjZW5kaWYK
KwogCiAgICAgLy8gRGVsZWdhdGVkIHNjcm9sbGluZy96b29taW5nIGhhcyBjYXVzZWQgdGhlIHZp
ZXdwb3J0IHRvIGNoYW5nZSwgc28gdXBkYXRlIHZpZXdwb3J0LWNvbnN0cmFpbmVkIGxheWVycwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbWFpbkZyYW1lVmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdh
dGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGxheW91dFZpZXdwb3J0LCBkb3VibGUgc2NhbGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuY3BwCmluZGV4IDczZGNhMjhlZjEuLjg5YjQ1ODA5MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZS5jcHAKQEAgLTEwNyw4ICsxMDcsMTYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU4K
IHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJl
bihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSkKIHsKICAgICBjb25zdCBTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUmIHNjcm9sbGluZ1N0YXRlTm9kZSA9IGRvd25jYXN0PFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4oc3RhdGVOb2RlKTsKLSAgICBpZiAoc2Nyb2xsaW5n
U3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkKLSAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9s
bGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbGluZ1N0
YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkpOworICAg
IGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CisgICAgICAgIHNjcm9s
bGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKAorICAgICAgICAgICAg
c2Nyb2xsaW5nTm9kZUlEKCkKKyAgICAgICAgICAgICwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uKCkKKyAgICAgICAgICAgICwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgICAgICwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpCisjZW5kaWYKKyAgICAgICAgICAg
ICk7CisgICAgfQogCiAgICAgbV9pc0ZpcnN0Q29tbWl0ID0gZmFsc2U7CiB9CkBAIC0xNTcsMTUg
KzE2NSw0NCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxCeShjb25z
dCBGbG9hdFNpemUmIGRlbHRhLCBTY3JvbGxQb3NpdGlvbgogICAgIHNjcm9sbFRvKGN1cnJlbnRT
Y3JvbGxQb3NpdGlvbigpICsgZGVsdGEsIFNjcm9sbFR5cGU6OlVzZXIsIGNsYW1wKTsKIH0KIAor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxU
eXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wLCBib29sIG5lZWRTeW5jU2Nyb2xsUG9zaXRp
b24pCit7CisgICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSB7Cisg
ICAgICAgIC8vIFNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisg
ICAgICAgIGlmIChyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBuZWVkU3luY1Njcm9sbFBvc2l0
aW9uKQorICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKCp0aGlzLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsKKyAgICAgICAg
c2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzRGlkQ2hhbmdlKHNjcm9sbGluZ05vZGVJRCgpLCBmYWxzZSk7CisgICAgICAgIHNldFJlcXVl
c3RBbmltYXRlZFNjcm9sbChmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAv
LyBJZiBkdXJpbmcgYSBzY3JvbGwgYW5pbWF0aW9uLCBuZWVkIHRvIHN0b3AgaXQgYmVmb3JlIHN0
YXJ0aW5nIGEgbmV3IG9uZS4KKyAgICBpZiAoc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpKQor
ICAgICAgICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKHRydWUpOworICAgIHNj
cm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKHNjcm9sbFR5cGUg
PT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKKworICAgIG1fY3VycmVudFNjcm9sbFBvc2l0
aW9uID0gYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwgY2xhbXApOworCisgICAgTE9H
X1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZSAiIDw8IHNjcm9sbGluZ05vZGVJRCgpIDw8ICIgc2Nyb2xsVG8gIiA8PCBwb3NpdGlvbiA8
PCAiIChkZWx0YSBmcm9tIGxhc3QgY29tbWl0dGVkIHBvc2l0aW9uICIgPDwgKG1fbGFzdENvbW1p
dHRlZFNjcm9sbFBvc2l0aW9uIC0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24pIDw8ICIpIik7CisK
KyAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJlbnRTY3JvbGxQb3NpdGlvbigpOworICAgIGN1cnJl
bnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKTsKKworICAgIHNldE5lZWRzU3RvcEN1cnJlbnRTY3Jv
bGxBbmltYXRpb24oZmFsc2UpOworICAgIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChmYWxzZSk7
CisgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFs
c2UpOworfQorI2Vsc2UKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRv
KGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9s
bFBvc2l0aW9uQ2xhbXAgY2xhbXApCiB7CiAgICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVudFNj
cm9sbFBvc2l0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0
SXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbChzY3JvbGxUeXBlID09IFNjcm9sbFR5cGU6OlBy
b2dyYW1tYXRpYyk7Ci0gICAgCisKICAgICBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IGFkanVz
dGVkU2Nyb2xsUG9zaXRpb24ocG9zaXRpb24sIGNsYW1wKTsKLSAgICAKKwogICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUg
IiA8PCBzY3JvbGxpbmdOb2RlSUQoKSA8PCAiIHNjcm9sbFRvICIgPDwgcG9zaXRpb24gPDwgIiAo
ZGVsdGEgZnJvbSBsYXN0IGNvbW1pdHRlZCBwb3NpdGlvbiAiIDw8IChtX2xhc3RDb21taXR0ZWRT
Y3JvbGxQb3NpdGlvbiAtIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSA8PCAiKSIpOwogCiAgICAg
dXBkYXRlVmlld3BvcnRGb3JDdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKQEAgLTE3MywxMiArMjEw
LDE3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZs
b2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlCiAKICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0
SXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbChmYWxzZSk7CiB9CisjZW5kaWYKIAogdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgp
CiB7CiAgICAgcmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpOwogICAgIHJlcG9zaXRpb25SZWxh
dGVkTGF5ZXJzKCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghcmVxdWVz
dEFuaW1hdGVkU2Nyb2xsKCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIHNjcm9sbGlu
Z1RyZWUoKS5ub3RpZnlSZWxhdGVkTm9kZXNBZnRlclNjcm9sbFBvc2l0aW9uQ2hhbmdlKCp0aGlz
KTsKICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMp
OwogfQpAQCAtMjY2LDYgKzMwOCwzNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcgogICAgIHRz
LmR1bXBQcm9wZXJ0eSgic2Nyb2xsYWJsZSBhcmVhIHBhcmFtZXRlcnMiLCBtX3Njcm9sbGFibGVB
cmVhUGFyYW1ldGVycyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wgYW5p
bWF0ZWQpCit7CisgICAgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgPSBhbmltYXRlZDsKK30KKwor
Ym9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGw7Cit9CisKK3ZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mo
Ym9vbCBpblByb2dyZXNzKQoreworICAgIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGlu
UHJvZ3Jlc3M7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3M7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5l
ZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oYm9vbCBzdG9wKQoreworICAgIG1fbmVlZHNT
dG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbiA9IHN0b3A7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdAor
eworICAgIHJldHVybiBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb247Cit9CisjZW5k
aWYKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JP
TExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCA0Y2JmNGQxYWYwLi42YWY0MmEzZTY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmgKQEAgLTYwLDcgKzYwLDExIEBAIHB1YmxpYzoKICAgICBGbG9h
dFNpemUgc2Nyb2xsRGVsdGFTaW5jZUxhc3RDb21taXQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJl
bnRTY3JvbGxQb3NpdGlvbiAtIG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAg
ICAvLyBUaGVzZSBhcmUgaW1wZXJhdGl2ZTsgdGhleSBhZGp1c3QgdGhlIHNjcm9sbGluZyBsYXll
cnMuCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZs
b2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25D
bGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzLCBib29sIG5lZWRTeW5j
U2Nyb2xsUG9zaXRpb24gPSBmYWxzZSk7CisjZWxzZQogICAgIHZvaWQgc2Nyb2xsVG8oY29uc3Qg
RmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlv
bkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOworI2VuZGlmCiAg
ICAgdm9pZCBzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmLCBTY3JvbGxQb3NpdGlvbkNsYW1wID0g
U2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOwogCiAgICAgdm9pZCB3YXNTY3Jv
bGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBPcHRp
b25hbDxGbG9hdFJlY3Q+IG92ZXJyaWRlTGF5b3V0Vmlld3BvcnQgPSB7IH0sIFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsK
QEAgLTkxLDYgKzk1LDE1IEBAIHB1YmxpYzoKICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9u
JiBzY3JvbGxDb250YWluZXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsQ29udGFpbmVy
TGF5ZXI7IH0KICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxlZENvbnRlbnRz
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsgfQogCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChi
b29sKTsKKyAgICBib29sIHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpIGNvbnN0OworICAgIHZvaWQg
c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sKTsKKyAgICBib29sIHNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MoKSBjb25zdDsKKyAgICB2b2lkIHNldE5lZWRzU3RvcEN1cnJlbnRTY3Jv
bGxBbmltYXRpb24oYm9vbCk7CisgICAgYm9vbCBuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0
aW9uKCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEKTsKIApAQCAtMTQ4LDYgKzE2MSwxMiBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVBcmVh
UGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKICAgICBib29sIG1faXNGaXJz
dENvbW1pdCB7IHRydWUgfTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCBt
X3JlcXVlc3RBbmltYXRlZFNjcm9sbCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9uZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgTGF5ZXJSZXByZXNlbnRhdGlv
biBtX3Njcm9sbENvbnRhaW5lckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3Jv
bGxlZENvbnRlbnRzTGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRpb24uaAppbmRleCBiN2MxZDI0ZWI0Li41MjNhNzdmMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRpb24uaApAQCAtMzIsMTIgKzMyLDE0IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOworZW51
bSBjbGFzcyBTY3JvbGxDbGFtcGluZyA6IHVpbnQ4X3Q7CiAKIGNsYXNzIFNjcm9sbEFuaW1hdGlv
biB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
U2Nyb2xsQW5pbWF0aW9uKCkgeyB9OwogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsYmFy
T3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCAvKiBzdGVwICovLCBmbG9hdCAv
KiBtdWx0aXBsaWVyICovKSB7IHJldHVybiB0cnVlOyB9OworICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGwoY29uc3QgRmxvYXRQb2ludCYpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKSB7IH07CiAgICAgdmlydHVh
bCB2b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JikgeyB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKaW5kZXgg
ZDA2NGU2OTM3OS4uMmNhNTc4YTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCkBAIC0yOCw4ICsyOCw2IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmgiCiAKLSNpZiBFTkFC
TEUoU01PT1RIX1NDUk9MTElORykKLQogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRl
ICJTY3JvbGxhYmxlQXJlYS5oIgogCkBAIC0zOCw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHN0YXRpYyBjb25zdCBkb3VibGUgZnJhbWVSYXRlID0gNjA7CiBzdGF0aWMgY29uc3QgU2Vj
b25kcyB0aWNrVGltZSA9IDFfcyAvIGZyYW1lUmF0ZTsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1p
bmltdW1UaW1lckludGVydmFsIHsgMV9tcyB9Oworc3RhdGljIGNvbnN0IGRvdWJsZSBzbW9vdGhG
YWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgPSA1OwogCiBTY3JvbGxBbmltYXRpb25TbW9vdGg6
OlNjcm9sbEFuaW1hdGlvblNtb290aChTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNv
bnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKEZsb2F0UG9pbnQm
Jik+JiYgbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVuY3Rpb24pCiAgICAgOiBTY3JvbGxBbmltYXRp
b24oc2Nyb2xsYWJsZUFyZWEpCkBAIC02Nyw5ICs2NiwyMiBAQCBib29sIFNjcm9sbEFuaW1hdGlv
blNtb290aDo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxH
cmFudQogICAgIHJldHVybiBuZWVkVG9TY3JvbGw7CiB9CiAKK3ZvaWQgU2Nyb2xsQW5pbWF0aW9u
U21vb3RoOjpzY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCit7CisgICAgU2Nyb2xs
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeVBhZ2U7CisgICAgYm9vbCBuZWVkVG9T
Y3JvbGwgPSB1cGRhdGVQZXJBeGlzRGF0YShtX2hvcml6b250YWxEYXRhLCBncmFudWxhcml0eSwg
cG9zaXRpb24ueCgpIC0gbV9ob3Jpem9udGFsRGF0YS5jdXJyZW50UG9zaXRpb24sIG1fc2Nyb2xs
YWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCkueCgpLCBtX3Njcm9sbGFibGVBcmVhLm1h
eGltdW1TY3JvbGxQb3NpdGlvbigpLngoKSwgc21vb3RoRmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Ny
b2xsKTsKKyAgICBuZWVkVG9TY3JvbGwgfD0KKyAgICAgICAgdXBkYXRlUGVyQXhpc0RhdGEobV92
ZXJ0aWNhbERhdGEsIGdyYW51bGFyaXR5LCBwb3NpdGlvbi55KCkgLSBtX3ZlcnRpY2FsRGF0YS5j
dXJyZW50UG9zaXRpb24sIG1fc2Nyb2xsYWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCku
eSgpLCBtX3Njcm9sbGFibGVBcmVhLm1heGltdW1TY3JvbGxQb3NpdGlvbigpLnkoKSwgc21vb3Ro
RmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyAgICBpZiAobmVlZFRvU2Nyb2xsICYmICFh
bmltYXRpb25UaW1lckFjdGl2ZSgpKSB7CisgICAgICAgIG1fc3RhcnRUaW1lID0gbV9ob3Jpem9u
dGFsRGF0YS5zdGFydFRpbWU7CisgICAgICAgIGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKKyAgICB9
Cit9OworCiB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6c3RvcCgpCiB7CiAgICAgbV9hbmlt
YXRpb25UaW1lci5zdG9wKCk7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlv
clN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwogfQogCiB2b2lk
IFNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlVmlzaWJsZUxlbmd0aHMoKQpAQCAtMjQ3LDcg
KzI1OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXRBbmltYXRpb25QYXJhbWV0ZXJzRm9yR3Jh
bnVsYXJpdHkoU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsCiAgICAgfQogfQogCi1ib29sIFNjcm9s
bEFuaW1hdGlvblNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmIGRhdGEsIFNj
cm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xs
UG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uKQorYm9vbCBTY3JvbGxBbmltYXRpb25T
bW9vdGg6OnVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiBkYXRhLCBTY3JvbGxHcmFudWxh
cml0eSBncmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1pblNjcm9sbFBvc2l0aW9uLCBm
bG9hdCBtYXhTY3JvbGxQb3NpdGlvbiwgZG91YmxlIHNtb290aEZhY3RvcikKIHsKICAgICBpZiAo
IWRhdGEuc3RhcnRUaW1lIHx8ICFkZWx0YSB8fCAoZGVsdGEgPCAwKSAhPSAoZGF0YS5kZXNpcmVk
UG9zaXRpb24gLSBkYXRhLmN1cnJlbnRQb3NpdGlvbiA8IDApKSB7CiAgICAgICAgIGRhdGEuZGVz
aXJlZFBvc2l0aW9uID0gZGF0YS5jdXJyZW50UG9zaXRpb247CkBAIC0yNjQsNiArMjc2LDEyIEBA
IGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0
YSYgZGF0YSwgU2Nyb2xsR3JhbnVsYXJpCiAgICAgQ3VydmUgY29hc3RUaW1lQ3VydmU7CiAgICAg
Z2V0QW5pbWF0aW9uUGFyYW1ldGVyc0ZvckdyYW51bGFyaXR5KGdyYW51bGFyaXR5LCBhbmltYXRp
b25UaW1lLCByZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUsIGF0dGFja1RpbWUsIHJlbGVhc2VUaW1l
LCBjb2FzdFRpbWVDdXJ2ZSwgbWF4aW11bUNvYXN0VGltZSk7CiAKKyAgICBhbmltYXRpb25UaW1l
ICo9IHNtb290aEZhY3RvcjsKKyAgICByZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUgKj0gc21vb3Ro
RmFjdG9yOworICAgIGF0dGFja1RpbWUgKj0gc21vb3RoRmFjdG9yOworICAgIHJlbGVhc2VUaW1l
ICo9IHNtb290aEZhY3RvcjsKKyAgICBtYXhpbXVtQ29hc3RUaW1lICo9IHNtb290aEZhY3RvcjsK
KwogICAgIGRhdGEuZGVzaXJlZFBvc2l0aW9uID0gbmV3UG9zaXRpb247CiAgICAgaWYgKCFkYXRh
LnN0YXJ0VGltZSkKICAgICAgICAgZGF0YS5hdHRhY2tUaW1lID0gYXR0YWNrVGltZTsKQEAgLTM5
Miw2ICs0MTAsOCBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJG
aXJlZCgpCiAKICAgICBpZiAoY29udGludWVBbmltYXRpb24pCiAgICAgICAgIHN0YXJ0TmV4dFRp
bWVyKHN0ZDo6bWF4KG1pbmltdW1UaW1lckludGVydmFsLCBkZWx0YVRvTmV4dEZyYW1lKSk7Cisg
ICAgZWxzZQorICAgICAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVz
KFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiAKICAgICBtX25vdGlmeVBv
c2l0aW9uQ2hhbmdlZEZ1bmN0aW9uKEZsb2F0UG9pbnQobV9ob3Jpem9udGFsRGF0YS5jdXJyZW50
UG9zaXRpb24sIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbikpOwogfQpAQCAtNDA3LDUg
KzQyNywzIEBAIGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckFjdGl2
ZSgpIGNvbnN0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJM
RShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uU21vb3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRpb25TbW9vdGguaAppbmRleCAwMmNjNGVlMmJkLi44MTczZmE3ZTIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaApAQCAtMjcsMTQg
KzI3LDEzIEBACiAKICNpbmNsdWRlICJTY3JvbGxBbmltYXRpb24uaCIKIAotI2lmIEVOQUJMRShT
TU9PVEhfU0NST0xMSU5HKQotCiAjaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CitlbnVtIGNs
YXNzIFNjcm9sbENsYW1waW5nIDogdWludDhfdDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0aW9uU21v
b3RoIGZpbmFsOiBwdWJsaWMgU2Nyb2xsQW5pbWF0aW9uIHsKIHB1YmxpYzoKQEAgLTUxLDYgKzUw
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVu
dGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcikg
b3ZlcnJpZGU7CisgICAgdm9pZCBzY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0aHMo
KSBvdmVycmlkZTsKICAgICB2b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50
Jikgb3ZlcnJpZGU7CkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGludCB2aXNp
YmxlTGVuZ3RoIHsgMCB9OwogICAgIH07CiAKLSAgICBib29sIHVwZGF0ZVBlckF4aXNEYXRhKFBl
ckF4aXNEYXRhJiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3Jv
bGxQb3NpdGlvbiwgZmxvYXQgbWF4U2Nyb2xsUG9zaXRpb24pOworICAgIGJvb2wgdXBkYXRlUGVy
QXhpc0RhdGEoUGVyQXhpc0RhdGEmLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZs
b2F0IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9hdCBtYXhTY3JvbGxQb3NpdGlvbiwgZG91YmxlIHNt
b290aEZhY3RvciA9IDEpOwogICAgIGJvb2wgYW5pbWF0ZVNjcm9sbChQZXJBeGlzRGF0YSYsIE1v
bm90b25pY1RpbWUgY3VycmVudFRpbWUpOwogCiAgICAgdm9pZCByZXF1ZXN0QW5pbWF0aW9uVGlt
ZXJGaXJlZCgpOwpAQCAtMTA4LDQgKzEwOCwzIEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGE2MTE4NjgzN2QuLjRkNTk4
Yzc1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiTGF5b3V0
U2l6ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9s
bEFuaW1hdGlvblNtb290aC5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVk
ZSA8YWxnb3JpdGhtPgogCkBAIC01Miw2ICs1MywxOCBAQCBTY3JvbGxBbmltYXRvcjo6U2Nyb2xs
QW5pbWF0b3IoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKQogI2lmIEVOQUJMRShDU1Nf
U0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICAsIG1fc2Nyb2xsQ29u
dHJvbGxlcigqdGhpcykKICNlbmRpZgorICAgICwgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3Jv
bGwobWFrZVVuaXF1ZTxTY3JvbGxBbmltYXRpb25TbW9vdGg+KHNjcm9sbGFibGVBcmVhLCBtX2N1
cnJlbnRQb3NpdGlvbiwgW3RoaXNdKEZsb2F0UG9pbnQmJiBwb3NpdGlvbikgeworICAgICAgICBh
dXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IG1fc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5
cGUoKTsKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRDdXJyZW50U2Nyb2xsVHlwZShTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMpOworICAgICAgICBib29sIHVwZGF0ZWQgPSBtX3Njcm9sbGFi
bGVBcmVhLnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShyb3VuZGVkSW50UG9pbnQocG9zaXRp
b24pKTsKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2
aW91c1Njcm9sbFR5cGUpOworICAgICAgICBpZiAodXBkYXRlZCkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBGbG9hdFNpemUgZGVsdGEgPSBwb3NpdGlvbiAtIG1fY3VycmVudFBvc2l0
aW9uOworICAgICAgICBtX2N1cnJlbnRQb3NpdGlvbiA9IFdURk1vdmUocG9zaXRpb24pOworICAg
ICAgICBub3RpZnlQb3NpdGlvbkNoYW5nZWQoZGVsdGEpOworICAgIH0pKQogewogfQogCkBAIC03
NSw2ICs4OCwxNCBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LAogICAgIHJldHVybiB0cnVlOwog
fQogCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldChjb25zdCBGbG9hdFBvaW50
JiBvZmZzZXQpCit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGwtPnNldEN1cnJl
bnRQb3NpdGlvbihtX2N1cnJlbnRQb3NpdGlvbik7CisgICAgYXV0byBuZXdQb3NpdGlvbiA9IFNj
cm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0LCB0b0Zsb2F0U2l6
ZShtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CisgICAgbV9hbmltYXRpb25Qcm9n
cmFtbWF0aWNTY3JvbGwtPnNjcm9sbChuZXdQb3NpdGlvbik7CisgICAgbV9zY3JvbGxhYmxlQXJl
YS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRp
dmVBbmltYXRpb24pOworfQorCiB2b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldFdp
dGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGluZykK
IHsKICAgICBGbG9hdFBvaW50IG5ld1Bvc2l0b24gPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9z
aXRpb25Gcm9tT2Zmc2V0KG9mZnNldCwgdG9GbG9hdFNpemUobV9zY3JvbGxhYmxlQXJlYS5zY3Jv
bGxPcmlnaW4oKSkpOwpAQCAtMjQ1LDQgKzI2NiwzMyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yOjpy
ZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50
VAogfQogI2VuZGlmCiAKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMoKQor
eworI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCisgICAgbV9hbmltYXRp
b25Qcm9ncmFtbWF0aWNTY3JvbGwtPnN0b3AoKTsKKyNlbmRpZgorfQorCit2b2lkIFNjcm9sbEFu
aW1hdG9yOjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpCit7CisjaWYgIVVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9USU1FUikKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+
c2VydmljZUFuaW1hdGlvbigpOworI2VuZGlmCit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6Ondp
bGxFbmRMaXZlUmVzaXplKCkKK3sKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+
dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmltYXRvcjo6ZGlkQWRk
VmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikKK3sKKyAgICBtX2FuaW1hdGlvblByb2dyYW1t
YXRpY1Njcm9sbC0+dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmlt
YXRvcjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKQoreworICAgIG1fYW5p
bWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVuZ3RocygpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaAppbmRleCBhNWM2OWM1M2I3Li45YjdjMDliNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgUGxhdGZvcm1Ub3VjaEV2ZW50OworY2xhc3Mg
U2Nyb2xsQW5pbWF0aW9uOwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CiBjbGFzcyBTY3JvbGxiYXI7
CiBjbGFzcyBXaGVlbEV2ZW50VGVzdE1vbml0b3I7CkBAIC02OCw2ICs2OSw3IEBAIHB1YmxpYzoK
ICAgICAvLyBUaGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBhbHdheXMgc2Nyb2xscyBpbW1l
ZGlhdGVseSwgbmV2ZXIgYW5pbWF0ZXMuCiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxi
YXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRp
cGxpZXIpOwogCisgICAgdm9pZCBzY3JvbGxUb09mZnNldChjb25zdCBGbG9hdFBvaW50Jik7CiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9h
dFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAKICAg
ICBTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEoKSBjb25zdCB7IHJldHVybiBtX3Njcm9s
bGFibGVBcmVhOyB9CkBAIC04NSw4ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJl
bnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgY29uc3QgRmxvYXRQb2ludCYgY3Vy
cmVudFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UG9zaXRpb247IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxBbmltYXRpb25zKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNl
cnZpY2VTY3JvbGxBbmltYXRpb25zKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbEFuaW1h
dGlvbnMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBjb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0IHsgfQogICAgIHZp
cnR1YWwgdm9pZCBtb3VzZUVudGVyZWRDb250ZW50QXJlYSgpIHsgfQpAQCAtOTcsMTYgKzk5LDE2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VJc0Rvd25JblNjcm9sbGJhcihTY3Jv
bGxiYXIqLCBib29sKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0TGl2ZVJl
c2l6ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1Jlc2l6ZWQoKSBjb25zdCB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgd2lsbEVuZExpdmVSZXNpemUoKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbEVuZExpdmVSZXNpemUoKTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGVudEFyZWFEaWRT
aG93KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRBcmVhRGlkSGlkZSgpIHsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGxvY2tPdmVybGF5U2Nyb2xsYmFyU3RhdGVUb0hpZGRlbihib29sKSB7
IH0KICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc0NhbkJlQWN0aXZlKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNj
cm9sbGJhciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcihT
Y3JvbGxiYXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVZlcnRpY2FsU2Nyb2xsYmFy
KFNjcm9sbGJhciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xs
YmFyKFNjcm9sbGJhciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Ny
b2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRh
bFNjcm9sbGJhcihTY3JvbGxiYXIqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
U2Nyb2xsYmFyUGFydExheWVycyhTY3JvbGxiYXIqKSB7IH0KQEAgLTE1MSw2ICsxNTMsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgU2Nyb2xsQ29udHJvbGxlciBtX3Njcm9sbENvbnRyb2xsZXI7CiAjZW5k
aWYKICAgICBGbG9hdFBvaW50IG1fY3VycmVudFBvc2l0aW9uOworCisgICAgc3RkOjp1bmlxdWVf
cHRyPFNjcm9sbEFuaW1hdGlvbj4gbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGw7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMu
aAppbmRleCA4OTExNDkxMDNkLi5mNmQzNTY2NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFR5cGVzLmgKQEAgLTU0LDYgKzU0LDIxIEBAIGVudW0gY2xhc3MgU2Nyb2xsUG9zaXRpb25D
bGFtcCA6IHVpbnQ4X3QgewogICAgIFRvQ29udGVudEVkZ2VzLAogfTsKIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCitlbnVtIGNsYXNzIFNjcm9s
bEJlaGF2aW9yVHlwZSA6IHVpbnQ4X3QgeworICAgIEluc3RhbnQsCisgICAgU21vb3RoLAorfTsK
KyNlbmRpZgorCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2aW9yU3RhdHVzIDogdWludDhfdCB7Cisg
ICAgTm90SW5BbmltYXRpb24sCisgICAgSW5Ob25OYXRpdmVBbmltYXRpb24sCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBJbk5hdGl2ZUFu
aW1hdGlvbiwKKyNlbmRpZgorfTsKKwogaW5saW5lIFNjcm9sbERpcmVjdGlvbiBsb2dpY2FsVG9Q
aHlzaWNhbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBpc1ZlcnRpY2Fs
LCBib29sIGlzRmxpcHBlZCkKIHsKICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCBiMTI2YTljMmI3Li5iYzY5Yzc4ODU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDYxLDEwICs0NjEsMTQg
QEAgdm9pZCBTY3JvbGxWaWV3Ojpjb21wbGV0ZVVwZGF0ZXNBZnRlclNjcm9sbFRvKGNvbnN0IElu
dFNpemUmIHNjcm9sbERlbHRhKQogICAgIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3Jv
bGxpbmcoKTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBT
Y3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgYm9vbC8qIGFu
aW1hdGVkKi8pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJT
Y3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKIAorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0
Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpOwor
I2VuZGlmCisKICAgICBpZiAocHJvaGliaXRzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybjsK
IApAQCAtNDc1LDEzICs0NzksMTcgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlv
bihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAKICAgICBTY3JvbGxQb3Np
dGlvbiBuZXdTY3JvbGxQb3NpdGlvbiA9ICFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSA/IGFkanVzdFNj
cm9sbFBvc2l0aW9uV2l0aGluUmFuZ2Uoc2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xsUG9zaXRpb247
CiAKLSAgICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgp
ID09IFNjcm9sbFR5cGU6OlVzZXIpICYmIG5ld1Njcm9sbFBvc2l0aW9uID09IHRoaXMtPnNjcm9s
bFBvc2l0aW9uKCkpCisgICAgaWYgKCghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgfHwgY3VycmVudFNj
cm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKSAmJiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JT
dGF0dXMoKSAhPSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYgbmV3U2Ny
b2xsUG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKICAgICAgICAgcmV0dXJuOwog
CisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5j
YW5jZWxBbmltYXRpb25zKCk7CisKICAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
KG5ld1Njcm9sbFBvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdXBkYXRlU2Nyb2xs
YmFycyhuZXdTY3JvbGxQb3NpdGlvbik7CisgICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Ny
b2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIH0KIAogYm9vbCBTY3JvbGxWaWV3
OjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCkBAIC01MzgsNyArNTQ2LDggQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3Jv
bGxiYXJzKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXNpcmVkUG9zaXRpb24pCiAgICAgCiAgICAg
aWYgKCFtYW5hZ2VzU2Nyb2xsYmFycygpKSB7CiAgICAgICAgIGlmIChzY3JvbGxPcmlnaW5DaGFu
Z2VkKCkpIHsKLSAgICAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhv
dXRBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOwor
ICAgICAgICAgICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoZGVzaXJlZFBvc2l0
aW9uKSkKKyAgICAgICAgICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRo
b3V0QW5pbWF0aW9uKHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihkZXNpcmVkUG9zaXRpb24pKTsK
ICAgICAgICAgICAgIHJlc2V0U2Nyb2xsT3JpZ2luQ2hhbmdlZCgpOwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCA0MzAxNjBk
NmFlLi41Mzk4MTA4Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0y
NjAsNyArMjYwLDcgQEAgcHVibGljOgogICAgIFNjcm9sbFBvc2l0aW9uIGNhY2hlZFNjcm9sbFBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAg
Ly8gRnVuY3Rpb25zIGZvciBzY3JvbGxpbmcgdGhlIHZpZXcuCi0gICAgdmlydHVhbCB2b2lkIHNl
dFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJik7CisgICAgdmlydHVhbCB2b2lk
IHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgYm9vbCBhbmltYXRlZCA9
IGZhbHNlKTsKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEludFNpemUmIHMpIHsgcmV0dXJuIHNl
dFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKCkgKyBzKTsgfQogCiAgICAgLy8gVGhpcyBm
dW5jdGlvbiBzY3JvbGxzIGJ5IGxpbmVzLCBwYWdlcyBvciBwaXhlbHMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggOTZkMGYzMDBiMy4uMTUwNzA0YzJk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNzEs
NiArNzEsOSBAQCBTY3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEoKQogICAgICwgbV9zY3Jv
bGxPcmlnaW5DaGFuZ2VkKGZhbHNlKQogICAgICwgbV9jdXJyZW50U2Nyb2xsVHlwZShzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oU2Nyb2xsVHlwZTo6VXNlcikpCiAgICAgLCBtX3Njcm9sbFNob3VsZENs
ZWFyTGF0Y2hlZFN0YXRlKGZhbHNlKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCisgICAgLCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCkpCisjZW5kaWYK
IHsKIH0KIApAQCAtMTQyLDYgKzE0NSwxMiBAQCBib29sIFNjcm9sbGFibGVBcmVhOjpzY3JvbGwo
U2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYQogICAg
IHJldHVybiBzY3JvbGxBbmltYXRvcigpLnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHks
IHN0ZXAsIG11bHRpcGxpZXIpOwogfQogCit2b2lkIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09m
ZnNldFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGlu
ZykKK3sKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGFi
bGVBcmVhICIgPDwgdGhpcyA8PCAiIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbiAiIDw8IG9m
ZnNldCk7CisgICAgc2Nyb2xsQW5pbWF0b3IoKS5zY3JvbGxUb09mZnNldChvZmZzZXQpOworfQor
CiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29u
c3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGFibGVBcmVhICIgPDwg
dGhpcyA8PCAiIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbiAiIDw8IG9mZnNldCk7CkBA
IC0yMjEsMTYgKzIzMCwxNSBAQCBib29sIFNjcm9sbGFibGVBcmVhOjpoYW5kbGVUb3VjaEV2ZW50
KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgdG91Y2hFdmVudCkKIC8vIE5PVEU6IE9ubHkgY2Fs
bGVkIGZyb20gSW50ZXJuYWxzIGZvciB0ZXN0aW5nLgogdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2V0
U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFscyhjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKIHsK
KyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9m
ZnNldChvZmZzZXQpKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgc2V0U2Nyb2xsT2Zmc2V0RnJv
bUFuaW1hdGlvbihvZmZzZXQpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxP
ZmZzZXRGcm9tQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogewotICAgIFNj
cm9sbFBvc2l0aW9uIHBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCk7
Ci0gICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShwb3NpdGlvbikpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZChwb3NpdGlvbik7CisgICAgc2Ny
b2xsUG9zaXRpb25DaGFuZ2VkKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKTsKIH0K
IAogdm9pZCBTY3JvbGxhYmxlQXJlYTo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCBkNzQzOGMxNWNkLi41NTY3MmY4MWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTYyLDcgKzYy
LDExIEBAIGlubGluZSBpbnQgb2Zmc2V0Rm9yT3JpZW50YXRpb24oU2Nyb2xsT2Zmc2V0IG9mZnNl
dCwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50CiAKIGNsYXNzIFNjcm9sbGFibGVBcmVhIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiB7CiBwdWJsaWM6CisgICAgU2Ny
b2xsQmVoYXZpb3JTdGF0dXMgY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgeyByZXR1cm4g
bV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXM7IH0KKyAgICB2b2lkIHNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzIHN0YXR1cykgeyBtX2N1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1cyA9IHN0YXR1czsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3Jv
bGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9
IDEpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1h
dGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6
Q2xhbXBlZCk7CiAgICAgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oU2Nyb2xs
YmFyT3JpZW50YXRpb24sIGZsb2F0IG9mZnNldCk7CiAKQEAgLTI0Miw2ICsyNDYsMTEgQEAgcHVi
bGljOgogICAgIFNjcm9sbFR5cGUgY3VycmVudFNjcm9sbFR5cGUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxTY3JvbGxUeXBlPihtX2N1cnJlbnRTY3JvbGxUeXBlKTsgfQogICAgIHZvaWQg
c2V0Q3VycmVudFNjcm9sbFR5cGUoU2Nyb2xsVHlwZSBzY3JvbGxUeXBlKSB7IG1fY3VycmVudFNj
cm9sbFR5cGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Nyb2xsVHlwZSk7IH0KIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgU2Nyb2xs
QmVoYXZpb3JUeXBlIGN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxTY3JvbGxCZWhhdmlvclR5cGU+KG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZSk7IH0KKyAgICB2b2lkIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZp
b3JUeXBlIHNjcm9sbEJlaGF2aW9yVHlwZSkgeyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorI2VuZGlmCisK
ICAgICBib29sIHNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZTsgfQogICAgIHZvaWQgc2V0U2Nyb2xsU2hv
dWxkQ2xlYXJMYXRjaGVkU3RhdGUoYm9vbCBzaG91bGRDbGVhcikgeyBtX3Njcm9sbFNob3VsZENs
ZWFyTGF0Y2hlZFN0YXRlID0gc2hvdWxkQ2xlYXI7IH0KIApAQCAtMzc4LDYgKzM4Nyw4IEBAIHBy
aXZhdGU6CiAgICAgdW5zaWduZWQgbV9jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleCB7IDAg
fTsKICNlbmRpZgogCisgICAgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgbV9jdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMgeyBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gfTsKKwog
ICAgIC8vIFRoZXJlIGFyZSA4IHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB3cml0aW5nIG1vZGUg
YW5kIGRpcmVjdGlvbi4gU2Nyb2xsIG9yaWdpbiB3aWxsIGJlIG5vbi16ZXJvIGluIHRoZSB4IG9y
IHkgYXhpcwogICAgIC8vIGlmIHRoZXJlIGlzIGFueSByZXZlcnNlZCBkaXJlY3Rpb24gb3Igd3Jp
dGluZy1tb2RlLiBUaGUgY29tYmluYXRpb25zIGFyZToKICAgICAvLyB3cml0aW5nLW1vZGUgLyBk
aXJlY3Rpb24gICAgIHNjcm9sbE9yaWdpbi54KCkgc2V0ICAgIHNjcm9sbE9yaWdpbi55KCkgc2V0
CkBAIC00MDMsNiArNDE0LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3Njcm9sbE9yaWdp
bkNoYW5nZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbFR5cGUgOiAxOyAvLyBT
Y3JvbGxUeXBlCiAgICAgdW5zaWduZWQgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSA6
IDE7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
KyAgICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgOiAxOworI2VuZGlmCiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAKaW5kZXggMjA4YWY3
Yjg0Ny4uYWQzMzJjMzI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2Vu
ZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcApAQCAtMTYyLDYgKzE2Miw4IEBA
IHZvaWQgU2Nyb2xsQW5pbWF0b3JHZW5lcmljOjp3aWxsRW5kTGl2ZVJlc2l6ZSgpCiAKIHZvaWQg
U2Nyb2xsQW5pbWF0b3JHZW5lcmljOjp1cGRhdGVQb3NpdGlvbihGbG9hdFBvaW50JiYgcG9zaXRp
b24pCiB7CisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEucmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBk
YXRlKHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpKQorICAgICAgICByZXR1cm47CiAgICAgRmxv
YXRTaXplIGRlbHRhID0gcG9zaXRpb24gLSBtX2N1cnJlbnRQb3NpdGlvbjsKICAgICBtX2N1cnJl
bnRQb3NpdGlvbiA9IFdURk1vdmUocG9zaXRpb24pOwogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdl
ZChkZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0
b3JNYWMubW0KaW5kZXggZjU5MTc2NzJlZS4uNjM3NTNhZDI2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtMTE1NSw2ICsxMTU1
LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChj
b25zdCBGbG9hdFNpemUmIGRlbHRhKQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpjYW5jZWxB
bmltYXRpb25zKCkKIHsKKyAgICBTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucygpOwog
ICAgIG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZCA9IGZhbHNlOwogCiAgICAgaWYgKHNjcm9s
bGJhclBhaW50VGltZXJJc0FjdGl2ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAppbmRleCBmOGQzYTQ5MjVhLi42ZDFmODU3Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcApAQCAtNTgxLDIwICs1ODEsMjggQEAgc3RhdGljIHZvaWQgc2V0dXBX
aGVlbEV2ZW50TW9uaXRvcihSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgbGF5ZXIuc2Nyb2xsQW5p
bWF0b3IoKS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocGFnZS53aGVlbEV2ZW50VGVzdE1vbml0
b3IoKSk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5k
ZXJCb3g6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwg
Ym9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgaWYgKCFoYXNP
dmVyZmxvd0NsaXAoKSB8fCAhbGF5ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHNldHVwV2hl
ZWxFdmVudE1vbml0b3IoKmxheWVyKCkpOwotICAgIGxheWVyKCktPnNjcm9sbFRvWFBvc2l0aW9u
KG5ld0xlZnQsIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1hQ
b3NpdGlvbihuZXdMZWZ0LCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCi12
b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xs
VG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwgU2Ny
b2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAoKSB8fCAh
bGF5ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHNldHVwV2hlZWxFdmVudE1vbml0b3IoKmxh
eWVyKCkpOwotICAgIGxheWVyKCktPnNjcm9sbFRvWVBvc2l0aW9uKG5ld1RvcCwgc2Nyb2xsVHlw
ZSwgY2xhbXBpbmcpOworICAgIGxheWVyKCktPnNjcm9sbFRvWVBvc2l0aW9uKG5ld1RvcCwgc2Ny
b2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKK30KKwordm9pZCBSZW5kZXJCb3g6OnNldFNj
cm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBz
Y3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3sKKyAg
ICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQorICAgICAgICByZXR1cm47Cisg
ICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7CisgICAgbGF5ZXIoKS0+c2Nyb2xs
VG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0K
IAogdm9pZCBSZW5kZXJCb3g6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywg
Y29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDQ5NTQ4MTQwNTQuLjIyMTkyODA1NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTI0Nyw4ICsyNDcsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBpbnQgc2Nyb2xsVG9wKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgc2Nyb2xs
V2lkdGgoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1w
aW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3Jv
bGxUb3AoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpD
bGFtcGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUs
IGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6
Q2xhbXBlZCk7CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUs
IGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6
Q2xhbXBlZCk7CisgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlv
biYsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBT
Y3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAKICAgICBMYXlvdXRVbml0IG1hcmdpblRvcCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94LnRvcCgpOyB9CiAgICAgTGF5b3V0VW5p
dCBtYXJnaW5Cb3R0b20oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX21hcmdpbkJveC5ib3R0
b20oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZDg0
YWQxYTFkYS4uMGJhODlmNTMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCkBAIC0yNTc1LDE2ICsyNTc1LDI0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmFwcGx5UG9z
dExheW91dFNjcm9sbFBvc2l0aW9uSWZOZWVkZWQoKQogICAgIG1fcG9zdExheW91dFNjcm9sbFBv
c2l0aW9uID0gV1RGOjpudWxsb3B0OwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1hQ
b3NpdGlvbihpbnQgeCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFt
cGluZykKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxU
eXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQog
ewogICAgIFNjcm9sbFBvc2l0aW9uIHBvc2l0aW9uKHgsIG1fc2Nyb2xsUG9zaXRpb24ueSgpKTsK
LSAgICBzY3JvbGxUb09mZnNldChzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBz
Y3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Ny
b2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6c2Ny
b2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwg
U2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFt
cGluZykKIHsKICAgICBTY3JvbGxQb3NpdGlvbiBwb3NpdGlvbihtX3Njcm9sbFBvc2l0aW9uLngo
KSwgeSk7Ci0gICAgc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0
aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIHNjcm9sbFRvUG9zaXRpb24ocG9zaXRp
b24sIHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5
ZXI6OnNjcm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5n
KQoreworICAgIGlmIChhbmltYXRlZCkKKyAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0
aW9uKHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1w
aW5nKTsKKyAgICBlbHNlCisgICAgICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldEZyb21Q
b3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKIH0KIAogU2Nyb2xsT2Zm
c2V0IFJlbmRlckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNj
cm9sbE9mZnNldCkgY29uc3QKQEAgLTI1OTQsMjIgKzI2MDIsNjggQEAgU2Nyb2xsT2Zmc2V0IFJl
bmRlckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9m
ZnNldCkgY28KIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQoY29uc3QgU2Nyb2xs
T2Zmc2V0JiBzY3JvbGxPZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcgY2xhbXBpbmcpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2
aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKworICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24p
CisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOworCiAgICAgU2Ny
b2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGlu
Zzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCkgOiBzY3JvbGxPZmZz
ZXQ7Ci0gICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkp
CisgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpIHsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAg
ICAgICAvLyBJZiBVSVNjcm9sbFZpZXcgaXMgcGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24s
IHRoZSBzY3JvbGwgb2Zmc2V0IG9mIHRoZSBXZWIgcHJvY2VzcyBtaWdodCBiZSBvdmVycmlkZGVu
LgorICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGNhbGwgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBk
YXRlIGhlcmUgYW5kIGxldCBpdCBiZSBjaGVja2VkIG9uIHRoZSBVSSBwcm9jZXNzLgorICAgICAg
ICAvLyBJZiB0aGUgc2Nyb2xsIG9mZnNldCBvbiB0aGUgVUkgcHJvY2VzcyBpcyBkaWZmZXJlbnQs
IHRoZSBjb3JyZWN0IHNjcm9sbCBvZmZzZXQgbmVlZHMgdG8gc3luYyBiYWNrIHRvIHRoZSBXZWIg
cHJvY2Vzcy4KKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgICAgIHJlcXVl
c3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQoY2xhbXBlZFNj
cm9sbE9mZnNldCkpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRv
IHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVu
dFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CiAKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKICNp
ZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciog
c2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlKCkuc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKLSAg
ICAgICAgaGFuZGxlZCA9IHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5yZXF1ZXN0U2Nyb2xsUG9zaXRp
b25VcGRhdGUoKnRoaXMsIHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zm
c2V0KSk7CisgICAgaGFuZGxlZCA9IHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQ
b3NpdGlvbkZyb21PZmZzZXQoY2xhbXBlZFNjcm9sbE9mZnNldCkpOwogI2VuZGlmCiAKLSAgICBp
ZiAoIWhhbmRsZWQpCisgICAgaWYgKCFoYW5kbGVkKSB7CiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0
V2l0aG91dEFuaW1hdGlvbihjbGFtcGVkU2Nyb2xsT2Zmc2V0LCBjbGFtcGluZyk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1h
dGlvbik7CisgICAgfQorCisgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxU
eXBlKTsKK30KKworYm9vbCBSZW5kZXJMYXllcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
KGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyNpZiBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQorICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0
b3IgPSBwYWdlKCkuc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgcmV0dXJuIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yLT5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKnRoaXMsIHBvc2l0
aW9uKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KIAordm9pZCBSZW5kZXJMYXllcjo6
c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGF1
dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAg
c2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyNlbmRpZgorCisgICAgU2Nyb2xsT2Zmc2V0IG5ld1Njcm9sbE9mZnNldCA9IGNs
YW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQob2Zm
c2V0KSA6IG9mZnNldDsKKyAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0g
U2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICBzY3Jv
bGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKKyAgICBpZiAobmV3U2Nyb2xsT2Zmc2V0
ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xs
VG9PZmZzZXRXaXRoQW5pbWF0aW9uKG5ld1Njcm9sbE9mZnNldCk7CiAgICAgc2V0Q3VycmVudFNj
cm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKIH0KIApAQCAtMjY0NSw3ICsyNjk5LDcgQEAg
dm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9u
KQogI2VuZGlmCiAgICAgfQogICAgIAotICAgIGlmIChtX3Njcm9sbFBvc2l0aW9uID09IG5ld1Bv
c2l0aW9uKSB7CisgICAgaWYgKG1fc2Nyb2xsUG9zaXRpb24gPT0gbmV3UG9zaXRpb24gJiYgY3Vy
cmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdElu
QW5pbWF0aW9uKSB7CiAgICAgICAgIC8vIEZJWE1FOiBOb3RoaW5nIGd1YXJhbnRlZXMgd2UgZ2V0
IGEgc2Nyb2xsVG8oKSB3aXRoIGFuIHVuY2hhbmdlZCBwb3NpdGlvbiBhdCB0aGUgZW5kIG9mIGEg
dXNlciBnZXN0dXJlLgogICAgICAgICAvLyBUaGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgcHJvYmFi
bHkgbmVlZHMgdG8gbWVzc2FnZSB0aGUgbWFpbiB0aHJlYWQgd2hlbiBhIGdlc3R1cmUgZW5kcy4K
ICAgICAgICAgaWYgKHJlcXVpcmVzU2Nyb2xsUG9zaXRpb25SZWNvbmNpbGlhdGlvbigpKSB7CkBA
IC0yNzkwLDEwICsyODQ0LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2li
bGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgIExh
eW91dFJlY3QgcmV2ZWFsUmVjdCA9IGdldFJlY3RUb0V4cG9zZShsYXllckJvdW5kcywgbG9jYWxF
eHBvc2VSZWN0LCBpbnNpZGVGaXhlZCwgb3B0aW9ucy5hbGlnblgsIG9wdGlvbnMuYWxpZ25ZKTsK
IAogICAgICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1wU2Nyb2xs
T2Zmc2V0KHNjcm9sbE9mZnNldCgpICsgdG9JbnRTaXplKHJvdW5kZWRJbnRSZWN0KHJldmVhbFJl
Y3QpLmxvY2F0aW9uKCkpKTsKLSAgICAgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Ny
b2xsT2Zmc2V0KCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygp
ID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiB8fCBjbGFtcGVkU2Nyb2xs
T2Zmc2V0ICE9IHNjcm9sbE9mZnNldCgpKSB7CiAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgb2xk
U2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0KCk7Ci0gICAgICAgICAgICBzY3JvbGxUb09mZnNl
dChjbGFtcGVkU2Nyb2xsT2Zmc2V0KTsKLSAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0
RGlmZmVyZW5jZSA9IHNjcm9sbE9mZnNldCgpIC0gb2xkU2Nyb2xsT2Zmc2V0OworICAgICAgICAg
ICAgYm9vbCBhbmltYXRlZCA9IChib3gtPmVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmco
b3B0aW9ucy5iZWhhdmlvciwgKmJveC0+ZWxlbWVudCgpKSk7CisgICAgICAgICAgICBzY3JvbGxU
b1Bvc2l0aW9uKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwg
U2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7CisgICAgICAgICAgICBJbnRTaXpl
IHNjcm9sbE9mZnNldERpZmZlcmVuY2UgPSBjbGFtcGVkU2Nyb2xsT2Zmc2V0IC0gb2xkU2Nyb2xs
T2Zmc2V0OwogICAgICAgICAgICAgbG9jYWxFeHBvc2VSZWN0Lm1vdmUoLXNjcm9sbE9mZnNldERp
ZmZlcmVuY2UpOwogICAgICAgICAgICAgbmV3UmVjdCA9IExheW91dFJlY3QoYm94LT5sb2NhbFRv
QWJzb2x1dGVRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobG9jYWxFeHBvc2VSZWN0KSksIFVzZVRy
YW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwogICAgICAgICB9CkBAIC0yODEzLDEwICsyODY4LDEz
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVj
dCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCB2
aWV3UmVjdCA9IGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoTGVnYWN5SU9TRG9jdW1lbnRW
aXNpYmxlUmVjdCk7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBleHBvc2VSZWN0ID0gZ2V0
UmVjdFRvRXhwb3NlKHZpZXdSZWN0LCBhYnNvbHV0ZVJlY3QsIGluc2lkZUZpeGVkLCBvcHRpb25z
LmFsaWduWCwgb3B0aW9ucy5hbGlnblkpOwogCi0gICAgICAgICAgICAgICAgSW50UG9pbnQgc2Ny
b2xsT2Zmc2V0KHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkpKTsKKyAgICAg
ICAgICAgICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbihyb3VuZGVkSW50UG9pbnQoZXhwb3Nl
UmVjdC5sb2NhdGlvbigpKSk7CiAgICAgICAgICAgICAgICAgLy8gQWRqdXN0IG9mZnNldHMgaWYg
dGhleSdyZSBvdXRzaWRlIG9mIHRoZSBhbGxvd2FibGUgcmFuZ2UuCi0gICAgICAgICAgICAgICAg
c2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2ludCgp
LCBJbnRQb2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKLSAgICAgICAgICAgICAgICBm
cmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsT2Zmc2V0KTsKKyAgICAgICAgICAgICAg
ICBzY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQ
b2ludCgpLCBJbnRQb2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKKyAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBjb250ZW50RG9jdW1lbnQoKS0+c2Nyb2xsaW5n
RWxlbWVudCgpPworICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9
IG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCkgJiYgb3duZXJFbGVtZW50LT5jb250ZW50
RG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlv
bnMuYmVoYXZpb3IsICpvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1bWVudEVs
ZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKHNj
cm9sbFBvc2l0aW9uLCBhbmltYXRlZCk7CiAKICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5z
aG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nID09IFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5T
Y3JvbGxpbmc6OlllcyB8fCBmcmFtZVZpZXcuc2FmZVRvUHJvcGFnYXRlU2Nyb2xsVG9QYXJlbnQo
KSkgewogICAgICAgICAgICAgICAgICAgICBwYXJlbnRMYXllciA9IG93bmVyRWxlbWVudC0+cmVu
ZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKTsKQEAgLTI4NTUsNyArMjkxMywxMCBAQCB2b2lkIFJl
bmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRl
UmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAgICAgLy8gQXZvaWQgc2Nyb2xsaW5nIHRvIHRoZSBy
b3VuZGVkIHZhbHVlIG9mIHJldmVhbFJlY3QubG9jYXRpb24oKSBpZiB3ZSBkb24ndCBhY3R1YWxs
eSBuZWVkIHRvIHNjcm9sbAogICAgICAgICAgICAgaWYgKHJldmVhbFJlY3QgIT0gdmlld1JlY3Qp
IHsKICAgICAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbFBvc2l0aW9uID0g
cm91bmRlZEludFBvaW50KHJldmVhbFJlY3QubG9jYXRpb24oKSkuY29uc3RyYWluZWRCZXR3ZWVu
KG1pblNjcm9sbFBvc2l0aW9uLCBtYXhTY3JvbGxQb3NpdGlvbik7Ci0gICAgICAgICAgICAgICAg
ZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7CisgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5n
RWxlbWVudCgpPworICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9
IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3Jv
bGxpbmcob3B0aW9ucy5iZWhhdmlvciwgKnJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kb2N1bWVudEVs
ZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNs
YW1wZWRTY3JvbGxQb3NpdGlvbiwgYW5pbWF0ZWQpOwogICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICAvLyBUaGlzIGlzIHRoZSBvdXRlcm1vc3QgdmlldyBvZiBhIHdlYiBwYWdlLCBzbyBhZnRl
ciBzY3JvbGxpbmcgdGhpcyB2aWV3IHdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCmluZGV4IDZjYTQyMmI3YjIuLjhjOTc3ODM3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHRyLmgiCisjaW5jbHVk
ZSAiU2Nyb2xsQmVoYXZpb3IuaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1
ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtMTM0LDYgKzEzNSw3IEBA
IHN0cnVjdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9ucyB7CiAgICAgY29uc3QgU2Nyb2xsQWxp
Z25tZW50JiBhbGlnblggeyBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQgfTsK
ICAgICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSB7IFNjcm9sbEFsaWdubWVudDo6YWxp
Z25DZW50ZXJJZk5lZWRlZCB9OwogICAgIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcg
c2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyB7IFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5T
Y3JvbGxpbmc6Ok5vIH07CisgICAgU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IgeyBTY3JvbGxCZWhh
dmlvcjo6QXV0byB9OwogfTsKIAogY2xhc3MgUmVuZGVyTGF5ZXIgZmluYWwgOiBwdWJsaWMgU2Ny
b2xsYWJsZUFyZWEgewpAQCAtNDM5LDkgKzQ0MSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3Jv
bGxCeVJlY3Vyc2l2ZWx5KGNvbnN0IEludFNpemUmIGRlbHRhLCBTY3JvbGxhYmxlQXJlYSoqIHNj
cm9sbGVkQXJlYSA9IG51bGxwdHIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxU
b09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBT
Y3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3Jv
bGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAotICAgIHZvaWQgc2Nyb2xs
VG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xh
bXBpbmc6OkNsYW1wZWQpOwotICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9s
bFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIGJv
b2wgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgb3Zl
cnJpZGU7CisKKyAgICB2b2lkIHNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlLCBi
b29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsK
KyAgICB2b2lkIHNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlLCBib29sIGFuaW1h
dGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2b2lk
IHNjcm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlLCBib29s
IGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAog
ICAgIC8vIFRoZXNlIGFyZSBvbmx5IHVzZWQgYnkgbWFycXVlZS4KICAgICB2b2lkIHNjcm9sbFRv
WE9mZnNldChpbnQgeCkgeyBzY3JvbGxUb09mZnNldChTY3JvbGxPZmZzZXQoeCwgc2Nyb2xsT2Zm
c2V0KCkueSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6VW5j
bGFtcGVkKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmlu
ZGV4IDI1Y2QyZDMzYTcuLmMzM2U5MDYwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAKQEAgLTc0Myw3ICs3NDMsNyBAQCBpbnQgUmVuZGVyTGlzdEJveDo6
c2Nyb2xsTGVmdCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJv
eDo6c2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBS
ZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xs
Q2xhbXBpbmcpCiB7CiB9CiAKQEAgLTc2MCw3ICs3NjAsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcihSZW5kZXJMaXN0Qm94JiByZW5kZXJlcikKICAgICByZW5kZXJl
ci5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihyZW5kZXJlci5wYWdl
KCkud2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwogfQogCi12b2lkIFJlbmRlckxpc3RCb3g6OnNl
dFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQg
UmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJvb2ws
IFNjcm9sbENsYW1waW5nKQogewogICAgIC8vIERldGVybWluZSBhbiBpbmRleCBhbmQgc2Nyb2xs
IHRvIGl0LiAgICAKICAgICBpbnQgaW5kZXggPSBuZXdUb3AgLyBpdGVtSGVpZ2h0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAppbmRleCA2NWQ5MjI2YjNhLi4yNWM5
MDY1MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTEw
Niw4ICsxMDYsOCBAQCBwcml2YXRlOgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBpbnQgc2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xs
SGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Ny
b2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9w
KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0
U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENs
YW1waW5nKSBvdmVycmlkZTsKIAogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJl
cXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbklu
Q29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RB
Y3Rpb24pIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IDllZTg4ODg2NzEuLjRkZjdk
MzE4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0zNzYsMTMgKzM3NiwxMyBAQCBpbnQgUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzY3JvbGxUb3AoKSBjb25zdAogICAgIHJldHVybiBSZW5k
ZXJCbG9ja0Zsb3c6OnNjcm9sbFRvcCgpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcpCit2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsTGVmdChp
bnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpCiB7CiAgICAgaWYg
KGlubmVyVGV4dEVsZW1lbnQoKSkKICAgICAgICAgaW5uZXJUZXh0RWxlbWVudCgpLT5zZXRTY3Jv
bGxMZWZ0KG5ld0xlZnQpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6
c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9p
ZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBT
Y3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxl
bWVudCgpKQogICAgICAgICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbFRvcChuZXdUb3Ap
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oCmluZGV4IDNmNTc4NmRmZTQuLjY2NmFhMzE0NTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgK
QEAgLTU3LDggKzU3LDggQEAgcHJpdmF0ZToKICAgICBpbnQgc2Nyb2xsVG9wKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgaW50IHNjcm9sbFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IHNj
cm9sbEhlaWdodCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQs
IFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFNjcm9s
bFRvcChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykgb3Zl
cnJpZGU7CisgICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3Jv
bGxDbGFtcGluZykgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBT
Y3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIEVsZW1lbnQqKiBzdG9wRWxl
bWVudCA9IG51bGxwdHIsIFJlbmRlckJveCogc3RhcnRCb3ggPSBudWxscHRyLCBjb25zdCBJbnRQ
b2ludCYgd2hlZWxFdmVudEFic29sdXRlUG9pbnQgPSBJbnRQb2ludCgpKSBmaW5hbDsKICAgICBi
b29sIGxvZ2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLCBFbGVtZW50Kiogc3RvcEVsZW1lbnQgPSAwKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRl
eCA1ZGNiMjFjNjQ2Li4wMDdhNGQxMzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNzM2LDYgKzczNiw4IEBAIHB1YmxpYzoKICAgICBib29s
IHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBtX3JhcmVJbmhlcml0
ZWREYXRhLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nOyB9CiAjZW5kaWYKIAorICAgIGJvb2wg
dXNlU21vb3RoU2Nyb2xsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0
YS0+dXNlU21vb3RoU2Nyb2xsaW5nOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQog
ICAgIFRleHRTaXplQWRqdXN0bWVudCB0ZXh0U2l6ZUFkanVzdCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFyZUluaGVyaXRlZERhdGEtPnRleHRTaXplQWRqdXN0OyB9CiAgICAgQXV0b3NpemVTdGF0dXMg
YXV0b3NpemVTdGF0dXMoKSBjb25zdDsKQEAgLTEyNjcsNiArMTI2OSw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoYm9vbCB2KSB7IFNFVF9WQVIobV9y
YXJlSW5oZXJpdGVkRGF0YSwgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZywgdik7IH0KICNlbmRp
ZgogCisgICAgdm9pZCBzZXRVc2VTbW9vdGhTY3JvbGxpbmcoYm9vbCB2KSB7IFNFVF9WQVIobV9y
YXJlTm9uSW5oZXJpdGVkRGF0YSwgdXNlU21vb3RoU2Nyb2xsaW5nLCB2KTsgfQorCiAjaWYgRU5B
QkxFKFRFWFRfQVVUT1NJWklORykKICAgICB2b2lkIHNldFRleHRTaXplQWRqdXN0KFRleHRTaXpl
QWRqdXN0bWVudCBhZGp1c3RtZW50KSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgdGV4
dFNpemVBZGp1c3QsIGFkanVzdG1lbnQpOyB9CiAgICAgdm9pZCBzZXRBdXRvc2l6ZVN0YXR1cyhB
dXRvc2l6ZVN0YXR1cyk7CkBAIC0xNzA0LDYgKzE3MDgsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGJvb2wgaW5pdGlhbFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxzZTsg
fQogI2VuZGlmCiAKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNlU21vb3RoU2Nyb2xsaW5nKCkg
eyByZXR1cm4gZmFsc2U7IH0KKwogICAgIHN0YXRpYyBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBp
bml0aWFsRmlsdGVyKCkgeyBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmlsdGVyT3BlcmF0aW9ucz4g
b3BzOyByZXR1cm4gb3BzOyB9CiAgICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGlu
aXRpYWxBcHBsZUNvbG9yRmlsdGVyKCkgeyBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmlsdGVyT3Bl
cmF0aW9ucz4gb3BzOyByZXR1cm4gb3BzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRl
eCBmYjMyMDgyMzM3Li5kMmE1MzFmYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC04
Nyw2ICs4Nyw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEoKQogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KHN0YXRpY19jYXN0PHVuc2lnbmVk
PihSZW5kZXJTdHlsZTo6aW5pdGlhbEJhY2tmYWNlVmlzaWJpbGl0eSgpKSkKICAgICAsIHVzZXJE
cmFnKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZXJEcmFnKCkp
KQogICAgICwgdGV4dE92ZXJmbG93KHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6
aW5pdGlhbFRleHRPdmVyZmxvdygpKSkKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcoKSkp
CiAgICAgLCBtYXJnaW5CZWZvcmVDb2xsYXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTWFyZ2lu
Q29sbGFwc2U6OkNvbGxhcHNlKSkKICAgICAsIG1hcmdpbkFmdGVyQ29sbGFwc2Uoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KE1hcmdpbkNvbGxhcHNlOjpDb2xsYXBzZSkpCiAgICAgLCBhcHBlYXJhbmNl
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEFwcGVhcmFuY2UoKSkp
CkBAIC0xODAsNiArMTgxLDcgQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIGJhY2tm
YWNlVmlzaWJpbGl0eShvLmJhY2tmYWNlVmlzaWJpbGl0eSkKICAgICAsIHVzZXJEcmFnKG8udXNl
ckRyYWcpCiAgICAgLCB0ZXh0T3ZlcmZsb3coby50ZXh0T3ZlcmZsb3cpCisgICAgLCB1c2VTbW9v
dGhTY3JvbGxpbmcoby51c2VTbW9vdGhTY3JvbGxpbmcpCiAgICAgLCBtYXJnaW5CZWZvcmVDb2xs
YXBzZShvLm1hcmdpbkJlZm9yZUNvbGxhcHNlKQogICAgICwgbWFyZ2luQWZ0ZXJDb2xsYXBzZShv
Lm1hcmdpbkFmdGVyQ29sbGFwc2UpCiAgICAgLCBhcHBlYXJhbmNlKG8uYXBwZWFyYW5jZSkKQEAg
LTI3OCw2ICsyODAsNyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9y
PT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBiYWNr
ZmFjZVZpc2liaWxpdHkgPT0gby5iYWNrZmFjZVZpc2liaWxpdHkKICAgICAgICAgJiYgdXNlckRy
YWcgPT0gby51c2VyRHJhZwogICAgICAgICAmJiB0ZXh0T3ZlcmZsb3cgPT0gby50ZXh0T3ZlcmZs
b3cKKyAgICAgICAgJiYgdXNlU21vb3RoU2Nyb2xsaW5nID09IG8udXNlU21vb3RoU2Nyb2xsaW5n
CiAgICAgICAgICYmIG1hcmdpbkJlZm9yZUNvbGxhcHNlID09IG8ubWFyZ2luQmVmb3JlQ29sbGFw
c2UKICAgICAgICAgJiYgbWFyZ2luQWZ0ZXJDb2xsYXBzZSA9PSBvLm1hcmdpbkFmdGVyQ29sbGFw
c2UKICAgICAgICAgJiYgYXBwZWFyYW5jZSA9PSBvLmFwcGVhcmFuY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5oCmluZGV4IDE5YzU5MWIyZDEuLjE2YTI4NTEzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApA
QCAtMTgxLDYgKzE4MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHVzZXJEcmFnIDogMjsg
Ly8gVXNlckRyYWcKICAgICB1bnNpZ25lZCB0ZXh0T3ZlcmZsb3cgOiAxOyAvLyBXaGV0aGVyIG9y
IG5vdCBsaW5lcyB0aGF0IHNwaWxsIG91dCBzaG91bGQgYmUgdHJ1bmNhdGVkIHdpdGggIi4uLiIK
KyAgICB1bnNpZ25lZCB1c2VTbW9vdGhTY3JvbGxpbmcgOiAxOyAvLyBTY3JvbGxCZWhhdmlvcgog
ICAgIHVuc2lnbmVkIG1hcmdpbkJlZm9yZUNvbGxhcHNlIDogMjsgLy8gTWFyZ2luQ29sbGFwc2UK
ICAgICB1bnNpZ25lZCBtYXJnaW5BZnRlckNvbGxhcHNlIDogMjsgLy8gTWFyZ2luQ29sbGFwc2UK
ICAgICB1bnNpZ25lZCBhcHBlYXJhbmNlIDogNjsgLy8gRUFwcGVhcmFuY2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKaW5kZXggN2YzZjBjYmM0ZS4uZTM4
MjA0ZjY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29u
dmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVy
LmgKQEAgLTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgY29udmVydE92
ZXJmbG93U2Nyb2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAjZW5kaWYK
ICAgICBzdGF0aWMgRm9udEZlYXR1cmVTZXR0aW5ncyBjb252ZXJ0Rm9udEZlYXR1cmVTZXR0aW5n
cyhCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOworICAgIHN0YXRpYyBib29sIGNvbnZl
cnRTbW9vdGhTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKICAgICBz
dGF0aWMgRm9udFNlbGVjdGlvblZhbHVlIGNvbnZlcnRGb250V2VpZ2h0RnJvbVZhbHVlKGNvbnN0
IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIEZvbnRTZWxlY3Rpb25WYWx1ZSBjb252ZXJ0Rm9udFN0
cmV0Y2hGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgT3B0aW9uYWw8Rm9u
dFNlbGVjdGlvblZhbHVlPiBjb252ZXJ0Rm9udFN0eWxlRnJvbVZhbHVlKGNvbnN0IENTU1ZhbHVl
Jik7CkBAIC0xNDAzLDYgKzE0MDQsMTEgQEAgaW5saW5lIGJvb2wgQnVpbGRlckNvbnZlcnRlcjo6
Y29udmVydE92ZXJmbG93U2Nyb2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1YKIH0KICNl
bmRpZgogCitpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U21vb3RoU2Nyb2xs
aW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICByZXR1cm4g
ZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS52YWx1ZUlEKCkgPT0gQ1NTVmFsdWVT
bW9vdGg7Cit9CisKIGlubGluZSBTVkdMZW5ndGhWYWx1ZSBCdWlsZGVyQ29udmVydGVyOjpjb252
ZXJ0U1ZHTGVuZ3RoVmFsdWUoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQog
ewogICAgIHJldHVybiBTVkdMZW5ndGhWYWx1ZTo6ZnJvbUNTU1ByaW1pdGl2ZVZhbHVlKGRvd25j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IGUwNzc3OTYyZDUuLjcyNDAwODEwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTE3NDYsNyArMTc0Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IElu
dGVybmFsczo6dW5jb25zdHJhaW5lZFNjcm9sbFRvKEVsZW1lbnQmIGVsZW1lbnQsIGRvdWJsZSB4
LCBkCiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkKICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCi0gICAgZWxlbWVudC5zY3Jv
bGxUbyh7IHgsIHkgfSwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CisgICAgZWxlbWVudC5z
Y3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSksIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQp
OwogICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg0NTJlN2Y5MS4uYjI4YWE0ZDBj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxOS0xMi0xMSAgQ2F0aGllIENoZW4gIDxj
YXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBi
ZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZv
cm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkz
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2Vk
IG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIENTU09NIHNt
b290aCBzY3JvbGxpbmcgYXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuIE9uIGlvcyBwbGF0Zm9y
bSwgdXNlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaW50ZXJmYWNlcyB0byBw
ZXJmb3JtYW5jZSBzbW9vdGggc2Nyb2xsIGFuZCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8g
dGhlIFdlYiBwcm9jZXNzLgorCisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZT46OmVuY29kZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZT46OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXApOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAocG9p
bnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbCk6IEhlbHAgZnVuY3Rpb24gdG8gY2hlY2sgaWYg
dHdvIGZsb2F0IHBvaW50cyBhcmUgbm90IGVxdWFsIGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4
ZWwuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246
c2Nyb2xsT3JpZ2luOmFuaW1hdGVkOl0pOiBBZGQgYW5pbWF0ZWQgZmxhZyB0byBzdGFydCBhIGFu
aW1hdGVkIHNjcm9sbCBpZiBuZWVkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBzY3JvbGxWaWV3
RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOl0pOiBTZW5kIHNyb2xsIGVuZCBtZXNzYWdlIHRvIHRo
ZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3Jv
bGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdl
Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnJlcXVlc3RTY3JvbGxXaXRo
QW5pbWF0aW9uKTogUHJvdmlkZSBpbnRlcmZhY2UgZm9yIGFuaW1hdGVkIHNjcm9sbGluZy4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHk6OmNvbW1pdExheWVyVHJlZSk6IEFkZCBhbmltYXRlZCBmbGFnLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNj
cm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKTogU3luYyB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRo
ZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhbmltYXRlZCBz
Y3JvbGxpbmcgaW5mbyB0byBtX3JlcXVlc3RlZFNjcm9sbEluZm8uCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogU3luYyBzY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzRGlkQ2hhbmdlKTogRGl0dG8uIEl0J3Mgc3BlY2lmaWMgdG8gdGhlIHJvb3Qg
bm9kZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxp
bmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6IEFkZCBhbmltYXRlZCBpbmZvLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJl
cXVlc3RzU2Nyb2xsKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdl
KTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW06CisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3Jv
bGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOl0pOiBTZW5kIHNjb2xsIGVuZCBpbmZvIHRv
IHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTogSWYgdGhlIHNjcm9s
bCBwb3NpdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MgaXNuJ3QgZXF1YWwgdG8gdGhlIFVJIHByb2Nl
c3MsCisgICAgICAgIHRoZSBzY3JvbGwgcG9zaXRpb24gc2hvdWxkIGJlIHN5bmNocm9uaXplZCwg
ZXZlbiB0aGVyZSdzIG5vIHNjcm9sbGluZyBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisg
ICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJl
cG9zaXRpb25TY3JvbGxpbmdMYXllcnMpOiBDYWxsaW5nIHRoZSBuYXRpdmUgYW5pbWF0ZWQgc2Ny
b2xsaW5nIGludGVyZmFjZSBmb3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgSWYgdGhlcmUncyBh
IHNjcm9sbCBhbmltYXRpb24gcGVyZm9ybWluZywgaXQgc2hvdWxkIGJlIHN0b3BwZWQgZmlyc3Qs
IHRoZW4gc3RhcnQgYSBuZXcgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5p
bWF0aW9uKTogU3luYyBzY3JvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTY3JvbGwpOiBUbyBjYWxsIGRpZmZlcmVudCBmdW5jdGlvbnMgZm9yIHNt
b290aCBhbmQgaW5zdGFudCBzY3JvbGwuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSk6CisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0
aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVo
YXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA1MDA5CisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcgYXMgYW4g
ZXhwZXJpbWVudGFsIGZlYXR1cmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBX
YW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAxOS0xMi0xMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgbG9h
ZCBzb29uZXIgb24gc3dpcGUgYmFjay9mb3J3YXJkIG5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAppbmRleCBkN2IxZTE5
MzcyLi41NzQ0ZTFjODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xNTIsNiArMTUyLDkgQEAgdm9pZCBBcmd1bWVudENv
ZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdAogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zLCBzY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMpCiAg
ICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKQogICAgIFNDUk9M
TElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGwpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBTQ1JPTExJTkdfTk9ERV9F
TkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
biwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKQorI2VuZGlmCiAKICAgICBp
ZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8R3Jh
cGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNjcm9sbENvbnRhaW5lckxheWVyKCkp
OwpAQCAtMjYwLDcgKzI2MywxNCBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9sbAogICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAg
Ym9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNj
cm9sbFdpdGhBbmltYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBu
b2RlLnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCByZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxXaXRoQW5pbWF0aW9uKTsKKyNlbHNlCiAgICAgICAg
IG5vZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKG5vZGUuaGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFp
bmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjE4LDkgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMK
ICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkg
ewogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24iLCBu
b2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB0cy5kdW1wUHJvcGVydHko
InJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0aWMiLCBub2RlLnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3Jv
bGwtcG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
V2l0aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICghY2hhbmdlZFByb3Bl
cnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWwKaW5kZXggMmU3YjRiNGZlNC4uZmViMmMzZjg0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzI0LDYgKzEzMjQsMTMgQEAgQmxv
Y2tpbmdPZlNtYWxsUGx1Z2luc0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IlN0b3AgcGx1Z2lucyBzbWFsbGVyIHRoYW4gYSBjZXJ0YWluIHRocmVzaG9sZCBmcm9tIGxvYWRp
bmcuIgogICBjYXRlZ29yeTogaW50ZXJuYWwKIAorQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiQ1NTT00gVmlldyBTbW9vdGggU2Nyb2xsaW5nIgorICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJFbmFibGUgRE9NIEFQSSBhbmQgQ1NTIHByb3BlcnR5IGZvciAnc21vb3RoJyBz
Y3JvbGwgYmVoYXZpb3IiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogV2ViQW5pbWF0aW9u
c0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzMzU0YWM2ZWVj
Li4xMDhlNGMwM2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KQEAgLTE2MTcsNiArMTYxNywxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcG9p
bnRzRXF1YWxJbkRldmljZVBpeGVscyhDR1BvaW50IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2aWNl
UwogICAgICAgICAmJiBmYWJzKGEueSAqIGRldmljZVNjYWxlRmFjdG9yIC0gYi55ICogZGV2aWNl
U2NhbGVGYWN0b3IpIDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKIH0K
IAorc3RhdGljIGlubGluZSBib29sIHBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoQ0dQ
b2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIHJldHVy
biBDR1JvdW5kKGEueCAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueCAqIGRldmlj
ZVNjYWxlRmFjdG9yKQorICAgICAgICAmJiBDR1JvdW5kKGEueSAqIGRldmljZVNjYWxlRmFjdG9y
KSA9PSBDR1JvdW5kKGIueSAqIGRldmljZVNjYWxlRmFjdG9yKTsKK30KIHN0YXRpYyBDR1NpemUg
cm91bmRTY3JvbGxWaWV3Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBh
Z2UsIENHU2l6ZSBjb250ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9
IHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKTsKQEAgLTIzNDEsOSArMjM0NiwxMCBAQCBzdGF0aWMg
V2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0
UG9pbnQgY29udGVudE9mZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0
d2VlbihXZWJDb3JlOjpGbG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNv
bnRlbnRPZmZzZXQpKTsKIH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRp
b246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJD
b3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9s
bFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdp
bjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVk
CiB7Ci0gICAgaWYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNW
aWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpO
b3RSZXNpemluZykKKyAgICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBw
ZWQuCisgICAgaWYgKCFhbmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlv
biB8fCBfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9y
dFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29y
ZTo6RmxvYXRQb2ludCBjb250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xs
T3JpZ2luKSk7CkBAIC0yMzU3LDEzICsyMzYzLDIxIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBv
aW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2Zm
CiAKICAgICBbX3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107
CiAKLSAgICBpZiAoIUNHUG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmll
d0Nvb3JkaW5hdGVzLCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Nj
cm9sbFZpZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXNdOworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1
dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4K
KyAgICAvLyBXZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhl
cmUuCisgICAgaWYgKCFwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZz
ZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBf
cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250
ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDph
bmltYXRlZF07CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBh
bnl0aGluZywgdGhlcmUgd291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRl
IHNlbnQgdG8gdGhlIGNvbnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtl
ZXAgdGhlIGludmFsaWQgY29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAg
ICAgICAvLyBUbyBzeW5jaHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2Ny
ZWVuLCB3ZSBzZW5kIHRoZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdl
LT5yZXNlbmRMYXN0VmlzaWJsZUNvbnRlbnRSZWN0cygpOworICAgICAgICAvLyBJZiBfc2Nyb2xs
VmlldyB3b24ndCBjaGFuZ2UsIHdlIHN0aWxsIG5lZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nlc3Mg
dGhhdCB0aGUgYW5pbWF0aW9uIHN0b3BwZWQuCisgICAgICAgIGlmIChhbmltYXRlZCkgeworICAg
ICAgICAgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGlu
YXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgICAgICAgICBp
ZiAoY29vcmRpbmF0b3IpCisgICAgICAgICAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1Ry
ZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7Cisg
ICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTI4NzksNiArMjg5MywxMCBAQCBzdGF0aWMgV2ViQ29y
ZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQg
Y29udGVudE9mZgogLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihV
SVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiB7CiAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGlu
Z107CisKKyAgICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3Jk
aW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICBpZiAoY29v
cmRpbmF0b3IpCisgICAgICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Nj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOwogfQogCiAtICh2b2lkKV9z
Y3JvbGxWaWV3RGlkSW50ZXJydXB0RGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxW
aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdJbnRlcm5hbC5oCmluZGV4IDQzNTA4MGYzMjQuLjVjYjVmNTgxNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBA
IC05Nyw3ICs5Nyw3IEBAIHN0cnVjdCBQcmludEluZm87CiAKIC0gKFJlZlB0cjxXZWJLaXQ6OlZp
ZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3Q7CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVu
dFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9s
bE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luOworLSAodm9pZClfc2Nyb2xs
VG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRp
b24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6
KEJPT0wpYW5pbWF0ZWQ7CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVj
dCl0YXJnZXRSZWN0IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNj
cm9sbERpc3RhbmNlOihmbG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFuY2U7CiAtIChkb3VibGUpX2lu
aXRpYWxTY2FsZUZhY3RvcjsKIC0gKGRvdWJsZSlfY29udGVudFpvb21TY2FsZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlODQ4MjRmZDg1Li5kZTNkMzM2NzlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDggQEAgcHVibGlj
OgogICAgIC8vIFRlbGwgdGhlIHZpZXcgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBwb3NpdGlvbiwg
YW5kIHdoZXRoZXIgdGhpcyB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgogICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxP
cmlnaW4pIHsgfQorCiAgICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiAo
bm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwg
YmVjYXVzZSBvZiBzY2FsaW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZs
b2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDM4MGYxMjQ0NDMuLjBhNDJmOTQ0
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1t
CkBAIC0yMjQsOCArMjI0LDE0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAKICAgICAvLyBI
YW5kbGUgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzIGZyb20gdGhlIHNjcm9sbGlu
ZyB0cmVlIHRyYW5zYWN0aW9uIGFmdGVyIGRpZENvbW1pdExheWVyVHJlZSgpCiAgICAgLy8gaGFz
IHVwZGF0ZWQgdGhlIHZpZXcgc2l6ZSBiYXNlZCBvbiB0aGUgY29udGVudCBzaXplLgotICAgIGlm
IChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpCi0gICAg
ICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCkp
OworICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRh
dGUpIHsKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3Jv
bGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAsIGxheWVyVHJlZVRy
YW5zYWN0aW9uLnNjcm9sbE9yaWdpbigpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAg
ICAgICAgICwgcmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0V2l0aEFuaW1hdGlvbgorI2VuZGlm
CisgICAgICAgICAgICApOworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQogCiAgICAgaWYgKG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0KSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggNDgyM2Y3NmE5
Ny4uMWQ0MGE2YTZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6
CiB9CiAKIC8vIFRoaXMgY29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUuCi12b2lkIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNj
cm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xs
UG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdp
biwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVl
Tm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0
UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5
b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikK
IHsKICAgICAvLyBTY3JvbGwgdXBkYXRlcyBmb3IgdGhlIG1haW4gZnJhbWUgYXJlIHNlbnQgdmlh
IFdlYlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cygpCiAgICAgLy8gc28gZG9u
J3Qgc2VuZCB0aGVtIGhlcmUuCkBAIC0yMjIsMjEgKzIyMiw0MSBAQCB2b2lkIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGlu
Z05vZGVJRAogICAgIG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVTY3JvbGxWaWV3RGlkU2Ny
b2xsKCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fc2Ny
b2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpICYmICFpbnN0YW50U2Ny
b2xsRGlkU3RvcEFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworI2Vsc2UKICAgICBpZiAobV9z
Y3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKCkpCiAgICAgICAgIHJl
dHVybjsKKyNlbmRpZgogCiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OlNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoc2Nyb2xs
ZWROb2RlSUQsIG5ld1Njcm9sbFBvc2l0aW9uLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
ID09IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpKTsKIH0KIAotdm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKK3ZvaWQgUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0
aEFuaW1hdGlvbikKIHsKICAgICBpZiAoc2Nyb2xsZWROb2RlSUQgPT0gcm9vdFNjcm9sbGluZ05v
ZGVJRCgpICYmIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbykgewogICAgICAgICBtX3JlcXVlc3RlZFNj
cm9sbEluZm8tPnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgPSB0cnVlOwogICAgICAgICBt
X3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGw7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAg
ICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0V2l0aEFuaW1hdGlvbiA9IHdpdGhBbmlt
YXRpb247CisjZW5kaWYKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwogICAgIH0KIH0KIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9s
bGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9k
ZShzY3JvbGxlZE5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKSk7Cit9CisKK3Zv
aWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2Rl
SXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZv
ck5vZGUocm9vdFNjcm9sbGluZ05vZGVJRCgpLCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mp
KTsKK30KKyNlbmRpZgorCiBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
c2Nyb2xsaW5nVHJlZUFzVGV4dCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFh
NzY5NDNmMjQuLjgxMTVlNDc3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuaApAQCAtNTUsOSArNTUsMTQgQEAgcHVibGljOgogICAgIGV4cGxpY2l0
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5Jik7CiAgICAgdmly
dHVhbCB+UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOwogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKTsKKyNlbmRpZgorCiAgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJvY2VzcyB0aGF0
IHRoZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNjcm9sbGluZyB0
cmVlKQotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwg
Y29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2lu
LCBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLSAgICB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdl
YkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Ny
b2xsUG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRW
aWV3cG9ydE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9v
bCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IGZhbHNlKTsKKyAgICB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSk7CiAKICAgICBXZWJD
b3JlOjpUcmFja2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3Ry
aW5nJiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKIApAQCAtODAsNiArODUs
OSBAQCBwdWJsaWM6CiAgICAgc3RydWN0IFJlcXVlc3RlZFNjcm9sbEluZm8gewogICAgICAgICBi
b29sIHJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgeyB9OwogICAgICAgICBib29sIHJlcXVl
c3RJc1Byb2dyYW1tYXRpY1Njcm9sbCB7IH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICAgICAgYm9vbCByZXF1ZXN0V2l0aEFuaW1hdGlvbiB7IH07CisjZW5kaWYKICAgICAgICAgV2Vi
Q29yZTo6RmxvYXRQb2ludCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICB9OwogICAgIHZv
aWQgY29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yVHJhbnNhY3Rpb24mLCBSZXF1ZXN0ZWRTY3JvbGxJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHAKaW5kZXggYWZhYmJjMWVhZS4uZTZlYjQ4YmQ5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdUcmVlLmNwcApAQCAtMTA0LDEyICsxMDQsMTYgQEAgdm9pZCBSZW1vdGVTY3JvbGxp
bmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZSYKICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkp
CiAgICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2luID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkubGF5b3V0Vmlld3BvcnQoKS5sb2NhdGlvbigpOwogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5j
dXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb24sIG5vZGUubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigp
ICYmICFub2RlLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKTsKKyNlbHNlCiAgICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xs
aW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0
T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyNlbmRpZgogfQogCi12b2lk
IFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Ny
b2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJv
b2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
LCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24pCiB7Ci0gICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3Jv
bGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlE
LCBzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgd2l0aEFuaW1h
dGlvbik7CiB9CiAKIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6
Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCBub2RlSUQpCkBAIC0xNDMsNiArMTQ3LDEzIEBAIFJlZjxTY3JvbGxpbmdUcmVl
Tm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xs
aW5nTm9kCiAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywg
bm9kZUlEKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9s
bGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlk
Q2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKQoreworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3Jv
bGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShub2RlSUQs
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cit9CisjZW5kaWYKKwogdm9pZCBSZW1vdGVT
Y3JvbGxpbmdUcmVlOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdO
b2RlSUQgbm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkKIHsK
ICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3VycmVudFNuYXBQb2ludEluZGljZXNE
aWRDaGFuZ2Uobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaAppbmRleCAyM2JhYzA2YTNiLi4wZjllMDk0OTRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdUcmVlLmgKQEAgLTUyLDcgKzUyLDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5JiBzY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkgY29uc3Qg
eyByZXR1cm4gbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5OyB9CiAKICAgICB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
JiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFdlYkNvcmU6OlNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Nyb2xs
aW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpIG92ZXJyaWRlOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGws
IGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlKSBvdmVycmlkZTsKKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKSBvdmVycmlkZTsKKyNlbmRpZgogCiAgICAgdm9pZCBjdXJyZW50
U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2ln
bmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1Mu
aAppbmRleCBlNjM3ZDYxNTMyLi4wMGI0ZGJjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaApAQCAtNTcsNiAr
NTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxEaWRFbmQoKSBjb25zdDsKICAgICB2b2lk
IHNjcm9sbFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxW
aWV3RGlkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9mZnNldCwgYm9v
bCBpblVzZXJJbnRlcmFjdGlvbik7CisgICAgdm9pZCBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5n
QW5pbWF0aW9uKCk7CiAKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdl
KHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBjb25zdDsKICAgICBDQUxh
eWVyICpzY3JvbGxMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUy5tbQppbmRleCBlNzY4OTgzNzU4Li44NDg4NjNhODFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Lm1tCkBAIC0xNTIsNiArMTUyLDExIEBACiAgICAgfQogfQogCistICh2b2lkKXNjcm9sbFZpZXdE
aWRFbmRTY3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKK3sKKyAg
ICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0Fu
aW1hdGlvbigpOworfQorCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogLSAoQ0dQb2ludClf
c2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNldEZvck9m
ZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRpb24gc3Rh
cnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludClsb2NhdGlvbklu
VmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2FsVmVsb2Np
dHk6KGlub3V0IGRvdWJsZSAqKXZ2CiB7CkBAIC0zMDAsMTUgKzMwNSwzNiBAQCB2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJl
bihjb25zdCBTY3JvbAogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bikpIHsKICAgICAgICAgYXV0byBzY3JvbGxUeXBlID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpID8gU2Nyb2xs
VHlwZTo6UHJvZ3JhbW1hdGljIDogU2Nyb2xsVHlwZTo6VXNlcjsKLSAgICAgICAgc2Nyb2xsaW5n
Tm9kZSgpLnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bigpLCBzY3JvbGxUeXBlKTsKKyAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ05v
ZGUoKS5zZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwodHJ1ZSk7CisgICAgICAgIC8vIElmIHRoZSBz
Y3JvbGwgcG9zaXRpb25zIGFyZSBub3QgdGhlIHNhbWUsIHRoZXJlJ3MgYSBwb3NzaWJpbGl0eSB0
aGF0IHRoZSBzY3JvbGwgb2Zmc2V0IGZyb20gdGhlIFdlYiBwcm9jZXNzIGhhcyBiZWVuIG92ZXJy
aWRkZW4uCisgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIHNjcm9sbCBwb3NpdGlvbiBuZWVk
IHRvIGJlIHNlbnQgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBib29sIHNob3VsZFN5bmNT
Y3JvbGxQb3NpdGlvbiA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxQb3NpdGlvbigpICE9IHNj
cm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgc2Nyb2xsaW5n
Tm9kZSgpLnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bigpLCBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywgc2hv
dWxkU3luY1Njcm9sbFBvc2l0aW9uKTsKICAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpCiB7Ci0g
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW3Njcm9sbFZpZXcoKSBzZXRDb250
ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOwotICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBib29sIGFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBz
Y3JvbGxpbmdOb2RlKCkuc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpOworICAgIGJvb2wgbmVl
ZFRvU3RvcEFuaW1hdGlvbiA9IHNjcm9sbGluZ05vZGUoKS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xs
QW5pbWF0aW9uKCk7CisgICAgaWYgKG5lZWRUb1N0b3BBbmltYXRpb24gJiYgYW5pbWF0aW9uSW5Q
cm9ncmVzcykgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAg
W3Njcm9sbFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbFZpZXcoKS5jb250ZW50T2Zmc2V0
IGFuaW1hdGVkOk5PXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0K
KworICAgIGlmIChzY3JvbGxpbmdOb2RlKCkucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkpIHsKKyAg
ICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkg
c2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpIGFu
aW1hdGVkOllFU107CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKworICAgICAg
ICBzY3JvbGxpbmdOb2RlKCkuc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyh0cnVlKTsKKyAg
ICB9IGVsc2UgaWYgKCFhbmltYXRpb25JblByb2dyZXNzIHx8IG5lZWRUb1N0b3BBbmltYXRpb24p
IHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxW
aWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNl
dCgpXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0KIH0KIAogdm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxXaWxsU3RhcnQo
KSBjb25zdApAQCAtMzM1LDYgKzM2MSwxNSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludAogICAg
IHNjcm9sbGluZ05vZGUoKS53YXNTY3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKHNjcm9sbFBv
c2l0aW9uLCB7IH0sIGluVXNlckludGVyYWN0aW9uID8gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFj
dGlvbjo6U3luYyA6IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiB9CiAKK3Zv
aWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZEVu
ZFNjcm9sbGluZ0FuaW1hdGlvbigpCit7CisgICAgYXV0byYgbm9kZSA9IHNjcm9sbGluZ05vZGUo
KTsKKyAgICBpZiAoIShub2RlLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpICYmIG5vZGUuc2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcygpKSkgeworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xs
aW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9kZS5zY3Jv
bGxpbmdOb2RlSUQoKSwgZmFsc2UpOworICAgICAgICBub2RlLnNldFNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MoZmFsc2UpOworICAgIH0KK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25l
ZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3QKIHsKICAgICBpZiAobV91cGRh
dGluZ0Zyb21TdGF0ZU5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCBkYjJjZTA3OWNhLi5kMDlmNjA3YWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE3NjcsOSArMTc2NywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBSZWdpb24mIHJlZ2lvbikKICAgICBwYWdlQ2xp
ZW50KCkuc2V0Vmlld05lZWRzRGlzcGxheShyZWdpb24pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qg
SW50UG9pbnQmIHNjcm9sbE9yaWdpbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U2Nyb2xs
KGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xs
T3JpZ2luLCBjb25zdCBib29sIHdpdGhBbmltYXRpb24pCiB7Ci0gICAgcGFnZUNsaWVudCgpLnJl
cXVlc3RTY3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgaWYgKHdpdGhB
bmltYXRpb24pCisgICAgICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlv
bihzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2VD
bGllbnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOwogfQog
CiBXZWJDb3JlOjpGbG9hdFBvaW50IFdlYlBhZ2VQcm94eTo6dmlld1Njcm9sbFBvc2l0aW9uKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYWUzODUyMjIx
ZC4uYWYwN2VhNDkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTYxMyw3ICs2MTMsNyBAQCBwdWJsaWM6CiAgICAgUGFnZUNsaWVudCYgcGFnZUNsaWVudCgpIGNv
bnN0OwogCiAgICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lv
biYpOwotICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbik7Cisg
ICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBib29sIHdpdGhB
bmltYXRpb24gPSBmYWxzZSk7CiAgICAgCiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Ny
b2xsUG9zaXRpb24oKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBkNmM4YzM4ZDRhLi41MTk4ZWY0NDJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtNTcs
NiArNTcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5
PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KFdlYlByb2Nlc3NQcm94eSYpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIG92ZXJy
aWRlOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3Jv
bGxPcmlnaW4pIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBv
c2l0aW9uKCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJy
aWRlOwogICAgIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggZGM5Zjc0
YzQ5YS4uMmMzMGM0YmMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtOTUsNyArOTUsMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1w
bDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBSZWdpb24mKQogCiB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25z
dCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQogewotICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29u
dGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmln
aW5dOworICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9s
bFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6Tk9dOworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihjb25zdCBGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKK3sK
KyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3Np
dGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOllFU107CiB9CiAKIFdlYkNv
cmU6OkZsb2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4
IDhlNjQ5MzU1NDUuLjNkMzQ1ZDc2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC03Myw2ICs3MywxMCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdO
b2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHN5
bmNMYXllclBvc2l0aW9uKTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdl
ZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1
bnNpZ25lZCB2ZXJ0aWNhbCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQg
c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCisKICAg
ICBXZWJQYWdlKiBtX3dlYlBhZ2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KaW5kZXggMmMw
OThhMTA5Ny4uNTM3ZmQzNGQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUs
OSBAQAogbWVzc2FnZXMgLT4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IgewogICAgIFNjcm9s
bFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCBXZWJDb3JlOjpGbG9hdFBv
aW50IHNjcm9sbFBvc2l0aW9uLCBib29sIHN5bmNMYXllclBvc2l0aW9uKTsKICAgICBDdXJyZW50
U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgdW5zaWduZWQg
aG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5v
ZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCiB9CiAKICNl
bmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4IDgzNTQ0MWQzMTkuLjY4OWQ1
NTYyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3IubW0KQEAgLTEwNCw2ICsxMDQsMTMgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvcjo6Y3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZShTY3JvbGxpbmcK
ICAgICBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhub2RlSUQsIGhvcml6b250YWwsIHZlcnRp
Y2FsKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MpCit7CisgICAgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhub2RlSUQsIGlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IGI5ZGFlMmNlMTAuLmJjZjVlYjhhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxj
YXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBi
ZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisK
KyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAg
ICBBZGQgcnVuIHRpbWUgZmxhZyBmb3IgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nLgorCisgICAg
ICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogSGFuZGxlIENTU09NVmll
d1Ntb290aFNjcm9sbGluZyBieS4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
OgorICAgICAgICAoW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKTogRGlzYWJsZSBDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmcgYnkgZGVmYXVsdC4KKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMg
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZF0pOiBHZXR0ZXIuCisgICAgICAgICgtW1dl
YlByZWZlcmVuY2VzIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6XSk6IFNldHRl
ci4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFu
Z2VkOl0pOgorCiAyMDE5LTEyLTA5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbmFtZSBtZWRpYSBpbiB0aGUgR1BVIHByb2Nlc3MgcHJlZmVyZW5j
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNDQxYjVhODc3Ni4uYzY3OWZiZDZkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCkBAIC0xODgsNiArMTg4LDcgQEAKICNkZWZpbmUgV2ViS2l0RGlyZWN0
b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFi
bGVkIgogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZCIKICNkZWZpbmUgV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFJlbW90
ZVBsYXliYWNrRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRSZW1vdGVQbGF5YmFja0VuYWJs
ZWQiCiAjZGVmaW5lIFdlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0U3VidGxlQ3J5cHRvRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDQ3ZjdjNzVkZGEuLmNkMjM2NzQ0ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bQpAQCAtNjYzLDYgKzY2Myw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgICAgIEBZRVMsIFdl
YktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAorICAgICAgICBA
Tk8sIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAog
ICAgICAgICBAWUVTLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlya0tl
eSwKICAgICAgICAgQE5PLCBXZWJLaXRBbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tG
b3JDcmVkZW50aWFsc0tleSwKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtMzE4MSw2ICsz
MTgyLDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBb
c2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClDU1NPTVZpZXdTbW9vdGhTY3Jv
bGxpbmdFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2
b2lkKXNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6KEJPT0wpZmxhZworeworICAg
IFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Q1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiAtIChCT09MKXdlYkFuaW1hdGlvbnNF
bmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0V2ViQW5p
bWF0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDU5NzU4ZTIz
MzUuLjA5MTE5MzFkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjMyLDYgKzYzMiw3IEBAIGV4dGVy
biBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZp
Y2F0aW9uIFdFQktJVF9ERVBSCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIENTU09NVmlld1Nj
cm9sbGluZ0FQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbGFyZ2VJ
bWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYW5p
bWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgamF2YVNjcmlwdE1hcmt1cEVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggNDdhYWUzMjhkYi4uNjY3MDM1OWUxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjk5Miw2ICsyOTkyLDcgQEAg
c3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmsoKQogICAgIHNldHRp
bmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgdmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0U3ludGhldGljRWRpdGluZ0NvbW1hbmRz
RW5hYmxlZChbcHJlZmVyZW5jZXMgc3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZF0pOwog
ICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3ByZWZlcmVuY2Vz
IENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTbW9vdGhTY3Jv
bGxpbmdFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQoW3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0XSk7CiAKICAgICBzd2l0Y2ggKFtwcmVmZXJlbmNlcyBzdG9yYWdlQmxv
Y2tpbmdQb2xpY3ldKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNDIwMTRkOTlk
NS4uZTdjYTZmNzIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmlkbDogSGFuZGxlIHNtb290aCBzY3JvbGxpbmcgb3B0aW9uLgorICAgICAg
ICAqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcmVm
ZXJlbmNlcy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVE
ZWZhdWx0U2V0dGluZ3MpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldENTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6IERp
dHRvLgorICAgICAgICAqIFdlYlZpZXcuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYlZpZXc6Om5v
dGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisKIDIwMTktMTItMDUgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBQYWdlQ29uZmlndXJhdGlvbjo6ZHJhZ0NsaWVudCBz
aG91bGQgdXNlIGEgc21hcnQgcG9pbnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5kZXgg
YTcxNzYyMjIxYi4uY2NmZjlmMDU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0y
MjMsNiArMjIzLDggQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU2IDogSVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTUKICAgICBIUkVTVUxUIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOworICAgIEhSRVNV
TFQgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7
CiAgICAgSFJFU1VMVCBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09M
KiBlbmFibGVkKTsKICAgICBIUkVTVUxUIHNldEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChbaW5d
IEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoW291
dCwgcmV0dmFsXSBCT09MICplbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggMDk5Mzc0MjBlNC4uMDhjNDU2NzI3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmgKQEAgLTIwOSw2ICsyMDksNyBAQAogI2RlZmluZSBXZWJLaXRTZXJ2ZXJUaW1pbmdF
bmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZCIKIAogI2RlZmlu
ZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJl
ZmVyZW5jZUtleSAiV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkIgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggOTVlYmVhMjY4Yy4uYzhlMjI1YWE0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMzM5
LDYgKzMzOSw4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGlu
Z3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFJl
c2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCisg
ICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdENTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKKwog
ICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRDb3JlTWF0aE1M
RW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgQ0ZEaWN0aW9u
YXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFi
bGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CkBAIC0yMjgzLDYgKzIyODUsMjAg
QEAgSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0Q29yZU1hdGhNTEVuYWJsZWQoQk9PTCBlbmFi
bGVkKQogICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCit7CisgICAg
aWYgKCFlbmFibGVkKQorICAgICAgICByZXR1cm4gRV9QT0lOVEVSOworICAgICplbmFibGVkID0g
Ym9vbFZhbHVlRm9yS2V5KFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVm
ZXJlbmNlS2V5KTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNl
czo6c2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChCT09MIGVuYWJsZWQpCit7Cisg
ICAgc2V0Qm9vbFZhbHVlKFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVm
ZXJlbmNlS2V5LCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19PSzsKK30KKwogSFJFU1VMVCBXZWJQ
cmVmZXJlbmNlczo6cmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQoX091dF8gQk9PTCogZW5hYmxl
ZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZXMuaAppbmRleCAxZGFhYTczMDI1Li42MDY2ZTQ2NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI3MSw2ICsyNzEsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5h
YmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01W
aWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoQk9PTCk7
CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKEJPT0wpOwogICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJs
ZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBz
ZXRGZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChfT3V0XyBCT09MKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGEwNDQ4YmIwMTMuLmQyYjIyZjA0Nzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01MzE4LDYgKzUzMTgsMTEgQEAg
SFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlv
biogbm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0Q1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCghIWVuYWJsZWQpOwogCisgICAgaHIgPSBwcmVmc1By
aXZhdGUtPkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoJmVuYWJsZWQpOworICAgIGlm
IChGQUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3Muc2V0Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCghIWVuYWJsZWQpOworCiAgICAgaHIgPSBwcmVmZXJl
bmNlcy0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRCho
cikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAwMGRhYmU3M2Y0Li5lOWExMjhiMDI2IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBG
csOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5j
cHA6CisgICAgICAgIChUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMpOiBQYXJzZSBDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmg6IEFkZCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkLCBkaXNhYmxlZCBieSBk
ZWZhdWx0LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToK
KyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOiBTZXQgQ1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCBmcm9tIHRoZSB0ZXN0IG9wdGlvbnMuCisKIDIwMTktMTIt
MTAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBB
UEkgdGVzdCBmYWlsdXJlIGFmdGVyIHIyNTMzNTEKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcAppbmRleCA3YzlhZTU5OTRhLi4yMzdjOTg4NzhmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuY3BwCkBAIC0xNDIsNiArMTQyLDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25z
KGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUK
ICAgICAgICAgICAgIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBwYXJzZUJvb2xlYW5UZXN0
SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRh
bDpSZXNpemVPYnNlcnZlckVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlUmVzaXplT2JzZXJ2
ZXIgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAgICAgICBlbHNlIGlm
IChrZXkgPT0gImV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIikK
KyAgICAgICAgICAgIGVuYWJsZUNTU09NVmlld1Ntb290aFNjcm9sbGluZyA9IHBhcnNlQm9vbGVh
blRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJp
bWVudGFsOkNvcmVNYXRoTUxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZUNvcmVNYXRoTUwg
PSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZCIpCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCBlNTMzNWU4MzExLi5mN2U4ZDI5MTFkIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTUwLDYgKzUwLDcgQEAgc3RydWN0IFRlc3RPcHRp
b25zIHsKICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAgIGJvb2wgYWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVSZXNpemVP
YnNlcnZlciB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmcgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlQ29yZU1hdGhNTCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBlbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJs
ZUFzeW5jQ2xpcGJvYXJkQVBJIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQppbmRleCBjY2ZmZTA1NWQzLi42N2NhZWE3MThkIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMDI5LDYgKzEwMjksNyBA
QCBzdGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RP
cHRpb25zJiBvcHRpb25zKQogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVDU1NMb2dpY2FsOwogICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlv
bkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CiAgICAgcHJlZmVy
ZW5jZXMucmVzaXplT2JzZXJ2ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXNpemVPYnNlcnZl
cjsKKyAgICBwcmVmZXJlbmNlcy5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmc7CiAgICAgcHJlZmVyZW5jZXMuY29y
ZU1hdGhNTEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNvcmVNYXRoTUw7CiAgICAgcHJlZmVyZW5j
ZXMucmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJlcXVlc3RJZGxl
Q2FsbGJhY2s7CiAgICAgcHJlZmVyZW5jZXMuYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVBc3luY0NsaXBib2FyZEFQSTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385375</attachid>
            <date>2019-12-11 03:35:25 -0800</date>
            <delta_ts>2019-12-11 07:24:45 -0800</delta_ts>
            <desc>native-animation-for-review</desc>
            <filename>upload_25.diff</filename>
            <type>text/plain</type>
            <size>152412</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MmMyMWFjMDgxLi43NTQzNzBiOGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2lu
ZyBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQu
IEluIG9yZGVyIHRvIHRlc3QgcHJvcGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9y
IHRlc3QgdG8gZmFzdC9zY3JvbGxpbmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2
ZVNjcm9sbGluZyk6CisgICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9s
bE5vZGUpOgorICAgICAgICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0
bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKIDIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0
aGUgV2ViIHByb2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uMGEwOTY4ZTAyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzCkBAIC0w
LDAgKzEsODcgQEAKK2Z1bmN0aW9uIG9ic2VydmVTY3JvbGxpbmcoZWxlbWVudHMsIGNhbGxiYWNr
KSB7CisgIGlmICghQXJyYXkuaXNBcnJheShlbGVtZW50cykpCisgICAgICBlbGVtZW50cyA9IFtl
bGVtZW50c107CisgIHZhciBsYXN0Q2hhbmdlZEZyYW1lID0gMDsKKyAgdmFyIGxhc3RMZWZ0ID0g
bmV3IE1hcCgpOworICB2YXIgbGFzdFRvcCA9IG5ldyBNYXAoKTsKKyAgZWxlbWVudHMuZm9yRWFj
aCgoZWxlbWVudCkgPT4geworICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9s
bExlZnQpOworICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsVG9wKTsKKyAg
fSk7CisgIGZ1bmN0aW9uIHRpY2soZnJhbWVzKSB7CisgICAgLy8gV2UgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lIGVpdGhlciBmb3IgNTAwIGZyYW1lcyBvciB1bnRpbCAyMCBmcmFtZXMgd2l0aAorICAg
IC8vIG5vIGNoYW5nZSBoYXZlIGJlZW4gb2JzZXJ2ZWQuCisgICAgaWYgKGZyYW1lcyA+PSA1MDAg
fHwgZnJhbWVzIC0gbGFzdENoYW5nZWRGcmFtZSA+IDIwKSB7CisgICAgICBjYWxsYmFjayh0cnVl
KTsKKyAgICB9IGVsc2UgeworICAgICAgdmFyIHNjcm9sbEhhcHBlbmVkID0gZWxlbWVudHMuc29t
ZSgoZWxlbWVudCkgPT4geworICAgICAgICByZXR1cm4gZWxlbWVudC5zY3JvbGxMZWZ0ICE9IGxh
c3RMZWZ0LmdldChlbGVtZW50KSB8fCBlbGVtZW50LnNjcm9sbFRvcCAhPSBsYXN0VG9wLmdldChl
bGVtZW50KTsKKyAgICAgIH0pOworICAgICAgaWYgKHNjcm9sbEhhcHBlbmVkKSB7CisgICAgICAg
IGxhc3RDaGFuZ2VkRnJhbWUgPSBmcmFtZXM7CisgICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVs
ZW1lbnQpID0+IHsKKyAgICAgICAgICBsYXN0TGVmdC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3Jv
bGxMZWZ0KTsKKyAgICAgICAgICBsYXN0VG9wLnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbFRv
cCk7CisgICAgICAgIH0pOworICAgICAgICBjYWxsYmFjayhmYWxzZSk7CisgICAgICB9CisgICAg
ICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljay5iaW5kKG51bGwsIGZyYW1lcyArIDEpKTsKKyAg
ICB9CisgIH0KKyAgdGljaygwKTsKK30KKworZnVuY3Rpb24gd2FpdEZvclNjcm9sbEVuZChlbGVt
ZW50cykgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICBvYnNlcnZl
U2Nyb2xsaW5nKGVsZW1lbnRzLCAoZG9uZSkgPT4geworICAgICAgaWYgKGRvbmUpCisgICAgICAg
IHJlc29sdmUoKTsKKyAgICB9KTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0U2Nyb2xsKHNj
cm9sbGluZ0VsZW1lbnQpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhl
IGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsKKyAg
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwgYmVoYXZpb3I6ICJpbnN0
YW50In0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhlIGVsZW1lbnQgcG9z
aXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOworICBzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rp
b24gc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgY2xhc3NOYW1lKSB7CisgIHN0eWxl
ZEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYXV0b0JlaGF2aW9yIiwgInNtb290aEJlaGF2aW9y
Iik7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpOworfQorCitmdW5j
dGlvbiBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlv
ciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdz
ID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7Cisg
IHN3aXRjaCAoc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBjYXNlICJzY3JvbGxJbnRvVmlldyI6Cisg
ICAgICBhcmdzLmlubGluZSA9ICJzdGFydCI7CisgICAgICBhcmdzLmJsb2NrID0gInN0YXJ0IjsK
KyAgICAgIGVsZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyhhcmdzKTsKKyAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0Owor
ICAgICAgYXJncy50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3A7CisgICAgICBzY3JvbGxpbmdFbGVt
ZW50W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKKyAgICAgIGJyZWFrOworICB9Cit9CisKK2Z1bmN0
aW9uIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlv
ciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdz
ID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7Cisg
IGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7CisgIGFyZ3MudG9wID0gZWxlbWVudFRv
UmV2ZWFsVG9wOworICBzY3JvbGxpbmdXaW5kb3dbc2Nyb2xsRnVuY3Rpb25dKGFyZ3MpOworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44ZDRjYTY0MTU1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNz
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgSW5zdGFudCBzY3JvbGxpbmcg
b2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAorUEFTUyBTbW9vdGgg
c2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLjM1YzY1MDNhYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKQEAgLTAsMCAr
MSw1MiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBkZWZh
dWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMg
V2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwt
YmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xs
YWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdo
dDogMjAwcHg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlk
PSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6
IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVk
ZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9j
azsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50
VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAt
MTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3Nw
YW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgc2Nyb2xsaW5nRWxlbWVudCA9
IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBl
bGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIHZhciBzY3JvbGxGdW5jdGlvbiA9ICJzY3JvbGwi
OworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50IiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgIH0sICJJbnN0YW50IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdp
dGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJTbW9vdGgg
c2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciIpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41M2E5NjFlZjU2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACisKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhl
ciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQzOGRm
ZmRlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBF
IGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlv
ciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87Cisg
ICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgIH0KKyAgLmF1dG9CZWhhdmlv
ciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7
CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJs
b2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4K
KyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9
ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9z
cGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFj
a2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2
YXIgc2Nyb2xsaW5nRWxlbWVudCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIHN0eWxlZEVsZW1lbnQg
PSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIg
ZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNj
cm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsK
KyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGws
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
cmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9u
LCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOwor
CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1
dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNj
cm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAg
IH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgIH0pOworICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICB9KTsK
KworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVs
ZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xs
aW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45N2Nh
ZWEyN2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzcgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQzMjVi
NGI5ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEsMTY5IEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dT
Y3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMn
IGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUg
cm9vdCBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250
ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIg
aHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZp
b3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
b20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBt
YXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBh
dXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9v
dGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdl
Q29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+Cisg
IDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlz
cGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5k
OiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFz
eW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50LCBzdHlsZWRF
bGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5j
dGlvbigpIHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dDsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBh
Z2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJw
eCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVp
Z2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cu
aW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5p
bm5lckhlaWdodCkgKiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVu
dFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVs
ZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygo
KSA9PiB7IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOyB9KTsKKworICAgIFsic2Nyb2xs
IiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Ny
b2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5n
RWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZl
KCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsg
cmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0
aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7Cisg
ICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGws
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3Jv
bGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9s
bEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAg
ICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsK
KworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhC
ZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZv
clNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQg
LyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5z
dGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIp
OworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXdpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MC4uMzgyMzg1YWFiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjkgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290
aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBv
biB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uOTA1N2IwY2QxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApA
QCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRl
cm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVz
dGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIG9uIHRoZSB3
aW5kb3cgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCxtaW5pbXVtLXNjYWxlPTEsaW5pdGlhbC1zY2FsZT0xIj4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2
aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9y
IHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBhZ2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4KKyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxz
Y3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0gYXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAg
dmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBh
Z2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nV2luZG93
ID0gd2luZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7
CisgICAgcGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkg
KiA1ICsgInB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cu
aW5uZXJIZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCAr
IHdpbmRvdy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsg
d2luZG93LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQg
PSBlbGVtZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUu
dG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2Nh
bGxiYWNrKCgpID0+IHsgcmVzZXRTY3JvbGxGb3JXaW5kb3cod2luZG93KTsgfSk7CisKKyAgICBb
InNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9u
KSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZv
cldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
c2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVh
bFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkg
PT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVu
KCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVu
Y3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9s
bEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
Mik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5n
Iik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDAp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5n
IHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9s
bGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi40NDNhODIwZTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHNjcm9sbEludG9WaWV3IHdp
dGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
Y3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDViNWQ4ZDdjNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50
b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciB3aXRoIHNjcm9s
bEludG9WaWV3IGZvciBuZXN0ZWQgc2Nyb2xsaW5nIG5vZGVzPC90aXRsZT4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLD
qWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVm
LXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisg
IC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICBoZWlnaHQ6IDIwMHB4Owor
ICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
IH0KKyAgLmdyYWRpZW50IHsKKyAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVn
LCByZWQsIGdyZWVuKTsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxk
aXY+CisgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0
aDogNDUwcHgiPgorICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9v
dGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiA0MDBweCI+CisgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
PGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAzNTBweCI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMzAw
cHgiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJs
ZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiAyNTBweCI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAy
MDBweCI+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImVs
ZW1lbnRUb1JldmVhbCIgc3R5bGU9IndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICA8
L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAg
PGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgPC9kaXY+Cisg
ICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1
MDBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
Ly8gVGhlIENTU09NLVZpZXcgc3BlYyBhbmQgaW1wbGVtZW50YXRpb25zIGZvbGxvdyBkaWZmZXJl
bnQgYWxnb3JpdGhtcyAoc2Nyb2xscyBwZXJmb3JtZWQgaW4gcGFyYWxsZWwsIGFzIGlubmVyLXRv
LW91dGVyIHNlcXVlbmNlIG9yIGFzIG91dGVyLXRvLWlubmVyIHNlcXVlbmNlKS4KKyAgLy8gU2Vl
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMTI3CisgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgdmFyIGRpdnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
c2Nyb2xsYWJsZSIpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGFibGVEaXYpOworICAgICAgfSk7CisgICAgICBlbGVt
ZW50VG9SZXZlYWwuc2Nyb2xsSW50b1ZpZXcoe2lubGluZTogInN0YXJ0IiwgYmxvY2s6ICJzdGFy
dCIsIGJlaGF2aW9yOiAiYXV0byJ9KTsKKyAgICAgIHZhciBzY3JvbGxUb3AgPSBuZXcgTWFwKCk7
CisgICAgICB2YXIgaXNTbW9vdGggPSBuZXcgTWFwKCk7CisgICAgICBkaXZzLmZvckVhY2goKHNj
cm9sbGFibGVEaXYpID0+IHsKKyAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2LCBz
Y3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgIGlzU21vb3RoLnNldChzY3JvbGxhYmxl
RGl2LCBzY3JvbGxhYmxlRGl2LmNsYXNzTGlzdC5jb250YWlucygic21vb3RoQmVoYXZpb3IiKSk7
CisgICAgICAgIC8vIElmIHNjcm9sbCBvcGVyYXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIGluIHBh
cmFsbGVsLCBzY3JvbGwgYm94ZXMgd2l0aCBpbnN0YW50IGJlaGF2aW9yIG1pZ2h0IGFsc28gbmVl
ZCB0byB3YWl0IGZvciB0aGVpciBwcmVkZWNlc3NvcnMuCisgICAgICAgIGlmIChpc1Ntb290aC5n
ZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxUb3Au
Z2V0KHNjcm9sbGFibGVEaXYpLCA1MDAsICJFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNo
b3VsZCBub3Qgc2Nyb2xsIGltbWVkaWF0ZWx5Iik7CisgICAgICB9KTsKKworICAgICAgb2JzZXJ2
ZVNjcm9sbGluZyhBcnJheS5mcm9tKGRpdnMpLCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRy
eSB7CisgICAgICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKHNjcm9sbFRvcC5nZXQoc2Nyb2xsYWJsZURpdiks
IHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsK
KyAgICAgICAgICAgIGlmICghaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAg
ICAgICBhc3NlcnRfYW55KGFzc2VydF9lcXVhbHMsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCBb
MCwgNTAwXSwgIkVsZW1lbnQgd2l0aCBpbnN0YW50IGJlaGF2aW9yIHNob3VsZCBqdW1wIHRvIHRo
ZSBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsIDUwMCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2
LCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0gY2F0
Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9u
ZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgInNjcm9s
bEludG9WaWV3IHdpdGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhh
dmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44
NTVhNmE2MTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIwIEBACisKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3Ro
IHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BB
U1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9t
ICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRv
ICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4g
cGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5n
IHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxU
bygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9s
bGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20g
KDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNj
cm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGgg
c2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAK
K1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBm
cm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwg
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0
byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRp
b25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUw
MCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAs
IDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hl
biBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmcgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxp
bmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1w
b3NpdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wYTQx
YjhiMDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTAsMCArMSwxNTEgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsIHBvc2l0
aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yPC90aXRs
ZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3
aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92
ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAw
MHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywg
cmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3
aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1Jl
dmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4
OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4K
KyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIEZvciBzbW9vdGggYmVoYXZpb3IsIGV2
b2x1dGlvbiBvZiBzY3JvbGwgcG9zaXRpb25zIG92ZXIgdGltZSBpcyBub3Qgc3BlY2lmaWVkIGJ5
IENTU09NIFZpZXcuCisgIC8vIFRoaXMgdGVzdCByZWxpZXMgb24gdGhlIG1pbmltYWwgYXNzdW1w
dGlvbiB0aGF0IHNjcm9sbCBwb3NpdGlvbiBmdW5jdGlvbnMgYXJlIG1vbm90b25pYy4KKyAgWyJz
Y3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNo
KGZ1bmN0aW9uKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgW3tsZWZ0OjAsIHRvcDowfSwge2xlZnQ6
MTAwMCwgdG9wOjB9LCB7bGVmdDowLCB0b3A6NTAwfSwge2xlZnQ6MTAwMCwgdG9wOjUwMH1dLmZv
ckVhY2goKGluaXRpYWwpID0+IHsKKyAgICAgIHZhciBmaW5hbExlZnQgPSA1MDA7CisgICAgICB2
YXIgZmluYWxUb3AgPSAyNTA7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAg
c2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIGluaXRpYWwubGVm
dCwgaW5pdGlhbC50b3ApOworICAgICAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNj
cm9sbExlZnQ7CisgICAgICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCBpbml0aWFsLmxlZnQsICJTY3JvbGxM
ZWZ0IHNob3VsZCBiZSBhdCBpbml0aWFsIHBvc2l0aW9uIik7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhvbGRUb3AsIGluaXRpYWwudG9wLCAiU2Nyb2xsVG9wIHNob3VsZCBiZSBhdCBpbml0aWFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgaWYgKHNjcm9sbEZ1bmN0aW9uID09PSAic2Nyb2xsQnki
KQorICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAi
c21vb3RoIiwgZmluYWxMZWZ0IC0gaW5pdGlhbC5sZWZ0LCBmaW5hbFRvcCAtIGluaXRpYWwudG9w
KTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwg
c2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBmaW5hbExlZnQsIGZpbmFsVG9wKTsKKyAgICAgICAg
ICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Ny
b2xsTGVmdDsKKyAgICAgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxU
b3A7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoTWF0aC5oeXBvdChmaW5h
bExlZnQgLSBuZXdMZWZ0LCBmaW5hbFRvcCAtIG5ld1RvcCksIE1hdGguaHlwb3QoZmluYWxMZWZ0
IC0gb2xkTGVmdCwgZmluYWxUb3AgLSBvbGRUb3ApLCAiU2Nyb2xsIHBvc2l0aW9uIHNob3VsZCBt
b3ZlIHRvd2FyZHMgdGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIGlmIChkb25l
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCBmaW5hbExlZnQsICJT
Y3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3VG9wLCBmaW5hbFRvcCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2gg
ZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBvbGRMZWZ0
ID0gbmV3TGVmdDsKKyAgICAgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICAgICAg
fSBjYXRjaChlKSB7CisgICAgICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgICAgfSwgYFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoJHtpbml0aWFsLmxlZnR9LCAke2luaXRpYWwudG9w
fSkgdG8gKCR7ZmluYWxMZWZ0fSwgJHtmaW5hbFRvcH0pIHVzaW5nICR7c2Nyb2xsRnVuY3Rpb259
KCkgYCk7CisgICAgfSk7CisgIH0pOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRT
Y3JvbGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZh
bHNlOworICAgICAgdmFyIHNjcm9sbERpcmVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKKyAgICAgIHZh
ciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0g
b3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7
CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJm
bG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNj
cm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAg
IHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmIChpbml0
aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgaWYgKHNjcm9sbERpcmVjdGlvbkNoYW5n
ZWQpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRMZWZ0LCBu
ZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFz
c2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMg
ZGVjcmVhc2luZyIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgIHNjcm9sbERp
cmVjdGlvbkNoYW5nZWQgPSBuZXdMZWZ0IDw9IG9sZExlZnQgJiYgbmV3VG9wIDw9IG9sZFRvcDsK
KyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFs
KG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAg
ICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRv
cCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAm
JiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBz
Y3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIs
IDUwMCwgMjUwKTsKKyAgICAgICAgICAgICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bExlZnQ7CisgICAgICAgICAgICAgICAgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsK
KyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBy
ZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3As
IDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAg
ICB9CisgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3
VG9wOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7Cisg
ICAgfSk7CisgIH0sICJTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Ny
b2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICByZXNldFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxT
Y3JvbGxBYm9ydGVkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3Ro
IiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5j
dGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoIWluaXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAg
ICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9s
bExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFu
X2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAg
ICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAwICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAg
ICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFsIHNjcm9sbC4KKyAgICAgICAgICAgICAgICBp
bml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShv
dmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIDUwMCwgMjUwKTsKKyAgICAgICAgICAg
ICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAg
bmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0
aW9uIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9s
bFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9u
Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Nyb2xsVG9wIHNo
b3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9s
ZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBj
YXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChk
b25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFuIGlu
c3RhbnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAuLjI3OTlmZGNjMjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzcgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBz
Y3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BB
U1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45NmQxMWFiOTYyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1s
PjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0Pgor
PGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIgd2lkdGg9IjQw
MHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgorICA8c3R5bGU+
CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRvQmVoYXZpb3Ig
eworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21vb3RoQmVoYXZp
b3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8L3N0eWxlPgor
ICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsg
YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Jz4KKyAgICAg
IDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0
OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHlsZT0nZGlzcGxh
eTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWln
aHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2PgorICA8L2Jv
ZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFtZUxvYWRUZXN0
ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5nRWxlbWVudCwg
c3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVm
dCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkg
PT4geworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9k
ZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisg
ICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5m
b3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZl
KSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7
CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
YXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAg
ICAgfSk7CisgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Ny
b2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAs
IDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhl
bigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7CisgIH0pKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA1ZWIzMjcyZjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBAQAorCitQ
QVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2lu
ZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMzMzM2Q2NGY4
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzEgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVu
dC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIg
d2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgor
ICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRv
QmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21v
b3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8
L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6
IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7
Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHls
ZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2
PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFt
ZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5n
V2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBlbGVtZW50VG9S
ZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICBpZnJh
bWVOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5zdGVwX2Z1bmNf
ZG9uZSgoKSA9PiB7CisgICAgc2Nyb2xsaW5nV2luZG93ID0gaWZyYW1lTm9kZS5jb250ZW50V2lu
ZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9kZS5jb250ZW50RG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisgICAgWyJzY3JvbGwi
LCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4gewor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3co
c2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGlu
Z1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRv
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAp
OworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwg
Imluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChz
Y3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3co
c2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
YCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJz
Y3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7
CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxX
aW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsK
KworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNmFlNTZlYzc3Li5hNDgxMWZjODAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8
Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwg
YmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRm
b3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5
MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNl
ZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
c3VwcG9ydCBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0uIEl0IHJlbGll
cyBvbiBVSVNjcm9sbFZpZXcncworICAgICAgICBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBw
b3J0IGFuZCBpcyBleGVjdXRlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBUZXN0czog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1w
b3NpdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKworICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBi
eSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVk
IHNjcm9sbCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5p
bWF0aW9uIHN0YXR1cyBmcm9tIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOiBB
ZGQgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gdG8gaW5kaWNhdGUgaXQn
cyBhbmltYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOiBEaXR0
by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6cmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2UpOiBVcGRhdGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFk
ZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90
LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRT
dGF0ZUFmdGVyQ2hpbGRyZW4pOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIHRoZSBzY3JvbGwgaXMg
YW5pbWF0ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGU6OnNjcm9sbFRvKTogSWYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiBpcyB0cnVlLCBzZW5k
IHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLCBldmVuIGlmIHRoZSBzY3Jv
bGwgcG9zaXRpb24gZG9lc24ndCBjaGFuZ2UuCisgICAgICAgIE1haW50YWluIHRoZSBzdGF0dXMg
b2YgbV9zdG9wU2Nyb2xsQW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xs
UG9zaXRpb25DaGFuZ2VkKTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xs
IHBvc2l0aW9uIGltbWVkaWF0ZWx5LCBzbyBkb24ndCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZv
IG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRS
ZXF1ZXN0QW5pbWF0ZWRTY3JvbGwpOiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCBpbmRpY2F0ZXMg
dGhhdCB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0LgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRlZFNjcm9sbCBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1h
dGlvbiBzdGF0dXMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3Jv
bGxBbmltYXRpb24pOiBJZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlv
biwgdGhlIHByZXZpb3VzIHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
VHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQg
b3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGlu
ZGljYXRlIHRoZSBzdGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRp
b24pOiBVcGRhdGUgU2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpTY3JvbGxh
YmxlQXJlYSk6IEFkZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVh
OjpjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9s
bEJlaGF2aW9yVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRDdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogU2Vu
ZCBhIHF1ZXN0IG9mIG5hdGl2ZSBzY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xs
IGFuaW1hdGlvbiBieSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZSgpLgorCiAyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4K
IAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBTY3Jv
bGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
aW5kZXggOTM5Y2U0YmVlMi4uNzMxZTMyMjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtMzY2OCw2ICszNjY4LDE0IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5CiAgICAgYXV0
byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOwogICAgIHNldEN1cnJl
bnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBl
KFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBz
ZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCisKICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkg
PT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQogICAgICAgICBz
Y3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKICAgICBpZiAob2Zmc2V0ICE9IHRo
aXMtPnNjcm9sbE9mZnNldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA0MjllZWU5YTk2
Li5hOTdlYTQyZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4LDcgKzI0OCwxNCBA
QCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVw
ZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUg
PSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
IT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29sIGluUHJvZ3JhbW1h
dGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxU
eXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFj
a0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSBpblByb2dy
YW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBib29sIGFuaW1hdGVkID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbEJl
aGF2aW9yVHlwZSgpID09IFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoOworICAgIC8vIFRoZSBz
Y3JvbGwgcG9zaXRpb24gb2YgYW5pbWF0ZWQgc2Nyb2xsaW5nIHdpbGwgYmUgc2V0IGJ5IHRoZSBV
SSBwcm9jZXNzLiBTbyBzaG91bGRuJ3Qgc2V0IGl0IG5vdy4KKyAgICB1cGRhdGVTY3JvbGxQb3Np
dGlvbiA9ICFhbmltYXRlZCAmJiB1cGRhdGVTY3JvbGxQb3NpdGlvbjsKKyNlbmRpZgorICAgIGlm
ICh1cGRhdGVTY3JvbGxQb3NpdGlvbikKICAgICAgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRl
ckFzeW5jU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHsgfSwgU2Nyb2xs
VHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwog
CiAgICAgLy8gSWYgdGhpcyBmcmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0IGludG8g
dGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCkBAIC0y
NjAsNyArMjY3LDE0IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3JvCiAgICAgaWYgKCFzdGF0ZU5v
ZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgYXV0byBzdGF0dXMgPSBhbmltYXRlZCA/IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2
ZUFuaW1hdGlvbiA6IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbjsKKyAgICBz
Y3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhzdGF0dXMpOworCisgICAgc3Rh
dGVOb2RlLT5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9n
cmFtbWF0aWNTY3JvbGwsIGFuaW1hdGVkKTsKKyNlbHNlCiAgICAgc3RhdGVOb2RlLT5zZXRSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9ncmFtbWF0aWNTY3JvbGwp
OworI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI5MSw2ICszMDUsMzIgQEAgdm9p
ZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9u
QWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBtX3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVy
LnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGlu
Z05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAg
IGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3
LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5Bbmlt
YXRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xs
IGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxh
YmxlQXJlYUZvclNjcm9sbExheWVySUQobm9kZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3Jv
bGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwor
ICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5u
b2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxl
ZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9z
Y2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRlTGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4uM2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQ
cm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVw
ZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0
IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRP
cmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsK
KyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6
b250YWxJbmRleCwgdW5zaWduZWQgdmVydGljYWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
LmNwcAppbmRleCA3MTdiZmMyYTU1Li43ZTIxODhjMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgog
ICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVh
UGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
LCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2RlLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7
CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0y
MTksMTIgKzIyMiwyMiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5
Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFtcyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29s
IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlv
bikKK3sKKyAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb247CisgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworICAgIG1fcmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uID0gcmVxdWVzdGVkV2l0aEFuaW1hdGlvbjsKKyAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOworfQorI2Vsc2UK
IHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogewogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b24gPSByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGw7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKTsK
IH0KKyNlbmRpZgogCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cykKIHsKQEAgLTMx
NCw2ICszMjcsMTEgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVQKICAgICBpZiAobV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiAgICAgICAgIHRz
LmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiByZXByZXNlbnRzIHByb2dy
YW1tYXRpYyBzY3JvbGwiLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dy
YW1tYXRpY1Njcm9sbCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbikKKyAgICAgICAgdHMuZHVtcFByb3Bl
cnR5KCJyZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHdpdGggYW5pbWF0aW9uIiwgbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pOworI2VuZGlmCisKICAgICBpZiAoIW1fcGFy
ZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHRzLmR1bXBQcm9w
ZXJ0eSgicGFyZW50IHJlbGF0aXZlIHNjcm9sbGFibGUgcmVjdCIsIG1fcGFyZW50UmVsYXRpdmVT
Y3JvbGxhYmxlUmVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNDk2N2E2Y2U4MS4u
NmUyNWQ3YmJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKQEAgLTExMSw3ICsxMTEsMTIgQEAg
cHVibGljOgogCiAgICAgY29uc3QgRmxvYXRQb2ludCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOyB9CiAgICAgYm9vbCBy
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSBjb25z
dCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbDsgfQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGJvb2wgcmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uID0gZmFsc2Up
OworI2Vsc2UKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
OworI2VuZGlmCiAKICAgICBib29sIGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50czsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0SXNNb25pdG9yaW5nV2hlZWxFdmVudHMoYm9vbCk7CkBAIC0xNzEsNiArMTc2LDkgQEAg
cHJpdmF0ZToKICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnM7CiAKICAgICBib29sIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsIHsgZmFsc2UgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGJvb2wgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24geyBmYWxzZSB9
OworI2VuZGlmCiAgICAgYm9vbCBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzIHsgZmFsc2UgfTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApp
bmRleCAxNTFhYzI5ZjhhLi5jOWYwNDRiNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC04Miw4ICs4MiwxNyBAQCBwdWJsaWM6CiAgICAg
Ly8gVXBkYXRlcyBGcmFtZVZpZXcvUmVuZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBHcmFw
aGljc0xheWVycy4KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwo
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
ID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgPSAwOwogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBDYWxsZWQgZm9yIHNjcm9sbCBhbmltYXRpb24gc3RhdHVz
IHVwZGF0ZXMuCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCAv
KmlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyovKSB7IH0KKworICAgIC8vIENhbGxlZCBmb3Ig
cmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzLgorICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQ
b2ludCYgLypzY3JvbGxQb3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCovLCBib29sIC8qd2l0aEFuaW1hdGlvbiovKSB7IH0KKyNlbHNlCiAgICAgLy8gQ2FsbGVk
IGZvciByZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMuCiAgICAgdmlydHVhbCB2b2lk
IHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsKi8pIHsgfQorI2VuZGlmCisKIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxpbmcv
em9vbWluZyBoYXMgY2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2aWV3
cG9ydC1jb25zdHJhaW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5GcmFt
ZVZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwg
ZG91YmxlIHNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYxLi44
OWI0NTgwOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3LDE2IEBA
IHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRy
ZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
Ojpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0
ZU5vZGUpCiB7CiAgICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3JvbGxp
bmdTdGF0ZU5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRl
Tm9kZSk7Ci0gICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpCi0gICAg
ICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKHNjcm9s
bGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24o
KSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCgpKTsKKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKSkgeworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbCgKKyAgICAgICAgICAgIHNjcm9sbGluZ05vZGVJRCgpCisgICAgICAgICAgICAs
IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpCisgICAgICAgICAg
ICAsIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGwoKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgICAg
ICAsIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRp
b24oKQorI2VuZGlmCisgICAgICAgICAgICApOworICAgIH0KIAogICAgIG1faXNGaXJzdENvbW1p
dCA9IGZhbHNlOwogfQpAQCAtMTU3LDE1ICsxNjUsNDQgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZTo6c2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgU2Nyb2xsUG9zaXRp
b24KICAgICBzY3JvbGxUbyhjdXJyZW50U2Nyb2xsUG9zaXRpb24oKSArIGRlbHRhLCBTY3JvbGxU
eXBlOjpVc2VyLCBjbGFtcCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYgcG9z
aXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcCBjbGFtcCwg
Ym9vbCBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQoreworICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1
cnJlbnRTY3JvbGxQb3NpdGlvbikgeworICAgICAgICAvLyBTZW5kIHRoZSBzY3JvbGwgcG9zaXRp
b24gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAocmVxdWVzdEFuaW1hdGVkU2Nyb2xs
KCkgJiYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbikKKyAgICAgICAgICAgIHNjcm9sbGluZ1RyZWUo
KS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcywgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bkFjdGlvbjo6U3luYyk7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9k
ZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShzY3JvbGxpbmdOb2RlSUQoKSwg
ZmFsc2UpOworICAgICAgICBzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoZmFsc2UpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgLy8gSWYgZHVyaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwg
bmVlZCB0byBzdG9wIGl0IGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuCisgICAgaWYgKHNjcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkKKyAgICAgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9s
bEFuaW1hdGlvbih0cnVlKTsKKyAgICBzY3JvbGxpbmdUcmVlKCkuc2V0SXNIYW5kbGluZ1Byb2dy
YW1tYXRpY1Njcm9sbChzY3JvbGxUeXBlID09IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyk7CisK
KyAgICBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24ocG9z
aXRpb24sIGNsYW1wKTsKKworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8
PCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUgIiA8PCBzY3JvbGxpbmdOb2RlSUQoKSA8PCAi
IHNjcm9sbFRvICIgPDwgcG9zaXRpb24gPDwgIiAoZGVsdGEgZnJvbSBsYXN0IGNvbW1pdHRlZCBw
b3NpdGlvbiAiIDw8IChtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3NpdGlvbiAtIG1fY3VycmVudFNj
cm9sbFBvc2l0aW9uKSA8PCAiKSIpOworCisgICAgdXBkYXRlVmlld3BvcnRGb3JDdXJyZW50U2Ny
b2xsUG9zaXRpb24oKTsKKyAgICBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7CisKKyAg
ICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGZhbHNlKTsKKyAgICBzZXRSZXF1
ZXN0QW5pbWF0ZWRTY3JvbGwoZmFsc2UpOworICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRs
aW5nUHJvZ3JhbW1hdGljU2Nyb2xsKGZhbHNlKTsKK30KKyNlbHNlCiB2b2lkIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Ny
b2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wKQogewogICAgIGlm
IChwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikKICAgICAgICAgcmV0dXJuOwog
CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Ny
b2xsVHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOwotICAgIAorCiAgICAgbV9jdXJy
ZW50U2Nyb2xsUG9zaXRpb24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFt
cCk7Ci0gICAgCisKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBzY3Jv
bGxUbyAiIDw8IHBvc2l0aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFzdCBjb21taXR0ZWQgcG9zaXRp
b24gIiA8PCAobV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gLSBtX2N1cnJlbnRTY3JvbGxQ
b3NpdGlvbikgPDwgIikiKTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBv
c2l0aW9uKCk7CkBAIC0xNzMsMTIgKzIxMCwxNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZQog
CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFs
c2UpOwogfQorI2VuZGlmCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJl
bnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKQogewogICAgIHJlcG9zaXRpb25TY3JvbGxpbmdMYXll
cnMoKTsKICAgICByZXBvc2l0aW9uUmVsYXRlZExheWVycygpOwogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBpZiAoIXJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKQorICAgICAgICByZXR1
cm47CisjZW5kaWYKICAgICBzY3JvbGxpbmdUcmVlKCkubm90aWZ5UmVsYXRlZE5vZGVzQWZ0ZXJT
Y3JvbGxQb3NpdGlvbkNoYW5nZSgqdGhpcyk7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzKTsKIH0KQEAgLTI2Niw2ICszMDgsMzcgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMs
IFNjcm9sbGluZ1N0YXRlVHIKICAgICB0cy5kdW1wUHJvcGVydHkoInNjcm9sbGFibGUgYXJlYSBw
YXJhbWV0ZXJzIiwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMpOwogfQogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFJlcXVl
c3RBbmltYXRlZFNjcm9sbChib29sIGFuaW1hdGVkKQoreworICAgIG1fcmVxdWVzdEFuaW1hdGVk
U2Nyb2xsID0gYW5pbWF0ZWQ7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdEFu
aW1hdGVkU2Nyb2xsOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKGJvb2wgaW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBpblByb2dyZXNzOworfQorCitib29sIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9zY3JvbGxBbmltYXRpb25JblByb2dyZXNzOworfQorCit2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOjpzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGJv
b2wgc3RvcCkKK3sKKyAgICBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24gPSBzdG9w
OworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpuZWVkc1N0b3BDdXJyZW50
U2Nyb2xsQW5pbWF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uZWVkc1N0b3BDdXJyZW50
U2Nyb2xsQW5pbWF0aW9uOworfQorI2VuZGlmCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXgg
NGNiZjRkMWFmMC4uNmFmNDJhM2U2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC02MCw3ICs2
MCwxMSBAQCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gLSBtX2xhc3RDb21taXR0
ZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8gVGhlc2UgYXJlIGltcGVyYXRpdmU7IHRoZXkg
YWRqdXN0IHRoZSBzY3JvbGxpbmcgbGF5ZXJzLgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgdm9pZCBzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5
cGU6OlVzZXIsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0Nv
bnRlbnRFZGdlcywgYm9vbCBuZWVkU3luY1Njcm9sbFBvc2l0aW9uID0gZmFsc2UpOworI2Vsc2UK
ICAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xs
VHlwZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRv
Q29udGVudEVkZ2VzKTsKKyNlbmRpZgogICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgRmxvYXRTaXpl
JiwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVk
Z2VzKTsKIAogICAgIHZvaWQgd2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBG
bG9hdFBvaW50JiBwb3NpdGlvbiwgT3B0aW9uYWw8RmxvYXRSZWN0PiBvdmVycmlkZUxheW91dFZp
ZXdwb3J0ID0geyB9LCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbjo6U3luYyk7CkBAIC05MSw2ICs5NSwxNSBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX3Njcm9sbENvbnRhaW5lckxheWVyOyB9CiAgICAgY29uc3QgTGF5ZXJSZXByZXNl
bnRhdGlvbiYgc2Nyb2xsZWRDb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxl
ZENvbnRlbnRzTGF5ZXI7IH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBz
ZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCk7CisgICAgYm9vbCByZXF1ZXN0QW5pbWF0ZWRT
Y3JvbGwoKSBjb25zdDsKKyAgICB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9v
bCk7CisgICAgYm9vbCBzY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGJvb2wpOworICAgIGJvb2wgbmVl
ZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0OworI2VuZGlmCisKIHByb3RlY3Rl
ZDoKICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xs
aW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKQEAgLTE0OCw2ICsxNjEsMTIgQEAgcHJp
dmF0ZToKICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnM7CiAgICAgYm9vbCBtX2lzRmlyc3RDb21taXQgeyB0cnVlIH07CiAKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIGJvb2wgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9zY3JvbGxBbmltYXRpb25JblByb2dyZXNzIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbiB7IGZhbHNlIH07CisjZW5kaWYK
KwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxDb250YWluZXJMYXllcjsKICAgICBM
YXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IGY0NTdiMTU2MWUuLmY2ZDM1NjY1ZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtNTQsMTEgKzU0LDE5IEBAIGVu
dW0gY2xhc3MgU2Nyb2xsUG9zaXRpb25DbGFtcCA6IHVpbnQ4X3QgewogICAgIFRvQ29udGVudEVk
Z2VzLAogfTsKIAotLy8gRklYTUU6IEFkZCBhbm90aGVyIHN0YXR1cyBJbk5hdGl2ZUFuaW1hdGlv
biB0byBpbmRpY2F0ZSBuYXRpdmUgc2Nyb2xsaW5nIGlzIGluIHByb2dyZXNzLgotLy8gU2VlOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKK2VudW0gY2xhc3MgU2Ny
b2xsQmVoYXZpb3JUeXBlIDogdWludDhfdCB7CisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgsCit9
OworI2VuZGlmCisKIGVudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgOiB1aW50OF90IHsK
ICAgICBOb3RJbkFuaW1hdGlvbiwKICAgICBJbk5vbk5hdGl2ZUFuaW1hdGlvbiwKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEluTmF0aXZl
QW5pbWF0aW9uLAorI2VuZGlmCiB9OwogCiBpbmxpbmUgU2Nyb2xsRGlyZWN0aW9uIGxvZ2ljYWxU
b1BoeXNpY2FsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGlzVmVydGlj
YWwsIGJvb2wgaXNGbGlwcGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApp
bmRleCAyZTIxZTVlM2YxLi5iYzY5Yzc4ODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcApAQCAtNDY1LDYgKzQ2NSwxMCBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgYm9vbC8qCiB7
CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxWaWV3Ojpz
ZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9s
bEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpOworI2VuZGlmCisKICAg
ICBpZiAocHJvaGliaXRzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGE4YjYwMzdmYmMuLjE1MDcw
NGMyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAg
LTcxLDYgKzcxLDkgQEAgU2Nyb2xsYWJsZUFyZWE6OlNjcm9sbGFibGVBcmVhKCkKICAgICAsIG1f
c2Nyb2xsT3JpZ2luQ2hhbmdlZChmYWxzZSkKICAgICAsIG1fY3VycmVudFNjcm9sbFR5cGUoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFNjcm9sbFR5cGU6OlVzZXIpKQogICAgICwgbV9zY3JvbGxTaG91
bGRDbGVhckxhdGNoZWRTdGF0ZShmYWxzZSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgICwgbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBl
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpKQorI2Vu
ZGlmCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4
IDdkOTc5MDcxODUuLjU1NjcyZjgxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaApAQCAtMjQ2LDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsVHlwZSBj
dXJyZW50U2Nyb2xsVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbFR5cGU+
KG1fY3VycmVudFNjcm9sbFR5cGUpOyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsVHlwZShT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihzY3JvbGxUeXBlKTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3VycmVudFNj
cm9sbEJlaGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbEJlaGF2
aW9yVHlwZT4obV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQgc2V0Q3Vy
cmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVoYXZpb3JU
eXBlKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzY3JvbGxCZWhhdmlvclR5cGUpOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xsU2hvdWxk
Q2xlYXJMYXRjaGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENsZWFyTGF0
Y2hlZFN0YXRlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZShi
b29sIHNob3VsZENsZWFyKSB7IG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUgPSBzaG91
bGRDbGVhcjsgfQogCkBAIC00MDksNiArNDE0LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBt
X3Njcm9sbE9yaWdpbkNoYW5nZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbFR5
cGUgOiAxOyAvLyBTY3JvbGxUeXBlCiAgICAgdW5zaWduZWQgbV9zY3JvbGxTaG91bGRDbGVhckxh
dGNoZWRTdGF0ZSA6IDE7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKKyAgICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgOiAx
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBiZGQzMjJjZjExLi4wYmE4OWY1MzA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI2MDIsMTIgKzI2MDIs
MjQgQEAgU2Nyb2xsT2Zmc2V0IFJlbmRlckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBT
Y3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCkgY28KIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xs
VG9PZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiBzY3JvbGxPZmZzZXQsIFNjcm9sbFR5cGUgc2Ny
b2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlm
IChjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6
SW5Ob25OYXRpdmVBbmltYXRpb24pCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5p
bWF0aW9ucygpOwogCiAgICAgU2Nyb2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFt
cGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9s
bE9mZnNldCkgOiBzY3JvbGxPZmZzZXQ7Ci0gICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0g
dGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhp
cy0+c2Nyb2xsT2Zmc2V0KCkpIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQorICAgICAgICAvLyBJZiBVSVNjcm9sbFZpZXcgaXMgcGVyZm9ybWlu
ZyBhIHNjcm9sbCBhbmltYXRpb24sIHRoZSBzY3JvbGwgb2Zmc2V0IG9mIHRoZSBXZWIgcHJvY2Vz
cyBtaWdodCBiZSBvdmVycmlkZGVuLgorICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGNhbGwgcmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlIGhlcmUgYW5kIGxldCBpdCBiZSBjaGVja2VkIG9uIHRo
ZSBVSSBwcm9jZXNzLgorICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIG9mZnNldCBvbiB0aGUgVUkg
cHJvY2VzcyBpcyBkaWZmZXJlbnQsIHRoZSBjb3JyZWN0IHNjcm9sbCBvZmZzZXQgbmVlZHMgdG8g
c3luYyBiYWNrIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2ZUFuaW1hdGlv
bikKKyAgICAgICAgICAgIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlv
bkZyb21PZmZzZXQoY2xhbXBlZFNjcm9sbE9mZnNldCkpOworI2VuZGlmCiAgICAgICAgIHJldHVy
bjsKKyAgICB9CiAKICAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxU
eXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CkBAIC0yNjM5LDYg
KzI2NTEsMTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9u
KGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGwKICAgICBhdXRvIHByZXZpb3VzU2Ny
b2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUo
c2Nyb2xsVHlwZSk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZp
b3JUeXBlOjpTbW9vdGgpOworICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Ny
b2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKSB7CisgICAgICAgIHNldEN1cnJlbnRTY3Jv
bGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5k
aWYKKwogICAgIFNjcm9sbE9mZnNldCBuZXdTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3Jv
bGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KG9mZnNldCkgOiBvZmZzZXQ7
CiAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5j
YW5jZWxBbmltYXRpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ0MzU1Y2IwMGQuLmIyOGFhNGQwY2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGll
Y2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZp
b3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0
aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEFkZCBDU1NPTSBzbW9vdGgg
c2Nyb2xsaW5nIGFzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlLiBPbiBpb3MgcGxhdGZvcm0sIHVz
ZSBuYXRpdmUgYW5pbWF0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGludGVyZmFjZXMgdG8gcGVyZm9y
bWFuY2Ugc21vb3RoIHNjcm9sbCBhbmQgc2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBX
ZWIgcHJvY2Vzcy4KKworICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU+OjplbmNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU+OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpkdW1wKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKHBvaW50c0Vx
dWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwpOiBIZWxwIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHR3byBm
bG9hdCBwb2ludHMgYXJlIG5vdCBlcXVhbCBidXQgaW4gdGhlIHNhbWUgZGV2aWNlIHBpeGVsLgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9s
bE9yaWdpbjphbmltYXRlZDpdKTogQWRkIGFuaW1hdGVkIGZsYWcgdG8gc3RhcnQgYSBhbmltYXRl
ZCBzY3JvbGwgaWYgbmVlZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld0RpZEVu
ZFNjcm9sbGluZ0FuaW1hdGlvbjpdKTogU2VuZCBzcm9sbCBlbmQgbWVzc2FnZSB0byB0aGUgV2Vi
IHByb2Nlc3MuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9z
aXRpb246c2Nyb2xsT3JpZ2luOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1h
dGlvbik6IFByb3ZpZGUgaW50ZXJmYWNlIGZvciBhbmltYXRlZCBzY3JvbGxpbmcuCisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Ojpjb21taXRMYXllclRyZWUpOiBBZGQgYW5pbWF0ZWQgZmxhZy4KKyAgICAgICAgKiBVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCk6IFN5bmMgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2Vi
IHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBBZGQgYW5pbWF0ZWQgc2Nyb2xs
aW5nIGluZm8gdG8gbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IFN5bmMgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzc0RpZENoYW5nZSk6IERpdHRvLiBJdCdzIHNwZWNpZmljIHRvIHRoZSByb290IG5vZGUu
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOiBBZGQgYW5pbWF0ZWQgaW5mby4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0
c1Njcm9sbCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpz
Y3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IERp
dHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1t
OgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmll
d0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjpdKTogU2VuZCBzY29sbCBlbmQgaW5mbyB0byB0aGUg
V2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IElmIHRoZSBzY3JvbGwgcG9z
aXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzIGlzbid0IGVxdWFsIHRvIHRoZSBVSSBwcm9jZXNzLAor
ICAgICAgICB0aGUgc2Nyb2xsIHBvc2l0aW9uIHNob3VsZCBiZSBzeW5jaHJvbml6ZWQsIGV2ZW4g
dGhlcmUncyBubyBzY3JvbGxpbmcgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzLgorICAgICAg
ICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpyZXBvc2l0
aW9uU2Nyb2xsaW5nTGF5ZXJzKTogQ2FsbGluZyB0aGUgbmF0aXZlIGFuaW1hdGVkIHNjcm9sbGlu
ZyBpbnRlcmZhY2UgZm9yIHNtb290aCBzY3JvbGwuCisgICAgICAgIElmIHRoZXJlJ3MgYSBzY3Jv
bGwgYW5pbWF0aW9uIHBlcmZvcm1pbmcsIGl0IHNob3VsZCBiZSBzdG9wcGVkIGZpcnN0LCB0aGVu
IHN0YXJ0IGEgbmV3IHNjcm9sbGluZy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlv
bik6IFN5bmMgc2Nyb2xsIGVuZCBpbmZvIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZXF1ZXN0U2Nyb2xsKTogVG8gY2FsbCBkaWZmZXJlbnQgZnVuY3Rpb25zIGZvciBzbW9vdGgg
YW5kIGluc3RhbnQgc2Nyb2xsLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzQ2hhbmdlZEZvck5vZGUpOgorCiAyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNo
ZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9y
IHBhcnNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmNwcAppbmRleCBkN2IxZTE5MzcyLi41NzQ0ZTFjODZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xNTIsNiAr
MTUyLDkgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdAogICAgIFNDUk9MTElOR19OT0RFX0VOQ09E
RShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zLCBzY3Jv
bGxhYmxlQXJlYVBhcmFtZXRlcnMpCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5p
bWF0aW9uKQorI2VuZGlmCiAKICAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2Rl
LnNjcm9sbENvbnRhaW5lckxheWVyKCkpOwpAQCAtMjYwLDcgKzI2MywxNCBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFNjcm9sbAogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgYm9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uOworICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHNjcm9sbFdpdGhBbmltYXRpb24pKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBub2RlLnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNj
cm9sbFBvc2l0aW9uLCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxXaXRoQW5p
bWF0aW9uKTsKKyNlbHNlCiAgICAgICAgIG5vZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAg
ICAgfQogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjE4LDkgQEAg
c3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8
fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVl
c3RlZC1zY3JvbGwtcG9zaXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwog
ICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJv
Z3JhbWF0aWMiLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCgpKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1w
UHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBub2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0K
IAogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXgg
MzM1NGFjNmVlYy4uMTA4ZTRjMDNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xNjE3LDYgKzE2MTcsMTEgQEAgc3RhdGljIGlubGlu
ZSBib29sIHBvaW50c0VxdWFsSW5EZXZpY2VQaXhlbHMoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZs
b2F0IGRldmljZVMKICAgICAgICAgJiYgZmFicyhhLnkgKiBkZXZpY2VTY2FsZUZhY3RvciAtIGIu
eSAqIGRldmljZVNjYWxlRmFjdG9yKSA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNp
bG9uKCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBwb2ludHNFcXVhbEluUm91bmRUb0Rldmlj
ZVBpeGVsKENHUG9pbnQgYSwgQ0dQb2ludCBiLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sK
KyAgICByZXR1cm4gQ0dSb3VuZChhLnggKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChi
LnggKiBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICAgICAgJiYgQ0dSb3VuZChhLnkgKiBkZXZpY2VT
Y2FsZUZhY3RvcikgPT0gQ0dSb3VuZChiLnkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CiBzdGF0
aWMgQ0dTaXplIHJvdW5kU2Nyb2xsVmlld0NvbnRlbnRTaXplKGNvbnN0IFdlYktpdDo6V2ViUGFn
ZVByb3h5JiBwYWdlLCBDR1NpemUgY29udGVudFNpemUpCiB7CiAgICAgZmxvYXQgZGV2aWNlU2Nh
bGVGYWN0b3IgPSBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCk7CkBAIC0yMzQxLDkgKzIzNDYsMTAg
QEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJD
b3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKICAgICByZXR1cm4gY29udGVudE9mZnNldC5jb25z
dHJhaW5lZEJldHdlZW4oV2ViQ29yZTo6RmxvYXRQb2ludCgpLCBXZWJDb3JlOjpGbG9hdFBvaW50
KG1heGltdW1Db250ZW50T2Zmc2V0KSk7CiB9CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNj
cm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9y
aWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luCistICh2b2lkKV9zY3JvbGxUb0Nv
bnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBz
Y3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDooQk9P
TClhbmltYXRlZAogewotICAgIGlmIChfY29tbWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uIHx8
IF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlICE9IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBk
YXRlTW9kZTo6Tm90UmVzaXppbmcpCisgICAgLy8gQW5pbWF0ZWQgc2Nyb2xsaW5nIHNob3VsZG4n
dCBiZSBza2lwcGVkLgorICAgIGlmICghYW5pbWF0ZWQgJiYgKF9jb21taXREaWRSZXN0b3JlU2Ny
b2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5h
bWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZnNldCA9IFdlYkNvcmU6OlNjcm9sbGFi
bGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHRvRmxvYXRT
aXplKHNjcm9sbE9yaWdpbikpOwpAQCAtMjM1NywxMyArMjM2MywyMSBAQCBzdGF0aWMgV2ViQ29y
ZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQg
Y29udGVudE9mZgogCiAgICAgW19zY3JvbGxWaWV3IF9zdG9wU2Nyb2xsaW5nQW5kWm9vbWluZ0Fu
aW1hdGlvbnNdOwogCi0gICAgaWYgKCFDR1BvaW50RXF1YWxUb1BvaW50KGNvbnRlbnRPZmZzZXRJ
blNjcm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdKSkKLSAg
ICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldEluU2Nyb2xs
Vmlld0Nvb3JkaW5hdGVzXTsKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhleSBhcmUgbm90
IGVxdWFsLCBidXQgaW4gdGhlIHNhbWUgZGV2aWNlIHBpeGVsLCBzbyBfc2Nyb2xsVmlldyB3b24n
dCBjaGFuZ2UuCisgICAgLy8gV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIHJvdW5kIHRvIGRldmlj
ZSBwaXhlbCBoZXJlLgorICAgIGlmICghcG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbChj
b250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFtfc2Nyb2xsVmlldyBjb250ZW50
T2Zmc2V0XSwgX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpKQorICAgICAgICBbX3Njcm9sbFZp
ZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMg
YW5pbWF0ZWQ6YW5pbWF0ZWRdOwogICAgIGVsc2UgewogICAgICAgICAvLyBJZiB3ZSBoYXZlbid0
IGNoYW5nZWQgYW55dGhpbmcsIHRoZXJlIHdvdWxkIG5vdCBiZSBhbnkgVmlzaWJsZUNvbnRlbnRS
ZWN0IHVwZGF0ZSBzZW50IHRvIHRoZSBjb250ZW50LgogICAgICAgICAvLyBUaGUgV2ViUHJvY2Vz
cyB3b3VsZCBrZWVwIHRoZSBpbnZhbGlkIGNvbnRlbnRPZmZzZXQgYXMgaXRzIHNjcm9sbCBwb3Np
dGlvbi4KICAgICAgICAgLy8gVG8gc3luY2hyb25pemUgdGhlIFdlYlByb2Nlc3Mgd2l0aCB3aGF0
IGlzIG9uIHNjcmVlbiwgd2Ugc2VuZCB0aGUgVmlzaWJsZUNvbnRlbnRSZWN0IGFnYWluLgogICAg
ICAgICBfcGFnZS0+cmVzZW5kTGFzdFZpc2libGVDb250ZW50UmVjdHMoKTsKKyAgICAgICAgLy8g
SWYgX3Njcm9sbFZpZXcgd29uJ3QgY2hhbmdlLCB3ZSBzdGlsbCBuZWVkIHRvIHRlbGwgdGhlIFdl
YiBwcm9jZXNzIHRoYXQgdGhlIGFuaW1hdGlvbiBzdG9wcGVkLgorICAgICAgICBpZiAoYW5pbWF0
ZWQpIHsKKyAgICAgICAgICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eSogY29vcmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOworICAg
ICAgICAgICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9yLT5z
Y3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uo
ZmFsc2UpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0yODc5LDYgKzI4OTMsMTAgQEAgc3Rh
dGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpG
bG9hdFBvaW50IGNvbnRlbnRPZmYKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0Fu
aW1hdGlvbjooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewogICAgIFtzZWxmIF9kaWRGaW5p
c2hTY3JvbGxpbmddOworCisgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7Cisg
ICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZVJv
b3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsKIH0KIAog
LSAodm9pZClfc2Nyb2xsVmlld0RpZEludGVycnVwdERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3
ICopc2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA0MzUwODBmMzI0Li41Y2I1ZjU4MTcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaApAQCAtOTcsNyArOTcsNyBAQCBzdHJ1Y3QgUHJpbnRJbmZvOwogCiAtIChSZWZQdHI8
V2ViS2l0OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90OwogCi0tICh2b2lkKV9zY3Jv
bGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3Np
dGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbjsKKy0gKHZv
aWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNj
cm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2lu
IGFuaW1hdGVkOihCT09MKWFuaW1hdGVkOwogLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3Jl
OjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2lu
IG1pbmltdW1TY3JvbGxEaXN0YW5jZTooZmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNlOwogLSAo
ZG91YmxlKV9pbml0aWFsU2NhbGVGYWN0b3I7CiAtIChkb3VibGUpX2NvbnRlbnRab29tU2NhbGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZTg0ODI0ZmQ4NS4uZGUzZDMz
Njc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTgxLDYgKzE4MSw4
IEBAIHB1YmxpYzoKICAgICAvLyBUZWxsIHRoZSB2aWV3IHRvIHNjcm9sbCB0byB0aGUgZ2l2ZW4g
cG9zaXRpb24sIGFuZCB3aGV0aGVyIHRoaXMgd2FzIGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4KICAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgPSAw
OwogCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgc2Nyb2xsT3JpZ2luKSB7IH0KKwogICAgIC8vIFJldHVybiB0aGUgY3VycmVudCBzY3JvbGwg
cG9zaXRpb24gKG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgV2ViQ29yZSBzY3JvbGwg
cG9zaXRpb24sIGJlY2F1c2Ugb2Ygc2NhbGluZywgaW5zZXRzIGV0Yy4pCiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCAzODBmMTI0NDQz
Li4wYTQyZjk0NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbQpAQCAtMjI0LDggKzIyNCwxNCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFucwog
CiAgICAgLy8gSGFuZGxlIHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gdXBkYXRlcyBmcm9tIHRo
ZSBzY3JvbGxpbmcgdHJlZSB0cmFuc2FjdGlvbiBhZnRlciBkaWRDb21taXRMYXllclRyZWUoKQog
ICAgIC8vIGhhcyB1cGRhdGVkIHRoZSB2aWV3IHNpemUgYmFzZWQgb24gdGhlIGNvbnRlbnQgc2l6
ZS4KLSAgICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBk
YXRlKQotICAgICAgICBtX3dlYlBhZ2VQcm94eS5yZXF1ZXN0U2Nyb2xsKHJlcXVlc3RlZFNjcm9s
bEluZm8ucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9s
bE9yaWdpbigpKTsKKyAgICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBv
c2l0aW9uVXBkYXRlKSB7CisgICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVx
dWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbgorICAgICAgICAgICAgLCBs
YXllclRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKQorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgICAgICAgICAsIHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdFdpdGhBbmltYXRp
b24KKyNlbmRpZgorICAgICAgICAgICAgKTsKKyAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKIAogICAgIGlmIChtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4
IDQ4MjNmNzZhOTcuLjFkNDBhNmE2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdl
KFdlYkNvcmU6OgogfQogCiAvLyBUaGlzIGNvbWVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlLgot
dm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURp
ZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQm
IG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmll
d3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbikKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBj
b25zdCBGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQ
b2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
IHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BB
bmltYXRpb24pCiB7CiAgICAgLy8gU2Nyb2xsIHVwZGF0ZXMgZm9yIHRoZSBtYWluIGZyYW1lIGFy
ZSBzZW50IHZpYSBXZWJQYWdlUHJveHk6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoKQogICAg
IC8vIHNvIGRvbid0IHNlbmQgdGhlbSBoZXJlLgpAQCAtMjIyLDIxICsyMjIsNDEgQEAgdm9pZCBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9s
bChTY3JvbGxpbmdOb2RlSUQKICAgICBtX3dlYlBhZ2VQcm94eS5zY3JvbGxpbmdOb2RlU2Nyb2xs
Vmlld0RpZFNjcm9sbCgpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSAmJiAh
aW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKyNlbHNlCiAg
ICAgaWYgKG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpKQog
ICAgICAgICByZXR1cm47CisjZW5kaWYKIAogICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JO
b2RlKHNjcm9sbGVkTm9kZUlELCBuZXdTY3JvbGxQb3NpdGlvbiwgc2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbiA9PSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSk7CiB9CiAK
LXZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVS
ZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
Cit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2Rl
UmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xs
LCBib29sIHdpdGhBbmltYXRpb24pCiB7CiAgICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RT
Y3JvbGxpbmdOb2RlSUQoKSAmJiBtX3JlcXVlc3RlZFNjcm9sbEluZm8pIHsKICAgICAgICAgbV9y
ZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlID0gdHJ1ZTsK
ICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3Jv
bGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdFdpdGhBbmltYXRpb24g
PSB3aXRoQW5pbWF0aW9uOworI2VuZGlmCiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKICAgICB9CiB9CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5n
ZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGJvb2wgaXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hh
bmdlZEZvck5vZGUoc2Nyb2xsZWROb2RlSUQsIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykp
OworfQorCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1Ry
ZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0NoYW5nZWRGb3JOb2RlKHJvb3RTY3JvbGxpbmdOb2RlSUQoKSwgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKSk7Cit9CisjZW5kaWYKKwogU3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6OnNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9s
bGluZ1RyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aAppbmRleCAxYTc2OTQzZjI0Li44MTE1ZTQ3N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAgLTU1LDkgKzU1LDE0IEBAIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYp
OwogICAgIHZpcnR1YWwgflJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKIAorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJv
b2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVS
b290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKKwogICAgIC8vIEluZm9ybSB0aGUgd2ViIHBy
b2Nlc3MgdGhhdCB0aGUgc2Nyb2xsIHBvc2l0aW9uIGNoYW5nZWQgKGNhbGxlZCBmcm9tIHRoZSBz
Y3JvbGxpbmcgdHJlZSkKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xs
UG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3
cG9ydE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7Ci0gICAg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURp
ZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50
PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24gPSBmYWxzZSk7CisgICAg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwog
CiAgICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29u
c3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CiAKQEAg
LTgwLDYgKzg1LDkgQEAgcHVibGljOgogICAgIHN0cnVjdCBSZXF1ZXN0ZWRTY3JvbGxJbmZvIHsK
ICAgICAgICAgYm9vbCByZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlIHsgfTsKICAgICAgICAg
Ym9vbCByZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3JvbGwgeyB9OworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisgICAgICAgIGJvb2wgcmVxdWVzdFdpdGhBbmltYXRpb24geyB9OworI2VuZGlmCiAg
ICAgICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAg
fTsKICAgICB2b2lkIGNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclRyYW5zYWN0aW9uJiwgUmVxdWVzdGVkU2Nyb2xsSW5mbyYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGFmYWJiYzFlYWUuLmU2ZWI0OGJkOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTEwNCwxMiArMTA0LDE2IEBAIHZvaWQgUmVt
b3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUmCiAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGU+KG5vZGUpKQogICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbiA9IGRvd25jYXN0PFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpLmxheW91dFZpZXdwb3J0KCkubG9jYXRp
b24oKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9zY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlE
KCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBz
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBub2RlLm5lZWRzU3RvcEN1cnJlbnRTY3JvbGxB
bmltYXRpb24oKSAmJiAhbm9kZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSk7CisjZWxzZQogICAg
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChu
b2RlLnNjcm9sbGluZ05vZGVJRCgpLCBub2RlLmN1cnJlbnRTY3JvbGxQb3NpdGlvbigpLCBsYXlv
dXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CisjZW5kaWYK
IH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3Rz
U2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCit2b2lkIFJlbW90ZVNj
cm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIG1fc2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5v
ZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAg
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGws
IHdpdGhBbmltYXRpb24pOwogfQogCiBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9s
bGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVU
eXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpAQCAtMTQzLDYgKzE0NywxMyBAQCBSZWY8U2Ny
b2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZAogICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVh
dGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBS
ZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlz
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFu
Z2Uobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIHZv
aWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2Uo
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVy
dGljYWwpCiB7CiAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmN1cnJlbnRTbmFwUG9p
bnRJbmRpY2VzRGlkQ2hhbmdlKG5vZGVJRCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggMjNiYWMwNmEzYi4uMGY5ZTA5NDk0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1MiwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYgc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsgfQogCiAgICAg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZSYsIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBXZWJD
b3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKLSAgICB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSkgb3ZlcnJpZGU7CisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29s
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIHZv
aWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TLmgKaW5kZXggZTYzN2Q2MTUzMi4uMDBiNGRiY2QzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgK
QEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7
CiAgICAgdm9pZCBzY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZv
aWQgc2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxP
ZmZzZXQsIGJvb2wgaW5Vc2VySW50ZXJhY3Rpb24pOworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVu
ZFNjcm9sbGluZ0FuaW1hdGlvbigpOwogCiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNl
c0RpZENoYW5nZSh1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7
CiAgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExheWVy
LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggZTc2ODk4Mzc1OC4uODQ4ODYzYTgxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUy5tbQpAQCAtMTUyLDYgKzE1MiwxMSBAQAogICAgIH0KIH0KIAorLSAodm9pZClz
Y3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxW
aWV3Cit7CisgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRT
Y3JvbGxpbmdBbmltYXRpb24oKTsKK30KKwogI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0g
KENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRP
ZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5z
bGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQp
bG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0
aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAg
dm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFm
dGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24pKSB7CiAgICAgICAgIGF1dG8gc2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRl
Tm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwo
KSA/IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyA6IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAg
IHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSk7CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5v
ZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisgICAgICAgICAgICBz
Y3JvbGxpbmdOb2RlKCkuc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKHRydWUpOworICAgICAgICAv
LyBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9ucyBhcmUgbm90IHRoZSBzYW1lLCB0aGVyZSdzIGEgcG9z
c2liaWxpdHkgdGhhdCB0aGUgc2Nyb2xsIG9mZnNldCBmcm9tIHRoZSBXZWIgcHJvY2VzcyBoYXMg
YmVlbiBvdmVycmlkZGVuLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSBzY3JvbGwgcG9z
aXRpb24gbmVlZCB0byBiZSBzZW50IHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgYm9vbCBz
aG91bGRTeW5jU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsUG9zaXRp
b24oKSAhPSBzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAg
IHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50
RWRnZXMsIHNob3VsZFN5bmNTY3JvbGxQb3NpdGlvbik7CiAgICAgfQogfQogCiB2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXll
cnMoKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFtzY3JvbGxWaWV3
KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgp
XTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgYm9vbCBhbmltYXRpb25JblBy
b2dyZXNzID0gc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKTsKKyAg
ICBib29sIG5lZWRUb1N0b3BBbmltYXRpb24gPSBzY3JvbGxpbmdOb2RlKCkubmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbigpOworICAgIGlmIChuZWVkVG9TdG9wQW5pbWF0aW9uICYmIGFu
aW1hdGlvbkluUHJvZ3Jlc3MpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxWaWV3KCkuY29u
dGVudE9mZnNldCBhbmltYXRlZDpOT107CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKKyAgICB9CisKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZSgpLnJlcXVlc3RBbmltYXRlZFNjcm9s
bCgpKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Ny
b2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxP
ZmZzZXQoKSBhbmltYXRlZDpZRVNdOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CisKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mo
dHJ1ZSk7CisgICAgfSBlbHNlIGlmICghYW5pbWF0aW9uSW5Qcm9ncmVzcyB8fCBuZWVkVG9TdG9w
QW5pbWF0aW9uKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAg
ICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRT
Y3JvbGxPZmZzZXQoKV07CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9
CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xs
V2lsbFN0YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICszNjEsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0
UG9pbnQKICAgICBzY3JvbGxpbmdOb2RlKCkud2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGlu
ZyhzY3JvbGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJbnRlcmFjdGlvbiA/IFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb246OlN5bmMgOiBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQp
OwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9s
bFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKQoreworICAgIGF1dG8mIG5vZGUgPSBzY3Jv
bGxpbmdOb2RlKCk7CisgICAgaWYgKCEobm9kZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBu
b2RlLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJl
ZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdl
KG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFu
Z2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAg
aWYgKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggZGIyY2UwNzljYS4uZDA5ZjYwN2FjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzY3LDkgKzE3NjcsMTIgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAg
ICAgcGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9p
bnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIHBhZ2VD
bGllbnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAg
IGlmICh3aXRoQW5pbWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbFdp
dGhBbmltYXRpb24oc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgZWxzZQorICAg
ICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3Jp
Z2luKTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQ
b3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IGFlMzg1MjIyMWQuLmFmMDdlYTQ5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC02MTMsNyArNjEzLDcgQEAgcHVibGljOgogICAgIFBhZ2VDbGllbnQmIHBhZ2VD
bGllbnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJD
b3JlOjpSZWdpb24mKTsKLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxP
cmlnaW4pOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwg
Ym9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9p
bnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggZDZjOGMzOGQ0YS4uNTE5OGVmNDQy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVy
cmlkZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9u
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3Jp
Z2luKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZp
ZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1Np
emUoKSBvdmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmlu
ZGV4IGRjOWY3NGM0OWEuLjJjMzBjNGJjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTk1LDcgKzk1LDEyIEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3Np
dGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9z
Y3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46
c2Nyb2xsT3JpZ2luXTsKKyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3Np
dGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5P
XTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24o
Y29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxP
cmlnaW4pCit7CisgICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246
c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwog
fQogCiBXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaAppbmRleCA4ZTY0OTM1NTQ1Li4zZDM0NWQ3NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6
U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5k
aWNlc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9y
aXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICB2b2lkIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNl
bmRpZgorCiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmlu
CmluZGV4IDJjMDk4YTEwOTcuLjUzN2ZkMzRkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAg
LTI1LDYgKzI1LDkgQEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsK
ICAgICBTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29y
ZTo6RmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAg
ICAgQ3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQs
IHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1
aW50NjRfdCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRp
ZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQppbmRleCA4MzU0NDFk
MzE5Li42ODlkNTU2MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDQsNiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUo
U2Nyb2xsaW5nCiAgICAgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMobm9kZUlELCBob3Jpem9u
dGFsLCB2ZXJ0aWNhbCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRG
b3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKQoreworICAgIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9k
ZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385388</attachid>
            <date>2019-12-11 07:24:45 -0800</date>
            <delta_ts>2019-12-11 09:06:23 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_28.diff</filename>
            <type>text/plain</type>
            <size>302751</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjg4NDBmM2NmLi43NTQzNzBiOGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2lu
ZyBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQu
IEluIG9yZGVyIHRvIHRlc3QgcHJvcGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9y
IHRlc3QgdG8gZmFzdC9zY3JvbGxpbmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2
ZVNjcm9sbGluZyk6CisgICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9s
bE5vZGUpOgorICAgICAgICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0
bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKKzIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0
aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlc2UgdGVzdHMgb24gV0sxIGFzIHRoZXkgZG9u
J3Qgd29yayBmb3Igbm93LgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBh
cnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBC
YXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTEyLTEwICBQZW5nIExpdSAgPHBl
bmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3JlYXRlIGEgVGVzdEV4cGVjdGF0aW9ucyBm
aWxlIGZvciB0aGUgR1BVIHByb2Nlc3MgcmVsYXRlZCB3b3JrCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBhMDk2OGUwMjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Nj
cm9sbC1iZWhhdmlvci5qcwpAQCAtMCwwICsxLDg3IEBACitmdW5jdGlvbiBvYnNlcnZlU2Nyb2xs
aW5nKGVsZW1lbnRzLCBjYWxsYmFjaykgeworICBpZiAoIUFycmF5LmlzQXJyYXkoZWxlbWVudHMp
KQorICAgICAgZWxlbWVudHMgPSBbZWxlbWVudHNdOworICB2YXIgbGFzdENoYW5nZWRGcmFtZSA9
IDA7CisgIHZhciBsYXN0TGVmdCA9IG5ldyBNYXAoKTsKKyAgdmFyIGxhc3RUb3AgPSBuZXcgTWFw
KCk7CisgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAgICBsYXN0TGVmdC5zZXQo
ZWxlbWVudCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICBsYXN0VG9wLnNldChlbGVtZW50LCBl
bGVtZW50LnNjcm9sbFRvcCk7CisgIH0pOworICBmdW5jdGlvbiB0aWNrKGZyYW1lcykgeworICAg
IC8vIFdlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIDUwMCBmcmFtZXMgb3IgdW50
aWwgMjAgZnJhbWVzIHdpdGgKKyAgICAvLyBubyBjaGFuZ2UgaGF2ZSBiZWVuIG9ic2VydmVkLgor
ICAgIGlmIChmcmFtZXMgPj0gNTAwIHx8IGZyYW1lcyAtIGxhc3RDaGFuZ2VkRnJhbWUgPiAyMCkg
eworICAgICAgY2FsbGJhY2sodHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIHZhciBzY3JvbGxI
YXBwZW5lZCA9IGVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IHsKKyAgICAgICAgcmV0dXJuIGVs
ZW1lbnQuc2Nyb2xsTGVmdCAhPSBsYXN0TGVmdC5nZXQoZWxlbWVudCkgfHwgZWxlbWVudC5zY3Jv
bGxUb3AgIT0gbGFzdFRvcC5nZXQoZWxlbWVudCk7CisgICAgICB9KTsKKyAgICAgIGlmIChzY3Jv
bGxIYXBwZW5lZCkgeworICAgICAgICBsYXN0Q2hhbmdlZEZyYW1lID0gZnJhbWVzOworICAgICAg
ICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7CisgICAgICAgICAgbGFzdExlZnQuc2V0
KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsTGVmdCk7CisgICAgICAgICAgbGFzdFRvcC5zZXQoZWxl
bWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOworICAgICAgICB9KTsKKyAgICAgICAgY2FsbGJhY2so
ZmFsc2UpOworICAgICAgfQorICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2suYmluZChu
dWxsLCBmcmFtZXMgKyAxKSk7CisgICAgfQorICB9CisgIHRpY2soMCk7Cit9CisKK2Z1bmN0aW9u
IHdhaXRGb3JTY3JvbGxFbmQoZWxlbWVudHMpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7CisgICAgb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgKGRvbmUpID0+IHsKKyAg
ICAgIGlmIChkb25lKQorICAgICAgICByZXNvbHZlKCk7CisgICAgfSk7CisgIH0pOworfQorCitm
dW5jdGlvbiByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KSB7CisgIC8vIFRyeSB2YXJpb3Vz
IG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0
ZWx5LgorICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsKHtsZWZ0OiAwLCB0
b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGxG
b3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KSB7CisgIC8vIFRyeSB2YXJpb3VzIG1ldGhvZHMgdG8g
ZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0ZWx5LgorICBzY3Jv
bGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAg
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsK
KyAgc2Nyb2xsaW5nV2luZG93LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImlu
c3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
IGNsYXNzTmFtZSkgeworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImF1dG9CZWhh
dmlvciIsICJzbW9vdGhCZWhhdmlvciIpOworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5hZGQo
Y2xhc3NOYW1lKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBz
Y3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5i
ZWhhdmlvciA9IGJlaGF2aW9yOworICBzd2l0Y2ggKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgY2Fz
ZSAic2Nyb2xsSW50b1ZpZXciOgorICAgICAgYXJncy5pbmxpbmUgPSAic3RhcnQiOworICAgICAg
YXJncy5ibG9jayA9ICJzdGFydCI7CisgICAgICBlbGVtZW50VG9SZXZlYWwuc2Nyb2xsSW50b1Zp
ZXcoYXJncyk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgYXJncy5sZWZ0ID0g
ZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgICAgIGFyZ3MudG9wID0gZWxlbWVudFRvUmV2ZWFsVG9w
OworICAgICAgc2Nyb2xsaW5nRWxlbWVudFtzY3JvbGxGdW5jdGlvbl0oYXJncyk7CisgICAgICBi
cmVhazsKKyAgfQorfQorCitmdW5jdGlvbiBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5i
ZWhhdmlvciA9IGJlaGF2aW9yOworICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0Owor
ICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgc2Nyb2xsaW5nV2luZG93W3Njcm9s
bEZ1bmN0aW9uXShhcmdzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOGQ0Y2E2NDE1
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQ
QVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1i
ZWhhdmlvciAKK1BBU1MgU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVs
dCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zNWM2NTAzYWIyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0t
PgorPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxl
PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdp
ZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0i
bG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+
CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5k
OiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwv
c3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJh
Y2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZl
YWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICB2YXIgc2Ny
b2xsRnVuY3Rpb24gPSAic2Nyb2xsIjsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICB9LCAiSW5zdGFudCBzY3Jv
bGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7CisKKyAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgIH0pOworICB9LCAiU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVs
dCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTNhOTYx
ZWY1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1l
bnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24g
YW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbiBpbnN0YW50
IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi5kMzhkZmZkZWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKQEAgLTAs
MCArMSwxNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6
QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcg
c2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJl
aGF2aW9yIG9uIGFuIGVsZW1lbnQ8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9y
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgewor
ICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4
OworICB9CisgIC5hdXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAg
fQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9
Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2Rl
IiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdo
dDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVu
KTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4K
KzwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7
CisgIHZhciBzdHlsZWRFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVudFRvUmV2
ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKworICBbInNj
cm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2go
KHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHki
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9
LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9
KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVz
b2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
YCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlv
biwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAg
IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgIH0sIGBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3JgKTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNl
dFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGgg
c2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOwor
ICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9v
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uOTdjYWVhMjdiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgUGFnZSBsb2FkZWQgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGlu
ZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi5kMzI1YjRiOWUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRt
bApAQCAtMCwwICsxLDE2OSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBp
bnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+
VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBz
Y3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcv
I3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVoYXZpb3Igewor
ICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAg
IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4K
KzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJw
b3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4K
KyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOworICB2YXIgc2Ny
b2xsaW5nRWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBhZ2VMb2Fk
ZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9
ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZl
YWxMZWZ0ID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZl
YWxUb3AgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZl
YWwuc3R5bGUubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRU
b1JldmVhbC5zdHlsZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRk
X2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsgfSk7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJ
bnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAg
ICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5j
dGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAg
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3Rh
bnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShz
Y3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVt
ZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGgg
YW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM4MjM4NWFhYjQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisKK1BBU1MgUGFnZSBsb2FkZWQg
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjkwNTdiMGNkMTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1h
aW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVs
ZW1lbnQuc2Nyb2xsKiBvbiB0aGUgd2luZG93IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2Nh
bGU9MSI+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBtYXJnaW46
IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOwor
ICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
IH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdlQ29udGVu
dCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+CisgIDxkaXYg
aWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTog
aW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFj
azsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFzeW5jX3Rl
c3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdXaW5kb3csIHN0eWxlZEVsZW1lbnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKCkg
eworICAgIHNjcm9sbGluZ1dpbmRvdyA9IHdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEw
ICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJweCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUu
aGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1l
bnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1l
bnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA0OworICAgIGVsZW1l
bnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAg
ZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisK
KyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlc2V0U2Nyb2xsRm9yV2luZG93
KHdpbmRvdyk7IH0pOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5m
b3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyBy
ZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5j
dGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJh
dXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFks
IDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlv
biwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3Jv
bGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5j
dGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3Ai
KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhz
Y3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxG
dW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAg
ICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1
bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93
KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3Jv
bGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIs
IGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
MiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFu
b3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xs
aW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Ny
b2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9
LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1l
IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9s
bGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDQzYTgyMGU1OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBz
Y3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQ1YjVkOGQ3
YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsODggQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3Igd2l0aCBzY3JvbGxJbnRvVmlldyBmb3IgbmVzdGVkIHNjcm9sbGluZyBub2Rl
czwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGln
YWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJv
eCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87
CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9s
bC1iZWhhdmlvcjogc21vb3RoOworICB9CisgIC5ncmFkaWVudCB7CisgICAgYmFja2dyb3VuZDog
bGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7CisgIH0KKzwvc3R5bGU+Cis8ZGl2
IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2PgorICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIHNtb290
aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQ1MHB4Ij4KKyAgICA8ZGl2IGNsYXNzPSJncmFkaWVu
dCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogNDAwcHgiPgor
ICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDog
NTAwcHg7Ij48L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0
aDogMzUwcHgiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAx
MDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlIiBzdHlsZT0id2lkdGg6IDMwMHB4Ij4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVu
dCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAg
IDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogMjUw
cHgiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9s
bGFibGUiIHN0eWxlPSJ3aWR0aDogMjAwcHgiPgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJn
cmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAg
ICAgICAgICAgICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJ3aWR0aDogMTBweDsg
aGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsi
PjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
ICAgIDwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPGRp
diBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48
L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3
aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+
Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIFRoZSBDU1NPTS1WaWV3IHNwZWMgYW5kIGltcGxlbWVu
dGF0aW9ucyBmb2xsb3cgZGlmZmVyZW50IGFsZ29yaXRobXMgKHNjcm9sbHMgcGVyZm9ybWVkIGlu
IHBhcmFsbGVsLCBhcyBpbm5lci10by1vdXRlciBzZXF1ZW5jZSBvciBhcyBvdXRlci10by1pbm5l
ciBzZXF1ZW5jZSkuCisgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0
cy9pc3N1ZXMvMzEyNworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciBkaXZzID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLnNjcm9sbGFibGUiKTsKKyAgICAgIGRpdnMuZm9yRWFjaCgo
c2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxhYmxlRGl2KTsK
KyAgICAgIH0pOworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbEludG9WaWV3KHtpbmxpbmU6
ICJzdGFydCIsIGJsb2NrOiAic3RhcnQiLCBiZWhhdmlvcjogImF1dG8ifSk7CisgICAgICB2YXIg
c2Nyb2xsVG9wID0gbmV3IE1hcCgpOworICAgICAgdmFyIGlzU21vb3RoID0gbmV3IE1hcCgpOwor
ICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAgIHNjcm9sbFRv
cC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAgICBp
c1Ntb290aC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5jbGFzc0xpc3QuY29udGFp
bnMoInNtb290aEJlaGF2aW9yIikpOworICAgICAgICAvLyBJZiBzY3JvbGwgb3BlcmF0aW9ucyBh
cmUgbm90IHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgc2Nyb2xsIGJveGVzIHdpdGggaW5zdGFudCBi
ZWhhdmlvciBtaWdodCBhbHNvIG5lZWQgdG8gd2FpdCBmb3IgdGhlaXIgcHJlZGVjZXNzb3JzLgor
ICAgICAgICBpZiAoaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2KSwgNTAwLCAiRWxlbWVudCB3
aXRoIHNtb290aCBiZWhhdmlvciBzaG91bGQgbm90IHNjcm9sbCBpbW1lZGlhdGVseSIpOworICAg
ICAgfSk7CisKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcoQXJyYXkuZnJvbShkaXZzKSwgZnVuY3Rp
b24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgIGRpdnMuZm9yRWFjaCgoc2Nyb2xs
YWJsZURpdikgPT4geworICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChzY3JvbGxU
b3AuZ2V0KHNjcm9sbGFibGVEaXYpLCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgIlNjcm9sbFRv
cCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICBpZiAoIWlzU21vb3RoLmdldChzY3Jv
bGxhYmxlRGl2KSkKKyAgICAgICAgICAgICAgYXNzZXJ0X2FueShhc3NlcnRfZXF1YWxzLCBzY3Jv
bGxhYmxlRGl2LnNjcm9sbFRvcCwgWzAsIDUwMF0sICJFbGVtZW50IHdpdGggaW5zdGFudCBiZWhh
dmlvciBzaG91bGQganVtcCB0byB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIGlm
IChkb25lKQorICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGFibGVEaXYuc2Nyb2xs
VG9wLCA1MDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgICAgIHNjcm9s
bFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAg
ICAgIH0pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7
CisgICAgfSk7CisgIH0sICJzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRo
IGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMC4uODU1YTZhNjEwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9u
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5n
IHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3Jv
bGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgx
MDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9z
aXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1
MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBw
ZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1
c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcg
c21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xs
VG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5n
IHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1Zp
ZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygp
ICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJv
cnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uMGE0MWI4YjA4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5o
dG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUg
IGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRs
ZT5UZXN0aW5nIHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRo
IHNtb290aCBiZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAg
b3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7Cisg
ICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ci
PgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAg
PGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxp
bmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRp
c3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFu
PjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dy
b3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICAvLyBG
b3Igc21vb3RoIGJlaGF2aW9yLCBldm9sdXRpb24gb2Ygc2Nyb2xsIHBvc2l0aW9ucyBvdmVyIHRp
bWUgaXMgbm90IHNwZWNpZmllZCBieSBDU1NPTSBWaWV3LgorICAvLyBUaGlzIHRlc3QgcmVsaWVz
IG9uIHRoZSBtaW5pbWFsIGFzc3VtcHRpb24gdGhhdCBzY3JvbGwgcG9zaXRpb24gZnVuY3Rpb25z
IGFyZSBtb25vdG9uaWMuCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNj
cm9sbEludG9WaWV3Il0uZm9yRWFjaChmdW5jdGlvbihzY3JvbGxGdW5jdGlvbikgeworICAgIFt7
bGVmdDowLCB0b3A6MH0sIHtsZWZ0OjEwMDAsIHRvcDowfSwge2xlZnQ6MCwgdG9wOjUwMH0sIHts
ZWZ0OjEwMDAsIHRvcDo1MDB9XS5mb3JFYWNoKChpbml0aWFsKSA9PiB7CisgICAgICB2YXIgZmlu
YWxMZWZ0ID0gNTAwOworICAgICAgdmFyIGZpbmFsVG9wID0gMjUwOworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwg
Imluc3RhbnQiLCBpbml0aWFsLmxlZnQsIGluaXRpYWwudG9wKTsKKyAgICAgICAgICB2YXIgb2xk
TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBvbGRUb3AgPSBv
dmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwg
aW5pdGlhbC5sZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCBpbml0aWFsLnRvcCwgIlNjcm9sbFRv
cCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIpOworICAgICAgICAgIGlmIChzY3JvbGxG
dW5jdGlvbiA9PT0gInNjcm9sbEJ5IikKKyAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCAtIGluaXRpYWwubGVmdCwg
ZmluYWxUb3AgLSBpbml0aWFsLnRvcCk7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Ny
b2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZmluYWxMZWZ0
LCBmaW5hbFRvcCk7CisgICAgICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1
bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHZhciBuZXdM
ZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgIHZhciBuZXdUb3Ag
PSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFu
X2VxdWFsKE1hdGguaHlwb3QoZmluYWxMZWZ0IC0gbmV3TGVmdCwgZmluYWxUb3AgLSBuZXdUb3Ap
LCBNYXRoLmh5cG90KGZpbmFsTGVmdCAtIG9sZExlZnQsIGZpbmFsVG9wIC0gb2xkVG9wKSwgIlNj
cm9sbCBwb3NpdGlvbiBzaG91bGQgbW92ZSB0b3dhcmRzIHRoZSBmaW5hbCBwb3NpdGlvbiIpOwor
ICAgICAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
bmV3TGVmdCwgZmluYWxMZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRp
b24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgZmluYWxUb3AsICJT
Y3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgICAgIG9sZFRvcCA9
IG5ld1RvcDsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICByZWplY3Qo
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKCR7aW5pdGlh
bC5sZWZ0fSwgJHtpbml0aWFsLnRvcH0pIHRvICgke2ZpbmFsTGVmdH0sICR7ZmluYWxUb3B9KSB1
c2luZyAke3Njcm9sbEZ1bmN0aW9ufSgpIGApOworICAgIH0pOworICB9KTsKKworICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5p
dGlhbFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBzY3JvbGxEaXJlY3Rpb25DaGFu
Z2VkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0
OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICBhc3Nl
cnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3RoIiwgMTUwMCwg
NzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25l
KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUu
c2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRv
cDsKKyAgICAgICAgICBpZiAoaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsKKyAgICAgICAgICAgIGlm
IChzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkKSB7CisgICAgICAgICAgICAgIGFzc2VydF9ncmVhdGVy
X3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgZGVjcmVhc2lu
ZyIpOworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9sZFRvcCwgbmV3
VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICBzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkID0gbmV3TGVmdCA8PSBvbGRMZWZ0
ICYmIG5ld1RvcCA8PSBvbGRUb3A7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVw
cyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xk
VG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAg
ICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7CisgICAgICAgICAgICAgICAg
Ly8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAgICAgIGluaXRpYWxTY3Jv
bGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9k
ZSwgInNjcm9sbCIsICJzbW9vdGgiLCA1MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVm
dCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAg
ICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAw
LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9sZExlZnQgPSBuZXdMZWZ0Owor
ICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAg
ICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChkb25lKQorICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Nyb2xsIHBvc2l0aW9ucyB3aGVu
IGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGlu
ZyIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRTY3JvbGwob3ZlcmZsb3dOb2Rl
KTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZhbHNlOworICAgICAgdmFyIG9s
ZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZhciBvbGRUb3AgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAwKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAgICBvYnNlcnZlU2Nyb2xs
aW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAg
ICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgdmFy
IG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgaWYgKCFpbml0aWFs
U2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9s
ZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBr
ZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAmJiBu
ZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBzY3Jv
bGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAgICAg
ICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCA1
MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxM
ZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNo
b3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQg
c3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdU
b3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgc3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAg
ICAgICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3Ag
PSBuZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9
KTsKKyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290
aCBzY3JvbGxpbmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1
YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yNzk5ZmRjYzI5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1y
b290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgaWZyYW1lIGxvYWRlZCAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRp
bmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uOTZkMTFhYjk2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEs
MTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5j
T3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGlu
Z0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZp
b3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9m
IGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIv
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0
bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Nj
cm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJl
aGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9
ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZ
UEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2luOiAwOworICAg
IH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAg
ICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3Ro
OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIw
MDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcs
IHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2Nr
OyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRU
b1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0x
NXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bh
bj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+
CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2FkZWQiKTsKKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAg
dmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3Ag
PSAyNTA7CisgIGlmcmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRU
ZXN0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gaWZyYW1l
Tm9kZS5jb250ZW50RG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICBzdHlsZWRFbGVtZW50
ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1l
bnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
bGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5
IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24s
IG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyBy
ZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAi
aW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1
YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFu
dCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhh
dmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4g
eworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAg
IH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3
aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwLi4wNWViMzI3MmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjkgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFu
IG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIg
c21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLjMzMzNkNjRmODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCkBA
IC0wLDAgKzEsMTcxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVy
bmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFt
ZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9y
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxp
ZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9j
PSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2lu
OiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjog
YXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlv
cjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0n
d2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVu
dCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5s
aW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9
J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwt
YWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFj
azsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4K
KzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2Fk
ZWQiKTsKKyAgdmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2
ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1Jl
dmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZy
YW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgIHNjcm9sbGluZ1dpbmRvdyA9
IGlmcmFtZU5vZGUuY29udGVudFdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9k
ZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9
IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZl
YWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgo
c2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgp
OyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdX
aW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0Jl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsK
KyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIp
OworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Nj
cm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAg
ICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAg
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsK
KyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdX
aW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAp
OworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
ICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5n
V2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24s
ICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50
VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBv
bmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNt
b290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNl
dFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRv
dywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJp
bnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFu
IGluc3RhbnQgc2Nyb2xsaW5nIik7CisKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCA0N2ZkNWUxYTU0Li4zNmY1M2I2MGEzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENo
ZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNj
cm9sbCBiZWhhdmlvciByZWxpZXMgb24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBXZWIgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQg
b24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBFbmFibGUgQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCBvbiBzY3JvbGwgYmVoYXZpb3IgdGVzdHMgYW5kIHVw
ZGF0ZSBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRl
ZmF1bHQtY3NzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDoK
KworMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNo
IGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6CisKIDIwMTktMTItMTAgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1zeW5jIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2luLW9i
amVjdHMvY3Jvc3Mtb3JpZ2luLW9iamVjdHMuaHRtbCBmcm9tIHVzcHRyZWFtCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0
CmluZGV4IDNhYzBhMzdjZmYuLjg3NWE3MjdjOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NCBAQAogCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBoYXMgaW5pdGlhbCB2YWx1ZSBh
dXRvIGFzc2VydF90cnVlOiBzY3JvbGwtYmVoYXZpb3IgZG9lc24ndCBzZWVtIHRvIGJlIHN1cHBv
cnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9yIGRvZXMgbm90IGluaGVyaXQgYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBoYXMg
aW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgZG9lcyBu
b3QgaW5oZXJpdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0
CmluZGV4IDkwNjhiNzk3NTUuLjhkNGNhNjQxNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKIFBBU1MgSW5zdGFudCBzY3Jv
bGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAotRkFJTCBT
bW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU21vb3Ro
IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCmluZGV4IDY5MjVjZjA5MmMuLmZlNDc1YjAzOWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQ
RSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+
VGVzdGluZyBkZWZhdWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dAppbmRleCAyYjkxMjljMWNmLi41M2E5NjFlZjU2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMiwzNSArMiwzNSBA
QAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1G
QUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAor
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJ
TCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
NTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNt
b290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQuaHRtbAppbmRleCAzY2JkNzIyZjcyLi42YzE1OTI5YzlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50
PC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVk
LnR4dAppbmRleCBkOTIyMjU4YWYyLi45N2NhZWEyN2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTMsMzUgKzMsMzUgQEAgUEFTUyBQ
YWdlIGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
NDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190
aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVt
YmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBn
b3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFz
c2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3Qg
MjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQ
QVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1
dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAog
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJh
bWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCmluZGV4IGZjZjc1
YWExZGQuLjZkOWIyMjQyZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9y
IGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiB0
aGUgbWFpbiBmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25n
Ii8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFp
bHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGM2YmU5NjY2MWMuLjM4MjM4NWFhYjQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAg
LTMsMjcgKzMsMjcgQEAgUEFTUyBQYWdlIGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBi
dXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0
MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1
dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3cuaHRtbAppbmRleCA4Yzg4ZWM2ODYxLi5iZjM4NzMwNDI2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUg
aHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVu
dGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRl
c3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBvbiB0aGUg
d2luZG93IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2NhbGU9MSI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dAppbmRleCA3
Y2UxMGMwODk2Li40NDNhODIwZTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3Jv
bGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNj
cm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
c2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xs
LWJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IEVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
c2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50
cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKaW5kZXggM2E4OTA2NTMyYi4uM2YzZDliNzJkMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3Igd2l0aCBz
Y3JvbGxJbnRvVmlldyBmb3IgbmVzdGVkIHNjcm9sbGluZyBub2RlczwvdGl0bGU+CiA8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCmluZGV4IDAwNWQyYjYwNGQuLmVhYTBmZmYw
MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBd
IC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBl
bGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQi
IGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBX
YW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CmluZGV4IGI2ZmExYzJlYzguLjI3OTlmZGNjMjkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0z
LDM1ICszLDM1IEBAIFBBU1MgaWZyYW1lIGxvYWRlZAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlM
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAor
UEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3Ro
YW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
Ci1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBn
b3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3Vi
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3Vi
ZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmcgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAppbmRleCBlNjQxZTUzZTMz
Li5lOGNjYjY2YmU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVt
ZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1l
PC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dAppbmRleCBjYzY2NWViZGI4Li4wNWViMzI3MmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTMsMjcgKzMsMjcgQEAgUEFTUyBp
ZnJhbWUgbG9hZGVkCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJ
TCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xl
c3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3Ro
IHNjcm9sbGluZyAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9u
IHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKaW5kZXggZDkzMWUwMDNkNC4uOTI2ODRkNjc0ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURP
Q1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRp
dGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBh
bmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgogPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0NDk2
Y2YyZGNiLi4wNDFmMzZlYmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC03NDgsNiArNzQ4LDE1IEBAIHdlYmtpdC5vcmcvYi8xODk1OTQg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvcGVuZGlu
Zy1zCiAKIHdlYmtpdC5vcmcvYi8xODgwNzAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zdHJlYW1zL3BpcGluZy9lcnJvci1wcm9wYWdhdGlvbi1iYWNrd2FyZC5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KIAorIyBUZXN0cyBmb3Igc21vb3RoIHNjcm9sbCBiZWhhdmlvciBkbyBub3QgYWxs
IHdvcmsgYW5kIHRoZXkgYXJlIHNsb3csIHNvIGxldCdzIGp1c3Qgc2tpcCB0aGVtLgord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMTkxMzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBbIFNraXAgXQorCisjIFRo
aXMgaXMgZmFpbGluZyBvbiBtYWMtd2sxLCB0cnkgdG8gZmlndXJlIGl0IG91dCBpbiB0aGUgZm9s
bG93LXVwIGJ1Zy4KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS5odG1sIFsgU2tpcCBdCisKIHdlYmtp
dC5vcmcvYi8xODk5MDggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10
aW1pbmcvcmVzb3VyY2VfdGltaW5nLndvcmtlci5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5v
cmcvYi8xODk3NTYgWyBNb2phdmUrIF0gY29tcG9zaXRpbmcvZmlsdGVycy9vcGFjaXR5LWNoYW5n
ZS1vbi1maWx0ZXJlZC1wYWludHMtaW50by1hbmNlc3Rvci5odG1sIFsgUGFzcyBJbWFnZU9ubHlG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTIyMDY4NzMxYy4uMGU4MTRiYmMwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTk2NCw4ICs5NjQsMTAgQEAgc2V0KFdlYkNvcmVfTk9O
X1NWR19JRExfRklMRVMKICAgICBwYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsCiAgICAg
cGFnZS9SZXNpemVPYnNlcnZlckVudHJ5LmlkbAogICAgIHBhZ2UvU2NyZWVuLmlkbAorICAgIHBh
Z2UvU2Nyb2xsQmVoYXZpb3IuaWRsCiAgICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRs
CiAgICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsCisgICAgcGFnZS9TY3JvbGxPcHRp
b25zLmlkbAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAogICAgIHBhZ2UvU2hhcmVEYXRh
LmlkbAogICAgIHBhZ2UvVW5kb0l0ZW0uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmExNmI0NDBhZC4uYTQ4
MTFmYzgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0MCBAQAorMjAxOS0xMi0xMSAgQ2F0aGll
IENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBp
T1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBzdXBwb3J0IG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybS4g
SXQgcmVsaWVzIG9uIFVJU2Nyb2xsVmlldydzCisgICAgICAgIG5hdGl2ZSBzY3JvbGwgYW5pbWF0
aW9uIHN1cHBvcnQgYW5kIGlzIGV4ZWN1dGVkIGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAg
IFRlc3RzOiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxl
bWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbAorCisgICAg
ICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBSZXF1ZXN0cyBhIG5hdGl2ZSBzY3JvbGwgYW5p
bWF0aW9uIGJ5IGNhbGxpbmcgYW5pbWF0ZWQgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKCku
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUpOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIGlmIHRoaXMgaXMgYW4g
YW5pbWF0ZWQgc2Nyb2xsIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOiBVcGRhdGUgdGhlIHNj
cm9sbCBhbmltYXRpb24gc3RhdHVzIGZyb20gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZSk6IEFkZCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbiB0byBpbmRp
Y2F0ZSBpdCdzIGFuaW1hdGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpyZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gY29uc3QpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0RpZENoYW5nZSk6IFVwZGF0ZSB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9s
bCBvciBub3QuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgdGhlIHNj
cm9sbCBpcyBhbmltYXRlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8pOiBJZiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uIGlzIHRy
dWUsIHNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MsIGV2ZW4gaWYg
dGhlIHNjcm9sbCBwb3NpdGlvbiBkb2Vzbid0IGNoYW5nZS4KKyAgICAgICAgTWFpbnRhaW4gdGhl
IHN0YXR1cyBvZiBtX3N0b3BTY3JvbGxBbmltYXRpb24gYW5kIG1fcmVxdWVzdEFuaW1hdGVkU2Ny
b2xsLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJl
bnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQpOiBBbmltYXRlZCBzY3JvbGwgd29uJ3QgY2hhbmdlIHRo
ZSBzY3JvbGwgcG9zaXRpb24gaW1tZWRpYXRlbHksIHNvIGRvbid0IG5vdGlmeSB0aGUgc2Nyb2xs
aW5nIGluZm8gbm93LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OnNldFJlcXVlc3RBbmltYXRlZFNjcm9sbCk6IG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsIGlu
ZGljYXRlcyB0aGF0IHRoaXMgaXMgYW4gYW5pbWF0ZWQgc2Nyb2xsIHJlcXVlc3QuCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Ny
b2xsIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk6IE1haW50YWluIHRoZSBzY3Jv
bGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzIGNvbnN0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbik6IElmIHRoZSBOb2RlIGlzIHBlcmZvcm1pbmcgYSBzY3JvbGwg
YW5pbWF0aW9uLCB0aGUgcHJldmlvdXMgc2Nyb2xsIGFuaW1hdGlvbiBzaG91bGQgc3RvcCBmaXJz
dC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpuZWVkc1N0
b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxUeXBlcy5oOiBBZGQgU2Nyb2xsQmVoYXZpb3JUeXBlIHRvIGluZGljYXRlIGl0J3Mg
aW5zdGFudCBvciBzbW9vdGggc2Nyb2xsLgorICAgICAgICBBZGQgU2Nyb2xsQmVoYXZpb3JTdGF0
dXMgdG8gaW5kaWNhdGUgdGhlIHN0YXR1cyBvZiBzY3JvbGxpbmcuCisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbik6IFVwZGF0ZSBTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OlNjcm9sbGFibGVBcmVhKTogQWRkIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgY29uc3QpOiBNYWludGFpbiBjdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OnNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZz
ZXQpOiBTZW5kIGEgcXVlc3Qgb2YgbmF0aXZlIHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBSZXF1ZXN0cyBhIG5hdGl2
ZSBzY3JvbGwgYW5pbWF0aW9uIGJ5IGNhbGxpbmcgYW5pbWF0ZWQgcmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKCkuCisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVz
IG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgcHJvZ3JhbW1h
dGljIHNtb290aCBzY3JvbGxpbmcgaW4gV2ViS2l0IGZyb20gdGhlIENTU09NIFZpZXcKKyAgICAg
ICAgc3BlY2lmaWNhdGlvbiBbMV0uIFRvIHVzZSB0aGlzIGVmZmVjdCwgd2ViIGRldmVsb3BlcnMg
Y2FuIHBhc3MgYSBiZWhhdmlvciBwYXJhbWV0ZXIgKGF1dG8sCisgICAgICAgIHNtb290aCwgb3Ig
aW5zdGFudCkgdG8gRWxlbWVudC5zY3JvbGwsIEVsZW1lbnQuc2Nyb2xsVG8sIEVsZW1lbnQuc2Ny
b2xsQnksCisgICAgICAgIEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcsIFdpbmRvdy5zY3JvbGwsIFdp
bmRvdy5zY3JvbGxUbyBvciBXaW5kb3cuc2Nyb2xsQnkgWzJdLiBXaGVuIGJlaGF2aW9yCisgICAg
ICAgIGlzIGF1dG8sIHRoZSBpbnN0YW50L3Ntb290aCBjaGFyYWN0ZXJpc3RpYyBpcyBhY3R1YWxs
eSB0YWtlbiBmcm9tIHRoZSB2YWx1ZSBvZiBhIG5ldyBDU1MKKyAgICAgICAgc2Nyb2xsLWJlaGF2
aW9yIHByb3BlcnR5IFszXS4gQm90aCB0aGUgbmV3IENTUyBhbmQgRE9NIGJlaGF2aW9yIGFyZSBw
cm90ZWN0ZWQgYnkgYSBydW50aW1lCisgICAgICAgIGZsYWcuCisKKyAgICAgICAgWzFdIGh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3CisgICAgICAgIFsyXSBodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jZGljdGRlZi1zY3JvbGxvcHRpb25zCisgICAgICAgIFsz
XSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVo
YXZpb3IKKworICAgICAgICBUZXN0czogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbAorICAgICAgICAg
ICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXJvb3QuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbAor
ICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKKyAgICAgICAg
ICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c3ViZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cu
aHRtbAorICAgICAgICAqIFNvdXJjZXMudHh0OiBCdWlsZCBTY3JvbGxBbmltYXRpb25TbW9vdGgu
Y3BwIG9uIGFsbCBwbGF0Zm9ybXMuCisgICAgICAgICogU291cmNlc0dUSy50eHQ6IFJlbW92ZSBT
Y3JvbGxBbmltYXRpb25TbW9vdGguY3BwIHNpbmNlIGl0IGlzIGJ1aWx0IG9uIGFsbCBwbGF0Zm9y
bXMgbm93LgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbEludG9WaWV3KTogUGFzcyBzY3JvbGwgYmVoYXZpb3IsIGlmIGFueS4KKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbFRvKTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlz
IHNtb290aC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNjcm9sbExlZnQpOiBIYW5k
bGUgdGhlIGNhc2Ugd2hlbiBzY3JvbGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6c2V0U2Nyb2xsVG9wKTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xs
IGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9sbEJ5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2Nyb2xsVG8gY29uc3QpOiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiBzY3Jv
bGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICBUaGUgb3B0aW1pemF0aW9uIG9mIGNhbmNl
bCAoMCwgMCkgc2Nyb2xsaW5nIGlzIHNraXBwZWQgaWYgYW4gYW5pbWF0ZWQgc2Nyb2xsIGlzIGlu
IHByb2dyZXNzLgorICAgICAgICBPdGhlcndpc2UsIHRoZSBwcmV2aW91cyBzY3JvbGwgd29uJ3Qg
YmUgc3RvcHBlZCBieSBhIGZvbGxvdy11cCBzY3JvbGwuCisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bik6IFN0YXJ0IGFuIGFuaW1hdGVkIHNjcm9sbC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbjo6c2Nyb2xsKTogRnVuY3Rpb24g
dG8gYW5pbWF0ZSBzY3JvbGxpbmcgdG8gYSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICAgICog
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcDogQnVpbGQgdGhpcyBmaWxlIG9uIGFs
bCBwbGF0Zm9ybXMuIEFkZCBhCisgICAgICAgIHNtb290aEZhY3RvckZvclByb2dyYW1tYXRpY1Nj
cm9sbCBwYXJhbWV0ZXIgdG8gc2xvdyBkb3duIHRoZSBzbW9vdGggc2Nyb2xsaW5nLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVQZXJBeGlzRGF0YSk6IFNjYWxlIHRo
ZSB0aW1lIHBhcmFtZXRlcnMgb2YgdGhlCisgICAgICAgIGFuaW1hdGlvbiBzbyB0aGF0IGl0IGxv
b2tzIHNtb290aGVyLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5o
OiBEZWNsYXJlIHRoZSBjbGFzcyBvbiBhbGwgcGxhdGZvcm1zLgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpT
Y3JvbGxBbmltYXRvcik6IEluaXRpYWxpemUgYW5pbWF0aW9uIG1lbWJlciBmb3IgcHJvZ3JhbW1h
dGljIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxU
b09mZnNldCk6IEFuaW1hdGUgc2Nyb2xsaW5nIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucyk6IENvcHkg
bG9naWMgZnJvbSBTY3JvbGxBbmltYXRpb25TbW9vdGguY3BwLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VTY3JvbGxBbmltYXRpb25zKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFkZEhvcml6b250
YWxTY3JvbGxiYXIpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
OiBOZXcgYW5pbWF0aW9uIG1lbWJlciBmb3Igc21vb3RoIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OmNhbmNl
bEFuaW1hdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6
OlNjcm9sbEFuaW1hdG9yOjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OndpbGxFbmRMaXZl
UmVzaXplKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3Jv
bGxBbmltYXRvcjo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFs
U2Nyb2xsYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oOiBB
ZGQgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgdG8gaW5kaWNhdGUgdGhlIHN0YXR1cyBvZiBzY3JvbGxp
bmcuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6IEZvbGxvdyB0aGUgQ1NTT00gVmlldyBz
cGVjOiBJZiBhIHNjcm9sbCBpcyBpbgorICAgICAgICBwcm9ncmVzcywgd2UgaW50ZXJydXB0IGl0
IGFuZCBjb250aW51ZSB0aGUgc2Nyb2xsIGNhbGwgKGV2ZW4gd2hlbiB3ZSBhcmUgYXQgdGhlIGZp
bmFsIHBvc2l0aW9uKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFscyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUFuaW1hdGlvbik6
IFRvIGF2b2lkIGl0ZXJhdGUgY2FsbGluZywKKyAgICAgICAgbW92ZSB0aGUgcmVxdWVzdFNjcm9s
bFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uKSBjaGVja2luZyBvdXQgb2Ygc2V0U2Nyb2xsT2Zmc2V0
RnJvbUFuaW1hdGlvbigpLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6Y3VycmVudFNjcm9sbEJlaGF2aW9yU3Rh
dHVzIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvckdlbmVyaWM6OnVwZGF0ZVBvc2l0aW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2VsQW5pbWF0aW9ucyk6IENhbGwgcGFyZW50IG1l
bWJlciB0byBoYW5kbGUgcHJvZ3JhbW1hdGljIHNjcm9sbGluZy4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xs
TGVmdCk6IEFkZCBmbGFnIHRvIGluZGljYXRlIGFuaW1hdGVkIG9yIG5vdC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xsVG9wKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb1hQb3NpdGlvbik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQpOiBGb2xsb3cgdGhlIENTU09NIFZp
ZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGludGVycnVw
dCBpdCBhbmQgY29udGludWUgdGhlIHNjcm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJlIGF0IHRo
ZSBmaW5hbAorICAgICAgICBwb3NpdGlvbikuIEl0J3MgU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0
YW50IHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZXF1ZXN0U2Nyb2xs
UG9zaXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
T2Zmc2V0V2l0aEFuaW1hdGlvbik6IERpdHRvLiBUaGlzIGlzIHNpbWlsYXIgdG8gc2Nyb2xsVG9P
ZmZzZXQKKyAgICAgICAgYnV0IGFuaW1hdGVzIHRoZSBzY3JvbGwuIEl0J3MgU2Nyb2xsQmVoYXZp
b3JUeXBlOjpTbW9vdGggc2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNj
cm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNp
YmxlKTogQWdhaW4gZG9uJ3QgZG8gYW4gZWFybHkgcmV0dXJuIGlmIHNjcm9sbCBpcyBpbgorICAg
ICAgICBwcm9ncmVzcy4gV2UgY2FsbCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24gaW5zdGVh
ZCBvZiBzY3JvbGxUb09mZnNldCB3aGVuIGFwcHJvcHJpYXRlLgorICAgICAgICBOb3RlIHRoYXQg
dGhpcyBmdW5jdGlvbiBtYXkgbm90IHdvcmsgd2VsbCBmb3Igc2V2ZXJhbCBuZXN0ZWQgc2Nyb2xs
IGJveGVzIHdpdGggYXQgbGVhc3Qgb25lCisgICAgICAgIGVsZW1lbnQgd2l0aCBzbW9vdGggYmVo
YXZpb3IuIEl0IHdpbGwgaGFuZGxlZCBpbiBidWcgRm9sbG93LgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5oOiBBZGQgc2Nyb2xsIGJlaGF2aW9yIHRvIFNjcm9sbFRlY3RUb1Zpc2li
bGVPcHRpb25zLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldFNjcm9sbExlZnQpOiBBZGQgYW5pbWF0ZWQg
ZmxhZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldFNjcm9sbFRvcCk6IERp
dHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbExlZnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3ApOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVu
Y29uc3RyYWluZWRTY3JvbGxUbyk6CisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGll
Y2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZp
b3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAg
ICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHBhcnNpbmcgc2Nyb2xsLWJlaGF2aW9yIGNzcyBwcm9wZXJ0eSBhbmQgU2Ny
b2xsT3B0aW9ucy4KKworICAgICAgICBUZXN0czogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIElETCBmaWxlcyBmb3IgU2Nyb2xsT3B0aW9ucyBhbmQg
U2Nyb2xsQmVoYXZpb3IuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOiBBZGQgaGVhZGVycyBmb3IgU2Nyb2xsQmVoYXZvciBhbmQgU2Nyb2xs
T3B0aW9ucy4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkIFNjcm9sbEJlaGF2b3IgYW5kIFNj
cm9sbE9wdGlvbnMgaW1wbGVtZW50YXRpb24uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBBZGQgZmlsZXMgdG8gdGhlIGJ1aWxkIHN5c3RlbS4KKyAgICAgICAg
KiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDogSGFuZGxlIHNjcm9sbC1iZWhh
dmlvci4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9y
UHJvcGVydHlJblN0eWxlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydGllcy5qc29uOiBBZGQg
c2Nyb2xsLWJlaGF2aW9yLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOiBBZGQg
a2V5d29yZHMgZm9yIHNjcm9sbC1iZWhhdmlvci4KKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Bh
cnNlckNvbnRleHQuY3BwOiBBZGQgcnVudGltZSBjb25maWcgZm9yIHNjcm9sbC1iZWhhdmlvci4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0Lmg6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyQ29udGV4
dEhhc2g6Omhhc2gpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNw
cDogUmVtb3ZlIHNjcm9sbC1iZWhhdmlvciB0ZW1wbGF0ZXMuIEl0IGlzIGhhbmRsZWQgaW4gdGhl
IHNsb3cgcGF0aCBzaW5jZSBwcm9wZXJ0eSBjYW4gYmUgZGlzYWJsZWQuCisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5
SUQpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3VtZVNjcm9sbEJlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKTogUGFyc2Ugc2Nyb2xsLWJlaGF2aW9y
IChvbmx5IGlmIGVuYWJsZWQpLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnVzZVNtb290aFNjcm9sbGluZyk6IEhlbHBlciBmdW5j
aXRvbiB0byBkZXRlcm1pbmUgdGhlIHNjcm9sbCBiZWhhdmlvciB0byBhcHBseSB0byBhbiBlbGVt
ZW50IGZyb20gdGhlIENTUyBhbmQgRE9NIGJlaGF2aW9yLgorICAgICAgICAqIHBhZ2UvU2Nyb2xs
QmVoYXZpb3IuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxCZWhhdmlvci5pZGw6IEFk
ZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmg6IE1ha2UgdGhpcyBj
bGFzcyBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbi4gQWxzbyByZW1vdmUgdW5uZWNlc3Nhcnkg
Zm9yd2FyZCBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEludG9WaWV3T3B0aW9u
cy5pZGw6IE1ha2UgdGhpcyBjbGFzcyBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbi4KKyAgICAg
ICAgKiBwYWdlL1Njcm9sbE9wdGlvbnMuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxP
cHRpb25zLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxUb09wdGlvbnMuaDogTWFr
ZSB0aGlzIHN0cnVjdCBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbnMuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxUb09wdGlvbnM6OlNjcm9sbFRvT3B0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
Ojpub3JtYWxpemVOb25GaW5pdGVDb29yZGluYXRlc09yRmFsbEJhY2tUbyk6IENvcHkgdGhlIGN1
cnJlbnQgU2Nyb2xsVG9PcHRpb25zIHNvIHRoYXQgdGhlIHNjcm9sbCBiZWhhdmlvciBpcyBwcmVz
ZXJ2ZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xh
c3MgaW5oZXJpdCBmcm9tIFNjcm9sbE9wdGlvbnMuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55
YW1sOiBOZXcgc2V0dGluZyBmb3IgQ1NTT00gVmlldyBzbW9vdGggc2Nyb2xsaW5nLgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOiBIYW5kbGUgJ3Ntb290aCBzY3JvbGxp
bmcnIGJvb2xlYW4gZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjp1c2VTbW9v
dGhTY3JvbGxpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFVz
ZVNtb290aFNjcm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5pdGlh
bFVzZVNtb290aFNjcm9sbGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAq
IHN0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTbW9vdGhTY3JvbGxpbmcpOgorCiAyMDE5LTEyLTEw
ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXhlZCBQ
YXR0ZXJuLmggY29tcGlsZSBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
MGJmYWJlY2E0My4uZTk3MTRjODVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC05MTUsOCArOTE1LDEwIEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3Bh
Z2UvUmVzaXplT2JzZXJ2ZXJDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9SZXNp
emVPYnNlcnZlckVudHJ5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1NjcmVlbi5pZGwgXAor
ICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxCZWhhdmlvci5pZGwgXAogICAgICQoV2ViQ29yZSkv
cGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbE9wdGlv
bnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9wYWdlL1NoYXJlRGF0YS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9VbmRv
SXRlbS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZWU4OWVlM2YwYy4uMmYxNzcyNjBmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCkBAIC04MTYsOCArODE2LDEwIEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1JlbW90ZUZyYW1lLmgKICAgICBwYWdlL1Jl
bmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCiAgICAgcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgKKyAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmgKICAgICBwYWdlL1Njcm9sbEludG9WaWV3T3B0
aW9ucy5oCiAgICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaAorICAgIHBhZ2UvU2Nyb2xs
T3B0aW9ucy5oCiAgICAgcGFnZS9TY3JvbGxUb09wdGlvbnMuaAogICAgIHBhZ2UvU2VjdXJpdHlP
cmlnaW4uaAogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
YmNhNzNjZjllNy4uM2U2ODA0NGYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE2NDcsNiArMTY0Nyw3
IEBAIHBhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwCiBwYWdlL1Jlc291cmNlVXNhZ2VUaHJl
YWQuY3BwCiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCiBwYWdlL1NjcmVlbi5jcHAK
K3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAogcGFnZS9T
ZWN1cml0eU9yaWdpbkRhdGEuY3BwCiBwYWdlL1NlY3VyaXR5UG9saWN5LmNwcApAQCAtMTc1Miw2
ICsxNzUzLDcgQEAgcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAogcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAogcGxhdGZvcm0vU1NMS2V5R2VuZXJhdG9yLmNw
cAogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCitwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguY3BwCiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAogcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC0zMzc2LDggKzMzNzgsMTAgQEAgSlNT
Vkdab29tQW5kUGFuLmNwcAogSlNTVkdab29tRXZlbnQuY3BwCiBKU1NjcmVlbi5jcHAKIEpTU2Ny
aXB0UHJvY2Vzc29yTm9kZS5jcHAKK0pTU2Nyb2xsQmVoYXZpb3IuY3BwCiBKU1Njcm9sbEludG9W
aWV3T3B0aW9ucy5jcHAKIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcAorSlNTY3JvbGxPcHRp
b25zLmNwcAogSlNTY3JvbGxUb09wdGlvbnMuY3BwCiBKU1NlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQuY3BwCiBKU1NlcnZpY2VXb3JrZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CmluZGV4IGMy
YzI3MDliODcuLjU0YjUzNmVkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNH
VEsudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CkBAIC02Myw3ICs2Myw2
IEBAIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuY3BwCiBw
YWdlL3Njcm9sbGluZy9nZW5lcmljL1Njcm9sbGluZ1RocmVhZEdlbmVyaWMuY3BwCiAKIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuY3BwCi1wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguY3BwCiBwbGF0Zm9ybS9Vc2VyQWdlbnRRdWlya3MuY3BwCiAKIHBsYXRmb3JtL2dlbmVy
aWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAzZTZmNTQzM2IuLmJjOTk3MDZlODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTIzOTcsNiArMjM5Nyw4IEBACiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAvKiBW
aXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFFOEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5n
ZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNUVCMCAvKiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDEx
REE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IH07CiAJCTgz
NDQ3NkVGMURBNUJDNUUwMDJCNUVDMSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1QTUx
RTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi87IH07CisJCTgzNDQ3NkVG
MURBNUJDNUUwMDJCNkVCMCAvKiBKU1Njcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyog
SlNTY3JvbGxCZWhhdmlvci5oICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQzEgLyog
SlNTY3JvbGxPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmggKi87
IH07CiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1
QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi87IH07CiAJCTgzNDhCRkFDMUI4
NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDhCRkFBMUI4NTcyOTUwMDkxMkYzNiAvKiBDbGFz
c0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODM0REZBRDAxRjdEQUU1RDAwQzI3MjVCIC8qIFNoYXJl
ZFN0cmluZ0hhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNERGQUNDMUY3REFFNTYwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI0NTEsNiArMjQ1
Myw4IEBACiAJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9uQnViYmxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0M0NUI4RDFE
QzJCNjdDMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzQzU3OTVEMURBNUMzMDEwMDZGOUM4NiAv
KiBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dpY2Fs
UG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFE
QTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZB
Qzg2IC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4M0M1
Nzk1RDFEQTVDMzAxMDA2RkFDOTcgLyogU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDQTggLyogU2Nyb2xsVG9PcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFE
QTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNEMzVBRUMxQzcxODdGQTAwRjcwRDVBIC8q
IFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUVBMUM3MTg3RUQwMEY3MEQ1QSAvKiBYTUxIdHRwUmVx
dWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDM1QUYyMUM3MThEOTAwMEY3MEQ1QSAvKiBK
U1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBKU1hNTEh0dHBS
ZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKQEAgLTEwMTY3LDkgKzEwMTcxLDE0IEBACiAJCTgz
NERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFN0cmluZ0hhc2guY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xs
TG9naWNhbFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bExvZ2ljYWxQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNF
NzFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVo
YXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQmVoYXZpb3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM0
IC8qIFNjcm9sbEJlaGF2aW9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2Nyb2xsQmVoYXZpb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNF
NzFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsVG9PcHRpb25zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dp
Y2FsUG9zaXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbExvZ2ljYWxQb3Np
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIw
MDM1NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNjcm9sbEludG9WaWV3T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU2Nyb2xsQmVoYXZpb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2Nyb2xsT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlv
bnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbFRvT3B0aW9ucy5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTIwQzdEMUE3MUJGQ0MwMDZCRDJBQSAvKiBDU1NG
b250RmFtaWx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZvbnRGYW1p
bHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1NjU3QzYxRUNBQjBFODAwQ0RF
NzJEIC8qIEpTRE9NTWF0cml4SW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0RPTU1hdHJpeEluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTAyOTEsOSArMTAzMDAsMTMgQEAKIAkJODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5h
dGl2ZU5vZGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZl
Tm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMDFEQTVB
NTFFMDBGRkQ4RDQgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkQ4RTUgLyogSlNT
Y3JvbGxJbnRvVmlld09wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1Njcm9sbE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
M0U5QjMwMDFEQTVBNTFFMDBGRkU4RjYgLyogSlNTY3JvbGxUb09wdGlvbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxUb09wdGlvbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkQ4RDQgLyogSlNT
Y3JvbGxMb2dpY2FsUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODNFOUIzMDExREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThENCAv
KiBKU1Njcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
U2Nyb2xsQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDEx
REE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1Njcm9sbE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsVG9PcHRpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1OThCMUY1MDk1OEIwMDNFOEIzMCAvKiBKU0Vy
cm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFcnJvckNh
bGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1OThDMUY1MDk1OEIw
MDNFOEIzMCAvKiBKU0Vycm9yQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNFcnJvckNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIwNzY4LDEwICsyMDc4MSwxNSBAQAogCQkJCUJDRUMwMUJBMEMyNzREQUMwMDlGNEVD
OSAvKiBTY3JlZW4uY3BwICovLAogCQkJCUJDRUMwMUJCMEMyNzREQUMwMDlGNEVDOSAvKiBTY3Jl
ZW4uaCAqLywKIAkJCQlCQ0VDMDFCQzBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmlkbCAqLywK
KwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MzQgLyogU2Nyb2xsQmVoYXZpb3IuY3BwICovLAor
CQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5oICovLAorCQkJ
CTgzNTBDM0U4MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5pZGwgKi8sCiAJCQkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3T3B0aW9ucy5oICovLAog
CQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRs
ICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dpY2FsUG9zaXRp
b24uaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBv
c2l0aW9uLmlkbCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0
aW9ucy5oICovLAorCQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25z
LmlkbCAqLywKIAkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25z
LmggKi8sCiAJCQkJODM1MEMzRTgxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5p
ZGwgKi8sCiAJCQkJQkNEMEUwRjcwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmNw
cCAqLywKQEAgLTI1NTYzLDEwICsyNTU4MSwxNCBAQAogCQkJCTU4QjJGQTAyMjIzMkQ2MEEwMDkz
OEQ2MyAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnkuaCAqLywKIAkJCQlCQ0VDMDFDMDBDMjc0RERE
MDA5RjRFQzkgLyogSlNTY3JlZW4uY3BwICovLAogCQkJCUJDRUMwMUMxMEMyNzREREQwMDlGNEVD
OSAvKiBKU1NjcmVlbi5oICovLAorCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThENCAvKiBKU1Nj
cm9sbEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyogSlNT
Y3JvbGxCZWhhdmlvci5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Nj
cm9sbEludG9WaWV3T3B0aW9ucy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEU1
IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8sCiAJCQkJODNFOUIzMDAxREE1QTUxRTAw
RkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcCAqLywKIAkJCQk4M0U5QjMwMTFE
QTVBNTFFMDBGRkQ4RDQgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCAqLywKKwkJCQk4M0U5
QjMwMDFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmNwcCAqLywKKwkJCQk4M0U5
QjMwMTFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmggKi8sCiAJCQkJODNFOUIz
MDAxREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmNwcCAqLywKIAkJCQk4M0U5
QjMwMTFEQTVBNTFFMDBGRkU4RjYgLyogSlNTY3JvbGxUb09wdGlvbnMuaCAqLywKIAkJCQk3Qzcz
RkIwRjE5MUVGNkY0MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXIuY3BwICovLApAQCAt
MzA5MTIsOCArMzA5MzQsMTAgQEAKIAkJCQk1RTJDNDM2QzFCQ0YwNzFFMDAwMUUyQkMgLyogSlNS
VENUcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFDMzBDMjc0REREMDA5RjRF
QzkgLyogSlNTY3JlZW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUNFMTJCMDNGNjEwMDNB
NTgzQSAvKiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzNDQ3
NkVGMURBNUJDNUUwMDJCNkVCMCAvKiBKU1Njcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQzEgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNUVCMCAvKiBKU1Njcm9s
bExvZ2ljYWxQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJODM0NDc2RUYxREE1QkM1RTAw
MkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUQyIC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRUQwNkFEMTFDNzc3NTQ4MDBGREZBRjEgLyogSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTgyQzI1NjFGMzE0M0NEMDA1OUJBN0MgLyogSlNT
ZXJ2aWNlV29ya2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTE3LDYgKzMyMTQxLDcgQEAKIAkJ
CQk0NEM5OTE4NjBGM0QxRUJFMDA1ODY2NzAgLyogU2Nyb2xsYmFyVGhlbWVJT1MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDOEI4NTNFMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3JvbGxiYXJUaGVtZU1h
Yy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNzE0MDYxNDIxNzBCODAwREIzM0JBIC8qIFNjcm9s
bGJhclRoZW1lTW9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZB
Qzg2IC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE4NEYwNTE0M0JB
N0JEMDA1MUQxNTMgLyogU2Nyb2xsQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2
MDVBRUQxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUY2MkVFODE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzIxNTMsNiArMzIxNzgsNyBAQAogCQkJCTgzQzU3OTVE
MURBNUMzMDEwMDZGOUM5NyAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdBQUZFOEQwMTlDQjg2NzIwMDBGNTZEOCAvKiBTY3JvbGxMYXRjaGluZ1N0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFD
OTcgLyogU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ3ODc1NTQxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNDY3MjkyODFFMERFNjg1MDBBQ0MzRDggLyogU2Nyb2xsU25hcE9mZnNldHNJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDQTggLyogU2Nyb2xsVG9PcHRp
b25zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMWM0ZTM2ZjE0OS4uZDRhYmYyM2I3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKQEAgLTMzOTMsNiArMzM5MywxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVF
eHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAg
ICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlQXV0byk7CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZVRvdWNoKTsKICNlbmRpZgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
U2Nyb2xsQmVoYXZpb3I6CisgICAgICAgICAgICBpZiAoIXN0eWxlLnVzZVNtb290aFNjcm9sbGlu
ZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmll
clZhbHVlKENTU1ZhbHVlQXV0byk7CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVNtb290aCk7CiAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlQZXJzcGVjdGl2ZToKICAgICAgICAgICAgIGlmICghc3R5bGUuaGFzUGVyc3BlY3RpdmUo
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZU5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KaW5k
ZXggNDE1NzhhOTRlZC4uZjk4MmQzZjVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGll
cy5qc29uCkBAIC0zNTU3LDYgKzM1NTcsMTYgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0
dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcvc2hhcGVzLmh0bWwiCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0sCisgICAgICAgICJzY3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAgICAidmFsdWVz
IjogWworICAgICAgICAgICAgICAgICJhdXRvIiwKKyAgICAgICAgICAgICAgICAic21vb3RoIgor
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAg
ICAgICAgICJjYXRlZ29yeSI6ICJjc3NvbS12aWV3IiwKKyAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInNoYXBlLXJlbmRlcmlu
ZyI6IHsKICAgICAgICAgICAgICJpbmhlcml0ZWQiOiB0cnVlLAogICAgICAgICAgICAgInZhbHVl
cyI6IFsKQEAgLTY0ODksNiArNjQ5OSwyMiBAQAogICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0
cHM6Ly93d3cudzMub3JnL1RSL2Nzcy11aS00LyNwcm9wZGVmLXVzZXItc2VsZWN0IgogICAgICAg
ICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Nyb2xsLWJlaGF2aW9yIjogeworICAgICAg
ICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiYXV0byIsCisgICAgICAgICAgICAg
ICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0
aWVzIjogeworICAgICAgICAgICAgICAgICJjb252ZXJ0ZXIiOiAiU21vb3RoU2Nyb2xsaW5nIiwK
KyAgICAgICAgICAgICAgICAibmFtZS1mb3ItbWV0aG9kcyI6ICJVc2VTbW9vdGhTY3JvbGxpbmci
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAgICAgICAgICAgICAg
ICAic3RhdHVzIjogImV4cGVyaW1lbnRhbCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAi
c3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInNjcm9sbC1wYWRkaW5nIjogewogICAgICAgICAg
ICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAiZW5hYmxlLWlmIjog
IkVOQUJMRV9DU1NfU0NST0xMX1NOQVAiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgppbmRleCA4ZGZlM2FiYjIxLi5kYTgyNjllNjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTM4OCw2ICsxMzg4LDEwIEBAIHBhbi15CiBwaW5jaC16b29t
CiAjZW5kaWYKIAorLy8gc2Nyb2xsLWJlaGF2aW9yCisvLyBhdXRvCitzbW9vdGgKKwogLy8gaGFu
Z2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKaW5kZXggNzUzNzE4OGNiOS4uNzFmOWFhNjJj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3Bw
CkBAIC03NSw2ICs3NSw3IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoY29u
c3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAgICAgYXR0YWNobWVu
dEVuYWJsZWQgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmF0dGFj
aG1lbnRFbGVtZW50RW5hYmxlZCgpOwogI2VuZGlmCiAgICAgZGVmZXJyZWRDU1NQYXJzZXJFbmFi
bGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQoKTsKKyAg
ICBzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLkNTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWQoKTsKICAgICB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gZG9jdW1l
bnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxz
ZTsKIH0KIApAQCAtOTksNiArMTAwLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuYXR0
YWNobWVudEVuYWJsZWQgPT0gYi5hdHRhY2htZW50RW5hYmxlZAogI2VuZGlmCiAgICAgICAgICYm
IGEuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVk
CisgICAgICAgICYmIGEuc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIuc2Nyb2xsQmVoYXZpb3JF
bmFibGVkCiAgICAgICAgICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0Rv
Y3VtZW50U2VjdXJpdHlPcmlnaW4KICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09
IGIudXNlU3lzdGVtQXBwZWFyYW5jZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJDb250ZXh0LmgKaW5kZXggODY1MjVmZDcwYy4uYzc0ZGM5NGMyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTY1LDYgKzY1LDcg
QEAgcHVibGljOgogICAgIGJvb2wgYXR0YWNobWVudEVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlm
CiAgICAgYm9vbCBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wg
c2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAgICAvLyBUaGlzIGlzIG9u
bHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgogICAgIGJvb2wgaGFzRG9j
dW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMTYsNyArMTE3LDggQEAgc3RydWN0
IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
ICAgICAgICAgICAgJiBrZXkuYXR0YWNobWVudEVuYWJsZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgPDwgMTEKICNlbmRpZgotICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPDwgMTI7IC8vIEtlZXAgdGhpcyBsYXN0LgorICAgICAgICAg
ICAgJiBrZXkuc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICAgICAgPDwgMTIK
KyAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDw8IDEzOyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAgICAgaGFzaCBePSBXVEY6OmludEhh
c2goYml0cyk7CiAgICAgICAgIHJldHVybiBoYXNoOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRleCAzMWQxMmFiOWFiLi40
MjEyODg5ZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckZhc3RQYXRocy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJG
YXN0UGF0aHMuY3BwCkBAIC02MzYsMTAgKzYzNiw2IEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBhdGhz
Ojppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlk
CiAgICAgICAgICAgICB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3RpY2t5IHx8IHZhbHVlSUQgPT0g
Q1NTVmFsdWVXZWJraXRTdGlja3k7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJlc2l6ZTogLy8gbm9u
ZSB8IGJvdGggfCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBhdXRvCiAgICAgICAgIHJldHVybiB2
YWx1ZUlEID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQm90aCB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlSG9yaXpvbnRhbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVmVydGljYWwg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG87Ci0gICAgLy8gRklYTUUtTkVXUEFSU0VSOiBJbnZl
c3RpZ2F0ZSB0aGlzIHByb3BlcnR5LgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhh
dmlvcjogLy8gYXV0byB8IHNtb290aAotICAgIC8vICAgICBBU1NFUlQoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6Y3Nzb21TbW9vdGhTY3JvbGxFbmFibGVkKCkpOwotICAgIC8vICAgcmV0dXJuIHZh
bHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTbW9vdGg7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVNoYXBlUmVuZGVyaW5nOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9
PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU9wdGltaXplU3BlZWQgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZUNyaXNwZWRnZXMgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUdlb21ldHJp
Y1ByZWNpc2lvbjsKICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlTGluZWpvaW46CkBAIC05Mzks
NyArOTM1LDYgQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5SUQo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlGb250S2Vy
bmluZzoKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5SHlwaGVuczoKICAgICAvLyBjYXNlIENTU1By
b3BlcnR5T3ZlcmZsb3dBbmNob3I6Ci0gICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2
aW9yOgogICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxTbmFwVHlwZToKICAgICAvLyBjYXNl
IENTU1Byb3BlcnR5VGV4dEFsaWduTGFzdDoKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5VGV4dENv
bWJpbmVVcHJpZ2h0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcAppbmRleCBlYmQwZWFmNWY2Li42M2Y1YWI1MmY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjMyNyw2ICsyMzI3
LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBjb25zdW1lU2Nyb2xsU25hcFR5cGUo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAKICNlbmRpZgogCitzdGF0aWMgUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0gcmFuZ2UucGVlaygpLmlkKCk7CisgICAg
aWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVTbW9vdGgp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2Up
OworfQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVyUmFkaXVzQ29ybmVy
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUp
CiB7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEgPSBjb25zdW1l
TGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRp
dmUpOwpAQCAtMzkyNyw2ICszOTM1LDEwIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQ
YXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVNjcm9sbFNuYXBUeXBlOgogICAgICAgICByZXR1cm4gY29uc3VtZVNj
cm9sbFNuYXBUeXBlKG1fcmFuZ2UpOwogI2VuZGlmCisgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9s
bEJlaGF2aW9yOgorICAgICAgICBpZiAoIW1fY29udGV4dC5zY3JvbGxCZWhhdmlvckVuYWJsZWQp
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3Jv
bGxCZWhhdmlvcihtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDoKICAgICAgICAg
cmV0dXJuIGNvbnN1bWVDbGlwKG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKICNpZiBFTkFCTEUo
UE9JTlRFUl9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNzBkOWUxYjBhZS4uYmU1
YTg1MjZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODMyLDcgKzgzMiw2IEBAIHZvaWQg
RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoT3B0aW9uYWw8VmFyaWFudDxib29sLCBTY3JvbGxJbnRv
Vmlld09wdGlvbnM+PiYmIGFyCiAgICAgYm9vbCBpbnNpZGVGaXhlZDsKICAgICBMYXlvdXRSZWN0
IGFic29sdXRlQm91bmRzID0gcmVuZGVyZXIoKS0+YWJzb2x1dGVBbmNob3JSZWN0KCZpbnNpZGVG
aXhlZCk7CiAKLSAgICAvLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQzKTogU3VwcG9ydCBTY3Jv
bGxCZWhhdmlvci4KICAgICBTY3JvbGxJbnRvVmlld09wdGlvbnMgb3B0aW9uczsKICAgICBpZiAo
YXJnKSB7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBhcmcudmFsdWUoKTsKQEAgLTg1MSw3ICs4NTAs
OCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwg
U2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgogICAgICAgICBTZWxlY3Rpb25SZXZlYWxNb2Rl
OjpSZXZlYWwsCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFsaWduWCA6IGFsaWduWSwKICAgICAg
ICAgaXNIb3Jpem9udGFsID8gYWxpZ25ZIDogYWxpZ25YLAotICAgICAgICBTaG91bGRBbGxvd0Ny
b3NzT3JpZ2luU2Nyb2xsaW5nOjpObworICAgICAgICBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Ny
b2xsaW5nOjpObywKKyAgICAgICAgb3B0aW9ucy5iZWhhdmlvci52YWx1ZU9yKFNjcm9sbEJlaGF2
aW9yOjpBdXRvKQogICAgIH07CiAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShh
YnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIHZpc2libGVPcHRpb25zKTsKIH0KQEAgLTkxMiw3
ICs5MTIsNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYg
b3B0aW9ucykKIAogdm9pZCBFbGVtZW50OjpzY3JvbGxCeShkb3VibGUgeCwgZG91YmxlIHkpCiB7
Ci0gICAgc2Nyb2xsQnkoeyB4LCB5IH0pOworICAgIHNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9ucyh4
LCB5KSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25z
JiBvcHRpb25zLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKQEAgLTk0OCwxMyArOTQ4LDE3IEBA
IHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBT
Y3JvbGxDbGFtcGluZyBjbGFtcGluZykKICAgICAgICAgYWRqdXN0Rm9yQWJzb2x1dGVab29tKHJl
bmRlcmVyLT5zY3JvbGxMZWZ0KCksICpyZW5kZXJlciksCiAgICAgICAgIGFkanVzdEZvckFic29s
dXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsVG9wKCksICpyZW5kZXJlcikKICAgICApOwotICAgIHJl
bmRlcmVyLT5zZXRTY3JvbGxMZWZ0KGNsYW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy5sZWZ0
LnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKLSAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKGNs
YW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgY2xhbXBpbmcp
OworICAgIEludFBvaW50IHNjcm9sbFBvc2l0aW9uKAorICAgICAgICBjbGFtcFRvSW50ZWdlcihz
Y3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZl
Wm9vbSgpKSwKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLnRvcC52YWx1
ZSgpICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKQorICAgICk7CisgICAgYm9v
bCBhbmltYXRlZCA9IHVzZVNtb290aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3Iu
dmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0byksICp0aGlzKTsKKyAgICByZW5kZXJlci0+c2V0
U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
YW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxUbyhkb3VibGUg
eCwgZG91YmxlIHkpCiB7Ci0gICAgc2Nyb2xsVG8oeyB4LCB5IH0pOworICAgIHNjcm9sbFRvKFNj
cm9sbFRvT3B0aW9ucyh4LCB5KSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsQnlVbml0cyhp
bnQgdW5pdHMsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMTI4OCwxMyArMTI5
MiwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQpCiAgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlm
IChkb2N1bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKLSAgICAgICAgICAg
IGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGlu
dD4obmV3TGVmdCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVG
YWN0b3IoKSksIGZyYW1lLT52aWV3KCktPnNjcm9sbFkoKSkpOworICAgICAgICBpZiAoYXV0byog
ZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAg
ICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1MDU5CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gZG9jdW1lbnQoKS5kb2N1bWVudEVs
ZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICpkb2N1
bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnNl
dFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4obmV3TGVmdCAqIGZyYW1l
LT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSksIGZyYW1lLT52
aWV3KCktPnNjcm9sbFkoKSksIGFuaW1hdGVkKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcmVuZGVyQm94KCkpIHsKLSAgICAg
ICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoc3RhdGljX2Nhc3Q8aW50PihuZXdMZWZ0ICogcmVu
ZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGlj
KTsKKyAgICAgICAgaW50IGNsYW1wZWRMZWZ0ID0gY2xhbXBUb0ludGVnZXIobmV3TGVmdCAqIHJl
bmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGJvb2wgYW5pbWF0ZWQg
PSB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICp0aGlzKTsKKyAgICAg
ICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoY2xhbXBlZExlZnQsIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYywgYW5pbWF0ZWQpOwogICAgICAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBy
ZW5kZXJlci0+bGF5ZXIoKSkKICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxT
aG91bGRDbGVhckxhdGNoZWRTdGF0ZSh0cnVlKTsKICAgICB9CkBAIC0xMzA1LDEzICsxMzE1LDE5
IEBAIHZvaWQgRWxlbWVudDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3ApCiAgICAgZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlmIChkb2N1
bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKLSAgICAgICAgICAgIGZyYW1l
LT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZyYW1lLT52aWV3KCktPnNjcm9s
bFgoKSwgc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAq
IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKSk7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9
IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkgeworICAgICAgICAgICAgLy8gRklYTUU6
IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgpPworICAgICAgICAg
ICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkK
KyAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgp
ICYmIHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvcjo6QXV0bywgKmRvY3VtZW50KCku
ZG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xs
UG9zaXRpb24oSW50UG9pbnQoZnJhbWUtPnZpZXcoKS0+c2Nyb2xsWCgpLCBzdGF0aWNfY2FzdDxp
bnQ+KG5ld1RvcCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVG
YWN0b3IoKSkpLCBhbmltYXRlZCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKSB7Ci0gICAgICAgIHJlbmRl
cmVyLT5zZXRTY3JvbGxUb3Aoc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiByZW5kZXJlci0+c3R5
bGUoKS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOworICAgICAg
ICBpbnQgY2xhbXBlZFRvcCA9IGNsYW1wVG9JbnRlZ2VyKG5ld1RvcCAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9vdGhT
Y3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICp0aGlzKTsKKyAgICAgICAgcmVuZGVyZXIt
PnNldFNjcm9sbFRvcChjbGFtcGVkVG9wLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1h
dGVkKTsKICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVy
KCkpCiAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRj
aGVkU3RhdGUodHJ1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDA1
NjhiMDY5ZGMuLjI4YjQ2NWYwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE1
OTUsNyArMTU5NSw3IEBAIGRvdWJsZSBET01XaW5kb3c6OmRldmljZVBpeGVsUmF0aW8oKSBjb25z
dAogCiB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5KSBjb25zdAog
ewotICAgIHNjcm9sbEJ5KHsgeCwgeSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMo
eCwgeSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsQnkoY29uc3QgU2Nyb2xsVG9PcHRp
b25zJiBvcHRpb25zKSBjb25zdApAQCAtMTYxNywxMCArMTYxNywxMCBAQCB2b2lkIERPTVdpbmRv
dzo6c2Nyb2xsQnkoY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zKSBjb25zdAogCiB2b2lk
IERPTVdpbmRvdzo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5LCBTY3JvbGxDbGFtcGluZyBj
bGFtcGluZykgY29uc3QKIHsKLSAgICBzY3JvbGxUbyh7IHgsIHkgfSwgY2xhbXBpbmcpOworICAg
IHNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucyh4LCB5KSwgY2xhbXBpbmcpOwogfQogCi12b2lkIERP
TVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3JvbGxD
bGFtcGluZykgY29uc3QKK3ZvaWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09w
dGlvbnMmIG9wdGlvbnMsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKSBjb25zdAogewogICAgIGlm
ICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE2
MzMsMTIgKzE2MzMsMjIgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRv
T3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0CiAgICAgICAgIHZpZXctPmNv
bnRlbnRzU2Nyb2xsUG9zaXRpb24oKS54KCksIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24o
KS55KCkKICAgICApOwogCi0gICAgaWYgKCFzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICYm
ICFzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkgJiYgdmlldy0+Y29udGVudHNTY3JvbGxQb3Np
dGlvbigpID09IEludFBvaW50KDAsIDApKQorICAgIC8vIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9u
IGZvciB0aGUgY29tbW9uIGNhc2Ugb2Ygc2Nyb2xsaW5nIHRvICgwLCAwKSB3aGVuIHRoZSBzY3Jv
bGxlciBpcyBhbHJlYWR5IGF0IHRoZSBvcmlnaW4uCisgICAgLy8gSWYgYW4gYW5pbWF0ZWQgc2Ny
b2xsIGlzIGluIHByb2dyZXNzLCB0aGlzIG9wdGltaXphdGlvbiBpcyBza2lwcGVkIHRvIGVuc3Vy
ZSB0aGF0IHRoZSBhbmltYXRlZCBzY3JvbGwgaXMgcmVhbGx5IHN0b3BwZWQuCisgICAgaWYgKHZp
ZXctPmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVz
OjpOb3RJbkFuaW1hdGlvbiAmJiAhc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Ny
b2xsVG9PcHRpb25zLnRvcC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24o
KSA9PSBJbnRQb2ludCgwLCAwKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZG9jdW1lbnQoKS0+
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBJbnRQb2ludCBs
YXlvdXRQb3Modmlldy0+bWFwRnJvbUNTU1RvTGF5b3V0VW5pdHMoc2Nyb2xsVG9PcHRpb25zLmxl
ZnQudmFsdWUoKSksIHZpZXctPm1hcEZyb21DU1NUb0xheW91dFVuaXRzKHNjcm9sbFRvT3B0aW9u
cy50b3AudmFsdWUoKSkpOworCisgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQo
KS0+c2Nyb2xsaW5nRWxlbWVudCgpPworICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgaWYgKGRvY3VtZW50KCktPmRvY3VtZW50RWxl
bWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3IudmFs
dWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0byksICpkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQo
KSkpIHsKKyAgICAgICAgdmlldy0+c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGxheW91dFBv
cywgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFtcGluZyk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICB2aWV3LT5zZXRDb250ZW50c1Njcm9sbFBvc2l0aW9uKGxheW91dFBvcyk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAwNDAxMmY5ZWZmLi43MzFlMzIy
OTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMjc5LDcgKzIyNzksNyBAQCB2
b2lkIEZyYW1lVmlldzo6c2Nyb2xsRWxlbWVudFRvUmVjdChjb25zdCBFbGVtZW50JiBlbGVtZW50
LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIHNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGJv
dW5kcy54KCkgLSBjZW50ZXJpbmdPZmZzZXRYIC0gcmVjdC54KCksIGJvdW5kcy55KCkgLSBjZW50
ZXJpbmdPZmZzZXRZIC0gcmVjdC55KCkpKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgRnJh
bWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9z
aXRpb24sIGJvb2wgYW5pbWF0ZWQpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywg
c3RyZWFtIDw8ICJGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRp
b24gPDwgIiAsIGNsZWFyaW5nIGFuY2hvciIpOwogCkBAIC0yMjkyLDcgKzIyOTIsMTAgQEAgdm9p
ZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3Jv
bGxQb3NpdGlvbikKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgaWYgKHBh
Z2UgJiYgcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKICAgICAgICAgc2Nyb2xsQW5p
bWF0b3IoKS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocGFnZS0+d2hlZWxFdmVudFRlc3RNb25p
dG9yKCkpOwotICAgIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9u
KTsKKyAgICBpZiAoYW5pbWF0ZWQpCisgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pLCBjdXJyZW50U2Nyb2xs
VHlwZSgpKTsKKyAgICBlbHNlCisgICAgICAgIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uKTsKIAogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKG9sZFNjcm9sbFR5
cGUpOwogfQpAQCAtMzY2MCw2ICszNjYzLDI2IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUbyhj
b25zdCBTY3JvbGxQb3NpdGlvbiYgbmV3UG9zaXRpb24pCiAgICAgZGlkQ2hhbmdlU2Nyb2xsT2Zm
c2V0KCk7CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24o
Y29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xs
VHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOworCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsKKyAgICBp
ZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChv
ZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5
cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoY3VycmVudFNj
cm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZl
QW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsK
KyAgICBpZiAob2Zmc2V0ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAgICBTY3JvbGxh
YmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKG9mZnNldCk7CisgICAgc2V0Q3Vy
cmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKK30KKwogZmxvYXQgRnJhbWVWaWV3
OjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250ZW50KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsK
ICAgICBpZiAoZ3JhbnVsYXJpdHkgIT0gU2Nyb2xsQnlQYWdlIHx8IG9yaWVudGF0aW9uID09IEhv
cml6b250YWxTY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBlMzZmOTk2ODA0
Li5iMzdmMDYwZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTIyMyw3ICsyMjMsNyBA
QCBwdWJsaWM6CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFs
OwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Ny
b2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2Up
IGZpbmFsOwogICAgIHZvaWQgcmVzdG9yZVNjcm9sbGJhcigpOwogICAgIHZvaWQgc2NoZWR1bGVT
Y3JvbGxUb0ZvY3VzZWRFbGVtZW50KFNlbGVjdGlvblJldmVhbE1vZGUpOwogICAgIHZvaWQgc2Ny
b2xsVG9Gb2N1c2VkRWxlbWVudEltbWVkaWF0ZWx5SWZOZWVkZWQoKTsKQEAgLTY1OSw2ICs2NTks
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbmRlckxheWVyRGlkU2Nyb2xsKGNvbnN0IFJlbmRl
ckxheWVyJik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFu
aW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKwog
cHJvdGVjdGVkOgogICAgIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0
JiBjbGlwUmVjdCkgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0
IEludFJlY3QmIHVwZGF0ZVJlY3QpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JvbGxCZWhhdmlvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2
aW9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40ZWQyOWNiNDJi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5j
cHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3Iu
aCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2Jvb2wgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yIGJl
aGF2aW9yLCBFbGVtZW50JiBhc3NvY2lhdGVkRWxlbWVudCkKK3sKKyAgICBpZiAoIWFzc29jaWF0
ZWRFbGVtZW50LmRvY3VtZW50KCkuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkKCkgfHwgIWFzc29jaWF0ZWRFbGVtZW50LnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNz
Y3JvbGxpbmcKKyAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7CisgICAgY2FzZSBTY3JvbGxCZWhhdmlv
cjo6QXV0bzoKKyAgICAgICAgcmV0dXJuIGFzc29jaWF0ZWRFbGVtZW50LnJlbmRlcmVyKCktPnN0
eWxlKCkudXNlU21vb3RoU2Nyb2xsaW5nKCk7CisgICAgY2FzZSBTY3JvbGxCZWhhdmlvcjo6SW5z
dGFudDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OlNt
b290aDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLjFiYWVmODgxZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbEJlaGF2aW9yLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBFbGVtZW50OworCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2aW9yIDog
dWludDhfdCB7CisgICAgQXV0byA9IDAsCisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgKK307CisK
K2Jvb2wgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yLCBFbGVtZW50JiBhc3NvY2lh
dGVkRWxlbWVudCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
Y3JvbGxCZWhhdmlvci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u
ODk3MWFlOTM3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xs
QmVoYXZpb3IuaWRsCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworZW51bSBTY3JvbGxCZWhhdmlvciB7ICJhdXRvIiwgImluc3Rh
bnQiLCAic21vb3RoIiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJ
bnRvVmlld09wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRp
b25zLmgKaW5kZXggOTM5Y2Q3MzQyNS4uZjI3NWYyZmJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oCkBAIC0yMCwxMiArMjAsMTEgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmgiCisjaW5jbHVkZSAiU2Ny
b2xsT3B0aW9ucy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEVsZW1lbnQ7Ci0K
LXN0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnMgeworc3RydWN0IFNjcm9sbEludG9WaWV3T3B0
aW9ucyA6IFNjcm9sbE9wdGlvbnMgewogICAgIE9wdGlvbmFsPFNjcm9sbExvZ2ljYWxQb3NpdGlv
bj4gYmxvY2tQb3NpdGlvbiB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6U3RhcnQgfTsKICAgICBP
cHRpb25hbDxTY3JvbGxMb2dpY2FsUG9zaXRpb24+IGlubGluZVBvc2l0aW9uIHsgU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uOjpOZWFyZXN0IH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3Jv
bGxJbnRvVmlld09wdGlvbnMuaWRsCmluZGV4IGNmOWQxZmQ3NjcuLjFiMjRjNjg2ZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKQEAgLTE3LDgg
KzE3LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLS8vIEZJWE1F
KHdlYmtpdC5vcmcvYi8xODgwNDMpOiBTdXBwb3J0IFNjcm9sbEJlaGF2aW9yLgotZGljdGlvbmFy
eSBTY3JvbGxJbnRvVmlld09wdGlvbnMgeworZGljdGlvbmFyeSBTY3JvbGxJbnRvVmlld09wdGlv
bnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBbSW1wbGVtZW50ZWRBcz1ibG9ja1Bvc2l0aW9uXSBT
Y3JvbGxMb2dpY2FsUG9zaXRpb24gYmxvY2sgPSAic3RhcnQiOwogICAgIFtJbXBsZW1lbnRlZEFz
PWlubGluZVBvc2l0aW9uXSBTY3JvbGxMb2dpY2FsUG9zaXRpb24gaW5saW5lID0gIm5lYXJlc3Qi
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uZTE4NjdjNjAxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJTY3JvbGxCZWhhdmlvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBT
Y3JvbGxPcHRpb25zIHsKKyAgICBPcHRpb25hbDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IgeyBT
Y3JvbGxCZWhhdmlvcjo6QXV0byB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uMzI5ZDZmZjEwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitkaWN0aW9uYXJ5IFNjcm9sbE9wdGlvbnMg
eworICAgIFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yID0gImF1dG8iOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbFRvT3B0aW9ucy5oCmluZGV4IGNlMWNiYTFjN2MuLmY1Nzc0ZDQ0YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaApAQCAtMjgsMTQgKzI4LDIxIEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSAiU2Nyb2xsT3B0aW9ucy5oIgogI2luY2x1ZGUgPGNtYXRo
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
cnVjdCBTY3JvbGxUb09wdGlvbnMgeworc3RydWN0IFNjcm9sbFRvT3B0aW9ucyA6IFNjcm9sbE9w
dGlvbnMgewogICAgIE9wdGlvbmFsPGRvdWJsZT4gbGVmdDsKICAgICBPcHRpb25hbDxkb3VibGU+
IHRvcDsKKworICAgIFNjcm9sbFRvT3B0aW9ucygpID0gZGVmYXVsdDsKKyAgICBTY3JvbGxUb09w
dGlvbnMoZG91YmxlIHgsIGRvdWJsZSB5KQorICAgICAgICA6IGxlZnQoeCkKKyAgICAgICAgLCB0
b3AoeSkKKyAgICB7IH0KIH07CiAKIGlubGluZSBkb3VibGUgbm9ybWFsaXplTm9uRmluaXRlVmFs
dWVPckZhbGxCYWNrVG8oT3B0aW9uYWw8ZG91YmxlPiB2YWx1ZSwgZG91YmxlIGZhbGxiYWNrVmFs
dWUpCkBAIC00Nyw3ICs1NCw3IEBAIGlubGluZSBkb3VibGUgbm9ybWFsaXplTm9uRmluaXRlVmFs
dWVPckZhbGxCYWNrVG8oT3B0aW9uYWw8ZG91YmxlPiB2YWx1ZSwgZG91YmxlCiAvLyBGSVhNRSho
dHRwczovL3dlYmtpdC5vcmcvYi84ODMzOSk6IENvbnNpZGVyIHVzaW5nIEZsb2F0UG9pbnQgb3Ig
RG91YmxlUG9pbnQgZm9yIGZhbGxiYWNrIGFuZCByZXR1cm4gdmFsdWVzLgogaW5saW5lIFNjcm9s
bFRvT3B0aW9ucyBub3JtYWxpemVOb25GaW5pdGVDb29yZGluYXRlc09yRmFsbEJhY2tUbyhjb25z
dCBTY3JvbGxUb09wdGlvbnMmIHZhbHVlLCBkb3VibGUgeCwgZG91YmxlIHkpCiB7Ci0gICAgU2Ny
b2xsVG9PcHRpb25zIG9wdGlvbnM7CisgICAgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMgPSB2YWx1
ZTsKICAgICBvcHRpb25zLmxlZnQgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tU
byh2YWx1ZS5sZWZ0LCB4KTsKICAgICBvcHRpb25zLnRvcCA9IG5vcm1hbGl6ZU5vbkZpbml0ZVZh
bHVlT3JGYWxsQmFja1RvKHZhbHVlLnRvcCwgeSk7CiAgICAgcmV0dXJuIG9wdGlvbnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKaW5kZXggNTEwYmMwNzFhNi4uMmI5YjU1
NDEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbApAQCAtMjYsOCAr
MjYsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQz
KTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsVG9PcHRpb25zIHsK
K2RpY3Rpb25hcnkgU2Nyb2xsVG9PcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7CiAgICAgdW5yZXN0
cmljdGVkIGRvdWJsZSBsZWZ0OwogICAgIHVucmVzdHJpY3RlZCBkb3VibGUgdG9wOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCBiMzI5ZjEyNDc5Li4xZDc5ZjQ1OWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC02MjIsNiArNjIyLDkgQEAgc3ludGhldGljRWRp
dGluZ0NvbW1hbmRzRW5hYmxlZDoKIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIGlu
aXRpYWw6IGZhbHNlCiAKK0NTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6CisgIGluaXRp
YWw6IGZhbHNlCisKIGlucHV0RXZlbnRzRW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwCmluZGV4IDQyOWVlZTlhOTYuLmE5N2VhNDJlODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCkBAIC0yNDgsNyArMjQ4LDE0IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3Jv
CiAKICAgICBib29sIGluQmFja0ZvcndhcmRDYWNoZSA9IGZyYW1lVmlldy0+ZnJhbWUoKS5kb2N1
bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9y
d2FyZENhY2hlOwogICAgIGJvb2wgaW5Qcm9ncmFtbWF0aWNTY3JvbGwgPSBzY3JvbGxhYmxlQXJl
YS5jdXJyZW50U2Nyb2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYzsKLSAgICBp
ZiAoaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5CYWNrRm9yd2FyZENhY2hlKQorCisgICAgYm9v
bCB1cGRhdGVTY3JvbGxQb3NpdGlvbiA9IGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFja0Zv
cndhcmRDYWNoZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgYW5pbWF0ZWQg
PSBzY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKCkgPT0gU2Nyb2xsQmVo
YXZpb3JUeXBlOjpTbW9vdGg7CisgICAgLy8gVGhlIHNjcm9sbCBwb3NpdGlvbiBvZiBhbmltYXRl
ZCBzY3JvbGxpbmcgd2lsbCBiZSBzZXQgYnkgdGhlIFVJIHByb2Nlc3MuIFNvIHNob3VsZG4ndCBz
ZXQgaXQgbm93LgorICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uID0gIWFuaW1hdGVkICYmIHVwZGF0
ZVNjcm9sbFBvc2l0aW9uOworI2VuZGlmCisgICAgaWYgKHVwZGF0ZVNjcm9sbFBvc2l0aW9uKQog
ICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9k
ZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiAKICAgICAvLyBJZiB0aGlzIGZyYW1lIHZp
ZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB3
ZSBkb24ndCB3YW50IHRvIHVwZGF0ZSBvdXIKQEAgLTI2MCw3ICsyNjcsMTQgQEAgYm9vbCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xs
YWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIXN0YXRlTm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhdXRvIHN0YXR1cyA9IGFuaW1hdGVk
ID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5pbWF0aW9uIDogU2Nyb2xsQmVoYXZp
b3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOworICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJl
aGF2aW9yU3RhdHVzKHN0YXR1cyk7CisKKyAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCwgYW5pbWF0ZWQp
OworI2Vsc2UKICAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCk7CisjZW5kaWYKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApAQCAtMjkxLDYgKzMwNSwzMiBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcgogICAg
IG1fdXBkYXRlTm9kZVNjcm9sbFBvc2l0aW9uVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJv
b2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byog
ZnJhbWVWaWV3ID0gZnJhbWVWaWV3Rm9yU2Nyb2xsaW5nTm9kZShub2RlSUQpOworICAgIGlmICgh
ZnJhbWVWaWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobm9kZUlEID09IGZyYW1lVmll
dy0+c2Nyb2xsaW5nTm9kZUlEKCkpIHsKKyAgICAgICAgaWYgKCFpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpCisgICAgICAgICAgICBmcmFtZVZpZXctPnNldFNjcm9sbEJlaGF2aW9yU3RhdHVz
KFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAvLyBPdmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAgICBpZiAoYXV0byogc2Ny
b2xsYWJsZUFyZWEgPSBmcmFtZVZpZXctPnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRChu
b2RlSUQpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAg
ICAgICAgICAgc2Nyb2xsYWJsZUFyZWEtPnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgfQorfQorI2VuZGlmCisKIHZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5j
U2Nyb2xsVGltZXJGaXJlZCgpCiB7CiAgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5j
U2Nyb2xsKG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLm5vZGVJRCwgbV9zY2hlZHVsZWRTY3JvbGxV
cGRhdGUuc2Nyb2xsUG9zaXRpb24sIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLmxheW91dFZpZXdw
b3J0T3JpZ2luLCBTY3JvbGxUeXBlOjpVc2VyLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS51cGRh
dGVMYXllclBvc2l0aW9uQWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA5YmU2OWFhZmIx
Li4zZGUwMWNjMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC01Miw2ICs1Miw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNjcm9sbGluZ1N0YXRlVHJlZVByb3BlcnRpZXNDaGFuZ2VkKCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFz
eW5jU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IE9wdGlv
bmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbik7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCwgYm9v
bCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCiAKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2Vz
KFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbEluZGV4LCB1bnNpZ25lZCB2ZXJ0
aWNhbEluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDcxN2JmYzJhNTUuLjdl
MjE4OGMyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcApAQCAtNTYsNiArNTYsOSBAQCBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShj
b25zdCBTY3JvbGxpbmdTdGF0ZVNjcgogI2VuZGlmCiAgICAgLCBtX3Njcm9sbGFibGVBcmVhUGFy
YW1ldGVycyhzdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkpCiAgICAgLCBtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbChzdGF0ZU5v
ZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkp
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b25XaXRoQW5pbWF0aW9uKHN0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmlt
YXRpb24oKSkKKyNlbmRpZgogICAgICwgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyhzdGF0ZU5v
ZGUuaXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKIHsKICAgICBpZiAoaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbENvbnRhaW5lckxheWVyKSkKQEAgLTIxOSwxMiArMjIyLDIyIEBAIHZvaWQgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoY29u
c3QgU2Nyb2xsYWJsZUFyCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFNjcm9sbGFibGVBcmVhUGFy
YW1zKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2lu
dCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCwgYm9vbCByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uKQoreworICAgIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24gPSByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKKyAgICBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGw7CisgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRp
b24gPSByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uOworICAgIHNldFByb3BlcnR5Q2hhbmdlZChSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbik7Cit9CisjZWxzZQogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
CiB7CiAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uOwogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKICAgICBzZXRQcm9wZXJ0eUNo
YW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQorI2VuZGlmCiAKIHZvaWQgU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRJc01vbml0b3JpbmdXaGVlbEV2ZW50cyhib29sIGlz
TW9uaXRvcmluZ1doZWVsRXZlbnRzKQogewpAQCAtMzE0LDYgKzMyNywxMSBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNj
cm9sbGluZ1N0YXRlVAogICAgIGlmIChtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQg
c2Nyb2xsIHBvc2l0aW9uIHJlcHJlc2VudHMgcHJvZ3JhbW1hdGljIHNjcm9sbCIsIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRo
QW5pbWF0aW9uKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9z
aXRpb24gd2l0aCBhbmltYXRpb24iLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1h
dGlvbik7CisjZW5kaWYKKwogICAgIGlmICghbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0
LmlzRW1wdHkoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJwYXJlbnQgcmVsYXRpdmUgc2Ny
b2xsYWJsZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUuaAppbmRleCA0OTY3YTZjZTgxLi42ZTI1ZDdiYmE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuaApAQCAtMTExLDcgKzExMSwxMiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBGbG9h
dFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb247IH0KICAgICBib29sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOyB9CisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBib29sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9u
OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihj
b25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29s
IHJlcXVlc3RlZFdpdGhBbmltYXRpb24gPSBmYWxzZSk7CisjZWxzZQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGJv
b2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisjZW5kaWYKIAogICAgIGJvb2wgaXNN
b25pdG9yaW5nV2hlZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRvcmluZ1doZWVs
RXZlbnRzOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJc01vbml0b3JpbmdXaGVlbEV2
ZW50cyhib29sKTsKQEAgLTE3MSw2ICsxNzYsOSBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVB
cmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKIAogICAgIGJvb2wgbV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgeyBmYWxz
ZSB9OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uV2l0aEFuaW1hdGlvbiB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1faXNN
b25pdG9yaW5nV2hlZWxFdmVudHMgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDE1MWFjMjlmOGEuLjIzYmQ1MzZj
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgK
QEAgLTgyLDggKzgyLDEzIEBAIHB1YmxpYzoKICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5k
ZXJMYXllciBzY3JvbGxpbmcgc3RhdGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZSYsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uOjpTeW5jKSA9IDA7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIENh
bGxlZCBmb3Igc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMgdXBkYXRlcy4KKyAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uo
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIC8qaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKi8pIHsgfQorI2VuZGlmCisKICAgICAvLyBDYWxsZWQgZm9yIHJlcXVlc3RlZCBzY3JvbGwg
cG9zaXRpb24gdXBkYXRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9z
aXRpb24qLywgYm9vbCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLykgeyB9CisgICAg
dmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsKi8sIGJvb2wgLyp3aXRoQW5pbWF0aW9uKi8pIHsgfQogCiAg
ICAgLy8gRGVsZWdhdGVkIHNjcm9sbGluZy96b29taW5nIGhhcyBjYXVzZWQgdGhlIHZpZXdwb3J0
IHRvIGNoYW5nZSwgc28gdXBkYXRlIHZpZXdwb3J0LWNvbnN0cmFpbmVkIGxheWVycwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbWFpbkZyYW1lVmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Ny
b2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGxheW91dFZpZXdwb3J0LCBkb3VibGUgc2NhbGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuY3BwCmluZGV4IDczZGNhMjhlZjEuLjg5YjQ1ODA5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5jcHAKQEAgLTEwNyw4ICsxMDcsMTYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU4KIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25z
dCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSkKIHsKICAgICBjb25zdCBTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUmIHNjcm9sbGluZ1N0YXRlTm9kZSA9IGRvd25jYXN0PFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZT4oc3RhdGVOb2RlKTsKLSAgICBpZiAoc2Nyb2xsaW5nU3RhdGVO
b2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uKSkKLSAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbGluZ1N0YXRlTm9k
ZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkpOworICAgIGlmIChz
Y3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CisgICAgICAgIHNjcm9sbGluZ1Ry
ZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKAorICAgICAgICAgICAgc2Nyb2xs
aW5nTm9kZUlEKCkKKyAgICAgICAgICAgICwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKCkKKyAgICAgICAgICAgICwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgICAgICwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpCisjZW5kaWYKKyAgICAgICAgICAgICk7Cisg
ICAgfQogCiAgICAgbV9pc0ZpcnN0Q29tbWl0ID0gZmFsc2U7CiB9CkBAIC0xNTcsMTUgKzE2NSw0
NCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxCeShjb25zdCBGbG9h
dFNpemUmIGRlbHRhLCBTY3JvbGxQb3NpdGlvbgogICAgIHNjcm9sbFRvKGN1cnJlbnRTY3JvbGxQ
b3NpdGlvbigpICsgZGVsdGEsIFNjcm9sbFR5cGU6OlVzZXIsIGNsYW1wKTsKIH0KIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3Jv
bGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBT
Y3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wLCBib29sIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24pCit7
CisgICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSB7CisgICAgICAg
IC8vIFNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAg
IGlmIChyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQor
ICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0
aGlzLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsKKyAgICAgICAgc2Nyb2xs
aW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlk
Q2hhbmdlKHNjcm9sbGluZ05vZGVJRCgpLCBmYWxzZSk7CisgICAgICAgIHNldFJlcXVlc3RBbmlt
YXRlZFNjcm9sbChmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBJZiBk
dXJpbmcgYSBzY3JvbGwgYW5pbWF0aW9uLCBuZWVkIHRvIHN0b3AgaXQgYmVmb3JlIHN0YXJ0aW5n
IGEgbmV3IG9uZS4KKyAgICBpZiAoc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpKQorICAgICAg
ICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKHRydWUpOworICAgIHNjcm9sbGlu
Z1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKHNjcm9sbFR5cGUgPT0gU2Ny
b2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKKworICAgIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uID0g
YWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwgY2xhbXApOworCisgICAgTE9HX1dJVEhf
U1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSAi
IDw8IHNjcm9sbGluZ05vZGVJRCgpIDw8ICIgc2Nyb2xsVG8gIiA8PCBwb3NpdGlvbiA8PCAiIChk
ZWx0YSBmcm9tIGxhc3QgY29tbWl0dGVkIHBvc2l0aW9uICIgPDwgKG1fbGFzdENvbW1pdHRlZFNj
cm9sbFBvc2l0aW9uIC0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24pIDw8ICIpIik7CisKKyAgICB1
cGRhdGVWaWV3cG9ydEZvckN1cnJlbnRTY3JvbGxQb3NpdGlvbigpOworICAgIGN1cnJlbnRTY3Jv
bGxQb3NpdGlvbkNoYW5nZWQoKTsKKworICAgIHNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmlt
YXRpb24oZmFsc2UpOworICAgIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChmYWxzZSk7CisgICAg
c2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOwor
fQorI2Vsc2UKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0
IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0
aW9uQ2xhbXAgY2xhbXApCiB7CiAgICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBv
c2l0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0SXNIYW5k
bGluZ1Byb2dyYW1tYXRpY1Njcm9sbChzY3JvbGxUeXBlID09IFNjcm9sbFR5cGU6OlByb2dyYW1t
YXRpYyk7Ci0gICAgCisKICAgICBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IGFkanVzdGVkU2Ny
b2xsUG9zaXRpb24ocG9zaXRpb24sIGNsYW1wKTsKLSAgICAKKwogICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUgIiA8PCBz
Y3JvbGxpbmdOb2RlSUQoKSA8PCAiIHNjcm9sbFRvICIgPDwgcG9zaXRpb24gPDwgIiAoZGVsdGEg
ZnJvbSBsYXN0IGNvbW1pdHRlZCBwb3NpdGlvbiAiIDw8IChtX2xhc3RDb21taXR0ZWRTY3JvbGxQ
b3NpdGlvbiAtIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSA8PCAiKSIpOwogCiAgICAgdXBkYXRl
Vmlld3BvcnRGb3JDdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKQEAgLTE3MywxMiArMjEwLDE3IEBA
IHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZsb2F0UG9p
bnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlCiAKICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0SXNIYW5k
bGluZ1Byb2dyYW1tYXRpY1Njcm9sbChmYWxzZSk7CiB9CisjZW5kaWYKIAogdm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiB7CiAg
ICAgcmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpOwogICAgIHJlcG9zaXRpb25SZWxhdGVkTGF5
ZXJzKCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghcmVxdWVzdEFuaW1h
dGVkU2Nyb2xsKCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIHNjcm9sbGluZ1RyZWUo
KS5ub3RpZnlSZWxhdGVkTm9kZXNBZnRlclNjcm9sbFBvc2l0aW9uQ2hhbmdlKCp0aGlzKTsKICAg
ICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMpOwogfQpA
QCAtMjY2LDYgKzMwOCwzNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpkdW1w
UHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcgogICAgIHRzLmR1bXBQ
cm9wZXJ0eSgic2Nyb2xsYWJsZSBhcmVhIHBhcmFtZXRlcnMiLCBtX3Njcm9sbGFibGVBcmVhUGFy
YW1ldGVycyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wgYW5pbWF0ZWQp
Cit7CisgICAgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgPSBhbmltYXRlZDsKK30KKworYm9vbCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGw7Cit9CisKK3ZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9vbCBp
blByb2dyZXNzKQoreworICAgIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGluUHJvZ3Jl
c3M7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3M7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3Rv
cEN1cnJlbnRTY3JvbGxBbmltYXRpb24oYm9vbCBzdG9wKQoreworICAgIG1fbmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbiA9IHN0b3A7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdAoreworICAg
IHJldHVybiBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb247Cit9CisjZW5kaWYKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCA0Y2JmNGQxYWYwLi42YWY0MmEzZTY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmgKQEAgLTYwLDcgKzYwLDExIEBAIHB1YmxpYzoKICAgICBGbG9hdFNpemUg
c2Nyb2xsRGVsdGFTaW5jZUxhc3RDb21taXQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRTY3Jv
bGxQb3NpdGlvbiAtIG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBU
aGVzZSBhcmUgaW1wZXJhdGl2ZTsgdGhleSBhZGp1c3QgdGhlIHNjcm9sbGluZyBsYXllcnMuCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9p
bnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9
IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzLCBib29sIG5lZWRTeW5jU2Nyb2xs
UG9zaXRpb24gPSBmYWxzZSk7CisjZWxzZQogICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxvYXRQ
b2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlvbkNsYW1w
ID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOworI2VuZGlmCiAgICAgdm9p
ZCBzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmLCBTY3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xs
UG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOwogCiAgICAgdm9pZCB3YXNTY3JvbGxlZEJ5
RGVsZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBPcHRpb25hbDxG
bG9hdFJlY3Q+IG92ZXJyaWRlTGF5b3V0Vmlld3BvcnQgPSB7IH0sIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsKQEAgLTkx
LDYgKzk1LDE1IEBAIHB1YmxpYzoKICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3Jv
bGxDb250YWluZXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXI7
IH0KICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxlZENvbnRlbnRzTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsgfQogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChib29sKTsK
KyAgICBib29sIHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpIGNvbnN0OworICAgIHZvaWQgc2V0U2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sKTsKKyAgICBib29sIHNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MoKSBjb25zdDsKKyAgICB2b2lkIHNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmlt
YXRpb24oYm9vbCk7CisgICAgYm9vbCBuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKCkg
Y29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsK
IApAQCAtMTQ4LDYgKzE2MSwxMiBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1l
dGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKICAgICBib29sIG1faXNGaXJzdENvbW1p
dCB7IHRydWUgfTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCBtX3JlcXVl
c3RBbmltYXRlZFNjcm9sbCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5p
bWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Nj
cm9sbENvbnRhaW5lckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxlZENv
bnRlbnRzTGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24u
aAppbmRleCBiN2MxZDI0ZWI0Li41MjNhNzdmMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRpb24uaApAQCAtMzIsMTIgKzMyLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOworZW51bSBjbGFz
cyBTY3JvbGxDbGFtcGluZyA6IHVpbnQ4X3Q7CiAKIGNsYXNzIFNjcm9sbEFuaW1hdGlvbiB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U2Nyb2xs
QW5pbWF0aW9uKCkgeyB9OwogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50
YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCAvKiBzdGVwICovLCBmbG9hdCAvKiBtdWx0
aXBsaWVyICovKSB7IHJldHVybiB0cnVlOyB9OworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29u
c3QgRmxvYXRQb2ludCYpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKSB7IH07CiAgICAgdmlydHVhbCB2b2lk
IHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JikgeyB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKaW5kZXggZDA2NGU2
OTM3OS4uMmNhNTc4YTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uU21vb3RoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRpb25TbW9vdGguY3BwCkBAIC0yOCw4ICsyOCw2IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmgiCiAKLSNpZiBFTkFCTEUoU01P
T1RIX1NDUk9MTElORykKLQogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJTY3Jv
bGxhYmxlQXJlYS5oIgogCkBAIC0zOCw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0
YXRpYyBjb25zdCBkb3VibGUgZnJhbWVSYXRlID0gNjA7CiBzdGF0aWMgY29uc3QgU2Vjb25kcyB0
aWNrVGltZSA9IDFfcyAvIGZyYW1lUmF0ZTsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1pbmltdW1U
aW1lckludGVydmFsIHsgMV9tcyB9Oworc3RhdGljIGNvbnN0IGRvdWJsZSBzbW9vdGhGYWN0b3JG
b3JQcm9ncmFtbWF0aWNTY3JvbGwgPSA1OwogCiBTY3JvbGxBbmltYXRpb25TbW9vdGg6OlNjcm9s
bEFuaW1hdGlvblNtb290aChTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IEZs
b2F0UG9pbnQmIHBvc2l0aW9uLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKEZsb2F0UG9pbnQmJik+JiYg
bm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVuY3Rpb24pCiAgICAgOiBTY3JvbGxBbmltYXRpb24oc2Ny
b2xsYWJsZUFyZWEpCkBAIC02Nyw5ICs2NiwyMiBAQCBib29sIFNjcm9sbEFuaW1hdGlvblNtb290
aDo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudQog
ICAgIHJldHVybiBuZWVkVG9TY3JvbGw7CiB9CiAKK3ZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
OjpzY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCit7CisgICAgU2Nyb2xsR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeVBhZ2U7CisgICAgYm9vbCBuZWVkVG9TY3JvbGwg
PSB1cGRhdGVQZXJBeGlzRGF0YShtX2hvcml6b250YWxEYXRhLCBncmFudWxhcml0eSwgcG9zaXRp
b24ueCgpIC0gbV9ob3Jpem9udGFsRGF0YS5jdXJyZW50UG9zaXRpb24sIG1fc2Nyb2xsYWJsZUFy
ZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCkueCgpLCBtX3Njcm9sbGFibGVBcmVhLm1heGltdW1T
Y3JvbGxQb3NpdGlvbigpLngoKSwgc21vb3RoRmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsKTsK
KyAgICBuZWVkVG9TY3JvbGwgfD0KKyAgICAgICAgdXBkYXRlUGVyQXhpc0RhdGEobV92ZXJ0aWNh
bERhdGEsIGdyYW51bGFyaXR5LCBwb3NpdGlvbi55KCkgLSBtX3ZlcnRpY2FsRGF0YS5jdXJyZW50
UG9zaXRpb24sIG1fc2Nyb2xsYWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCkueSgpLCBt
X3Njcm9sbGFibGVBcmVhLm1heGltdW1TY3JvbGxQb3NpdGlvbigpLnkoKSwgc21vb3RoRmFjdG9y
Rm9yUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyAgICBpZiAobmVlZFRvU2Nyb2xsICYmICFhbmltYXRp
b25UaW1lckFjdGl2ZSgpKSB7CisgICAgICAgIG1fc3RhcnRUaW1lID0gbV9ob3Jpem9udGFsRGF0
YS5zdGFydFRpbWU7CisgICAgICAgIGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKKyAgICB9Cit9Owor
CiB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6c3RvcCgpCiB7CiAgICAgbV9hbmltYXRpb25U
aW1lci5zdG9wKCk7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1
cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwogfQogCiB2b2lkIFNjcm9s
bEFuaW1hdGlvblNtb290aDo6dXBkYXRlVmlzaWJsZUxlbmd0aHMoKQpAQCAtMjQ3LDcgKzI1OSw3
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXRBbmltYXRpb25QYXJhbWV0ZXJzRm9yR3JhbnVsYXJp
dHkoU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsCiAgICAgfQogfQogCi1ib29sIFNjcm9sbEFuaW1h
dGlvblNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmIGRhdGEsIFNjcm9sbEdy
YW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9zaXRp
b24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uKQorYm9vbCBTY3JvbGxBbmltYXRpb25TbW9vdGg6
OnVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiBkYXRhLCBTY3JvbGxHcmFudWxhcml0eSBn
cmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9hdCBt
YXhTY3JvbGxQb3NpdGlvbiwgZG91YmxlIHNtb290aEZhY3RvcikKIHsKICAgICBpZiAoIWRhdGEu
c3RhcnRUaW1lIHx8ICFkZWx0YSB8fCAoZGVsdGEgPCAwKSAhPSAoZGF0YS5kZXNpcmVkUG9zaXRp
b24gLSBkYXRhLmN1cnJlbnRQb3NpdGlvbiA8IDApKSB7CiAgICAgICAgIGRhdGEuZGVzaXJlZFBv
c2l0aW9uID0gZGF0YS5jdXJyZW50UG9zaXRpb247CkBAIC0yNjQsNiArMjc2LDEyIEBAIGJvb2wg
U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0YSYgZGF0
YSwgU2Nyb2xsR3JhbnVsYXJpCiAgICAgQ3VydmUgY29hc3RUaW1lQ3VydmU7CiAgICAgZ2V0QW5p
bWF0aW9uUGFyYW1ldGVyc0ZvckdyYW51bGFyaXR5KGdyYW51bGFyaXR5LCBhbmltYXRpb25UaW1l
LCByZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUsIGF0dGFja1RpbWUsIHJlbGVhc2VUaW1lLCBjb2Fz
dFRpbWVDdXJ2ZSwgbWF4aW11bUNvYXN0VGltZSk7CiAKKyAgICBhbmltYXRpb25UaW1lICo9IHNt
b290aEZhY3RvcjsKKyAgICByZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUgKj0gc21vb3RoRmFjdG9y
OworICAgIGF0dGFja1RpbWUgKj0gc21vb3RoRmFjdG9yOworICAgIHJlbGVhc2VUaW1lICo9IHNt
b290aEZhY3RvcjsKKyAgICBtYXhpbXVtQ29hc3RUaW1lICo9IHNtb290aEZhY3RvcjsKKwogICAg
IGRhdGEuZGVzaXJlZFBvc2l0aW9uID0gbmV3UG9zaXRpb247CiAgICAgaWYgKCFkYXRhLnN0YXJ0
VGltZSkKICAgICAgICAgZGF0YS5hdHRhY2tUaW1lID0gYXR0YWNrVGltZTsKQEAgLTM5Miw2ICs0
MTAsOCBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJGaXJlZCgp
CiAKICAgICBpZiAoY29udGludWVBbmltYXRpb24pCiAgICAgICAgIHN0YXJ0TmV4dFRpbWVyKHN0
ZDo6bWF4KG1pbmltdW1UaW1lckludGVydmFsLCBkZWx0YVRvTmV4dEZyYW1lKSk7CisgICAgZWxz
ZQorICAgICAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9s
bEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiAKICAgICBtX25vdGlmeVBvc2l0aW9u
Q2hhbmdlZEZ1bmN0aW9uKEZsb2F0UG9pbnQobV9ob3Jpem9udGFsRGF0YS5jdXJyZW50UG9zaXRp
b24sIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbikpOwogfQpAQCAtNDA3LDUgKzQyNywz
IEBAIGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckFjdGl2ZSgpIGNv
bnN0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTTU9P
VEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0aW9uU21vb3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b25TbW9vdGguaAppbmRleCAwMmNjNGVlMmJkLi44MTczZmE3ZTIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaApAQCAtMjcsMTQgKzI3LDEz
IEBACiAKICNpbmNsdWRlICJTY3JvbGxBbmltYXRpb24uaCIKIAotI2lmIEVOQUJMRShTTU9PVEhf
U0NST0xMSU5HKQotCiAjaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CitlbnVtIGNsYXNzIFNj
cm9sbENsYW1waW5nIDogdWludDhfdDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0aW9uU21vb3RoIGZp
bmFsOiBwdWJsaWMgU2Nyb2xsQW5pbWF0aW9uIHsKIHB1YmxpYzoKQEAgLTUxLDYgKzUwLDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9u
LCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwogICAgIHZv
aWQgc3RvcCgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKSBvdmVy
cmlkZTsKICAgICB2b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jikgb3Zl
cnJpZGU7CkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGludCB2aXNpYmxlTGVu
Z3RoIHsgMCB9OwogICAgIH07CiAKLSAgICBib29sIHVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNE
YXRhJiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3JvbGxQb3Np
dGlvbiwgZmxvYXQgbWF4U2Nyb2xsUG9zaXRpb24pOworICAgIGJvb2wgdXBkYXRlUGVyQXhpc0Rh
dGEoUGVyQXhpc0RhdGEmLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1p
blNjcm9sbFBvc2l0aW9uLCBmbG9hdCBtYXhTY3JvbGxQb3NpdGlvbiwgZG91YmxlIHNtb290aEZh
Y3RvciA9IDEpOwogICAgIGJvb2wgYW5pbWF0ZVNjcm9sbChQZXJBeGlzRGF0YSYsIE1vbm90b25p
Y1RpbWUgY3VycmVudFRpbWUpOwogCiAgICAgdm9pZCByZXF1ZXN0QW5pbWF0aW9uVGltZXJGaXJl
ZCgpOwpAQCAtMTA4LDQgKzEwOCwzIEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAotI2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGE2MTE4NjgzN2QuLjRkNTk4Yzc1YTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiTGF5b3V0U2l6ZS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9sbEFuaW1h
dGlvblNtb290aC5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8YWxn
b3JpdGhtPgogCkBAIC01Miw2ICs1MywxOCBAQCBTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0
b3IoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKQogI2lmIEVOQUJMRShDU1NfU0NST0xM
X1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICAsIG1fc2Nyb2xsQ29udHJvbGxl
cigqdGhpcykKICNlbmRpZgorICAgICwgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGwobWFr
ZVVuaXF1ZTxTY3JvbGxBbmltYXRpb25TbW9vdGg+KHNjcm9sbGFibGVBcmVhLCBtX2N1cnJlbnRQ
b3NpdGlvbiwgW3RoaXNdKEZsb2F0UG9pbnQmJiBwb3NpdGlvbikgeworICAgICAgICBhdXRvIHBy
ZXZpb3VzU2Nyb2xsVHlwZSA9IG1fc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUoKTsK
KyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRDdXJyZW50U2Nyb2xsVHlwZShTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMpOworICAgICAgICBib29sIHVwZGF0ZWQgPSBtX3Njcm9sbGFibGVBcmVh
LnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShyb3VuZGVkSW50UG9pbnQocG9zaXRpb24pKTsK
KyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Nj
cm9sbFR5cGUpOworICAgICAgICBpZiAodXBkYXRlZCkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBGbG9hdFNpemUgZGVsdGEgPSBwb3NpdGlvbiAtIG1fY3VycmVudFBvc2l0aW9uOwor
ICAgICAgICBtX2N1cnJlbnRQb3NpdGlvbiA9IFdURk1vdmUocG9zaXRpb24pOworICAgICAgICBu
b3RpZnlQb3NpdGlvbkNoYW5nZWQoZGVsdGEpOworICAgIH0pKQogewogfQogCkBAIC03NSw2ICs4
OCwxNCBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24g
b3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LAogICAgIHJldHVybiB0cnVlOwogfQogCit2
b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldChjb25zdCBGbG9hdFBvaW50JiBvZmZz
ZXQpCit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGwtPnNldEN1cnJlbnRQb3Np
dGlvbihtX2N1cnJlbnRQb3NpdGlvbik7CisgICAgYXV0byBuZXdQb3NpdGlvbiA9IFNjcm9sbGFi
bGVBcmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0LCB0b0Zsb2F0U2l6ZShtX3Nj
cm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0
aWNTY3JvbGwtPnNjcm9sbChuZXdQb3NpdGlvbik7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRT
Y3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmlt
YXRpb24pOworfQorCiB2b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldFdpdGhvdXRB
bmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGluZykKIHsKICAg
ICBGbG9hdFBvaW50IG5ld1Bvc2l0b24gPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb25G
cm9tT2Zmc2V0KG9mZnNldCwgdG9GbG9hdFNpemUobV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPcmln
aW4oKSkpOwpAQCAtMjQ1LDQgKzI2NiwzMyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yOjpyZW1vdmVX
aGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VAogfQog
I2VuZGlmCiAKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMoKQoreworI2lm
ICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCisgICAgbV9hbmltYXRpb25Qcm9n
cmFtbWF0aWNTY3JvbGwtPnN0b3AoKTsKKyNlbmRpZgorfQorCit2b2lkIFNjcm9sbEFuaW1hdG9y
OjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpCit7CisjaWYgIVVTRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRV9USU1FUikKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c2Vydmlj
ZUFuaW1hdGlvbigpOworI2VuZGlmCit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OndpbGxFbmRM
aXZlUmVzaXplKCkKK3sKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+dXBkYXRl
VmlzaWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmltYXRvcjo6ZGlkQWRkVmVydGlj
YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikKK3sKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Nj
cm9sbC0+dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmltYXRvcjo6
ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKQoreworICAgIG1fYW5pbWF0aW9u
UHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVuZ3RocygpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApp
bmRleCBhNWM2OWM1M2I3Li45YjdjMDliNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbEFuaW1hdG9yLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBGbG9hdFBvaW50OwogY2xhc3MgUGxhdGZvcm1Ub3VjaEV2ZW50OworY2xhc3MgU2Nyb2xs
QW5pbWF0aW9uOwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CiBjbGFzcyBTY3JvbGxiYXI7CiBjbGFz
cyBXaGVlbEV2ZW50VGVzdE1vbml0b3I7CkBAIC02OCw2ICs2OSw3IEBAIHB1YmxpYzoKICAgICAv
LyBUaGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBhbHdheXMgc2Nyb2xscyBpbW1lZGlhdGVs
eSwgbmV2ZXIgYW5pbWF0ZXMuCiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmll
bnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIp
OwogCisgICAgdm9pZCBzY3JvbGxUb09mZnNldChjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50
JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAKICAgICBTY3Jv
bGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVB
cmVhOyB9CkBAIC04NSw4ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJlbnRQb3Np
dGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgY29uc3QgRmxvYXRQb2ludCYgY3VycmVudFBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UG9zaXRpb247IH0KIAotICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWxBbmltYXRpb25zKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNlcnZpY2VT
Y3JvbGxBbmltYXRpb25zKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbEFuaW1hdGlvbnMo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBjb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0IHsgfQogICAgIHZpcnR1YWwg
dm9pZCBtb3VzZUVudGVyZWRDb250ZW50QXJlYSgpIHsgfQpAQCAtOTcsMTYgKzk5LDE2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VJc0Rvd25JblNjcm9sbGJhcihTY3JvbGxiYXIq
LCBib29sKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0TGl2ZVJlc2l6ZSgp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1Jlc2l6ZWQoKSBjb25zdCB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbEVuZExpdmVSZXNpemUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bEVuZExpdmVSZXNpemUoKTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGVudEFyZWFEaWRTaG93KCkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRBcmVhRGlkSGlkZSgpIHsgfQogCiAgICAgdmly
dHVhbCB2b2lkIGxvY2tPdmVybGF5U2Nyb2xsYmFyU3RhdGVUb0hpZGRlbihib29sKSB7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc0NhbkJlQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJh
ciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcihTY3JvbGxi
YXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9s
bGJhciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNj
cm9sbGJhciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFy
KFNjcm9sbGJhciopOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9s
bGJhcihTY3JvbGxiYXIqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xs
YmFyUGFydExheWVycyhTY3JvbGxiYXIqKSB7IH0KQEAgLTE1MSw2ICsxNTMsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgU2Nyb2xsQ29udHJvbGxlciBtX3Njcm9sbENvbnRyb2xsZXI7CiAjZW5kaWYKICAg
ICBGbG9hdFBvaW50IG1fY3VycmVudFBvc2l0aW9uOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNj
cm9sbEFuaW1hdGlvbj4gbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGw7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAppbmRl
eCA4OTExNDkxMDNkLi5mNmQzNTY2NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5
cGVzLmgKQEAgLTU0LDYgKzU0LDIxIEBAIGVudW0gY2xhc3MgU2Nyb2xsUG9zaXRpb25DbGFtcCA6
IHVpbnQ4X3QgewogICAgIFRvQ29udGVudEVkZ2VzLAogfTsKIAorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2
aW9yVHlwZSA6IHVpbnQ4X3QgeworICAgIEluc3RhbnQsCisgICAgU21vb3RoLAorfTsKKyNlbmRp
ZgorCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2aW9yU3RhdHVzIDogdWludDhfdCB7CisgICAgTm90
SW5BbmltYXRpb24sCisgICAgSW5Ob25OYXRpdmVBbmltYXRpb24sCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBJbk5hdGl2ZUFuaW1hdGlv
biwKKyNlbmRpZgorfTsKKwogaW5saW5lIFNjcm9sbERpcmVjdGlvbiBsb2dpY2FsVG9QaHlzaWNh
bChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBpc1ZlcnRpY2FsLCBib29s
IGlzRmxpcHBlZCkKIHsKICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCBiMTI2YTljMmI3Li4xZDJjMzJlYTc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDYxLDEwICs0NjEsMTQgQEAgdm9p
ZCBTY3JvbGxWaWV3Ojpjb21wbGV0ZVVwZGF0ZXNBZnRlclNjcm9sbFRvKGNvbnN0IEludFNpemUm
IHNjcm9sbERlbHRhKQogICAgIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxpbmco
KTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQ
b3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0
aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgYm9vbC8qIGFuaW1hdGVk
Ki8pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVu
dFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpOworI2VuZGlm
CisKICAgICBpZiAocHJvaGliaXRzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAt
NDc1LDEzICs0NzksMTcgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAKICAgICBTY3JvbGxQb3NpdGlvbiBu
ZXdTY3JvbGxQb3NpdGlvbiA9ICFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSA/IGFkanVzdFNjcm9sbFBv
c2l0aW9uV2l0aGluUmFuZ2Uoc2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xsUG9zaXRpb247CiAKLSAg
ICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNj
cm9sbFR5cGU6OlVzZXIpICYmIG5ld1Njcm9sbFBvc2l0aW9uID09IHRoaXMtPnNjcm9sbFBvc2l0
aW9uKCkpCisgICAgaWYgKCghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgfHwgY3VycmVudFNjcm9sbFR5
cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKSAmJiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMo
KSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYgbmV3U2Nyb2xsUG9z
aXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVz
OjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxB
bmltYXRpb25zKCk7CisKICAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKG5ld1Nj
cm9sbFBvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdXBkYXRlU2Nyb2xsYmFycyhu
ZXdTY3JvbGxQb3NpdGlvbik7CisgICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVo
YXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIH0KIAogYm9vbCBTY3JvbGxWaWV3OjpzY3Jv
bGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHkpCkBAIC01MzgsNyArNTQ2LDggQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJz
KGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXNpcmVkUG9zaXRpb24pCiAgICAgCiAgICAgaWYgKCFt
YW5hZ2VzU2Nyb2xsYmFycygpKSB7CiAgICAgICAgIGlmIChzY3JvbGxPcmlnaW5DaGFuZ2VkKCkp
IHsKLSAgICAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmlt
YXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOworICAgICAg
ICAgICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoZGVzaXJlZFBvc2l0aW9uKSkK
KyAgICAgICAgICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5p
bWF0aW9uKHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihkZXNpcmVkUG9zaXRpb24pKTsKICAgICAg
ICAgICAgIHJlc2V0U2Nyb2xsT3JpZ2luQ2hhbmdlZCgpOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCA0MzAxNjBkNmFlLi41
Mzk4MTA4Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0yNjAsNyAr
MjYwLDcgQEAgcHVibGljOgogICAgIFNjcm9sbFBvc2l0aW9uIGNhY2hlZFNjcm9sbFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8gRnVu
Y3Rpb25zIGZvciBzY3JvbGxpbmcgdGhlIHZpZXcuCi0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJik7CisgICAgdmlydHVhbCB2b2lkIHNldFNj
cm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgYm9vbCBhbmltYXRlZCA9IGZhbHNl
KTsKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEludFNpemUmIHMpIHsgcmV0dXJuIHNldFNjcm9s
bFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKCkgKyBzKTsgfQogCiAgICAgLy8gVGhpcyBmdW5jdGlv
biBzY3JvbGxzIGJ5IGxpbmVzLCBwYWdlcyBvciBwaXhlbHMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggOTZkMGYzMDBiMy4uMTUwNzA0YzJkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNzEsNiArNzEs
OSBAQCBTY3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEoKQogICAgICwgbV9zY3JvbGxPcmln
aW5DaGFuZ2VkKGZhbHNlKQogICAgICwgbV9jdXJyZW50U2Nyb2xsVHlwZShzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oU2Nyb2xsVHlwZTo6VXNlcikpCiAgICAgLCBtX3Njcm9sbFNob3VsZENsZWFyTGF0
Y2hlZFN0YXRlKGZhbHNlKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lO
Q19TQ1JPTExJTkcpCisgICAgLCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCkpCisjZW5kaWYKIHsKIH0K
IApAQCAtMTQyLDYgKzE0NSwxMiBAQCBib29sIFNjcm9sbGFibGVBcmVhOjpzY3JvbGwoU2Nyb2xs
RGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYQogICAgIHJldHVy
biBzY3JvbGxBbmltYXRvcigpLnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAs
IG11bHRpcGxpZXIpOwogfQogCit2b2lkIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGluZykKK3sK
KyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGFibGVBcmVh
ICIgPDwgdGhpcyA8PCAiIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbiAiIDw8IG9mZnNldCk7
CisgICAgc2Nyb2xsQW5pbWF0b3IoKS5zY3JvbGxUb09mZnNldChvZmZzZXQpOworfQorCiB2b2lk
IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxv
YXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGFibGVBcmVhICIgPDwgdGhpcyA8
PCAiIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbiAiIDw8IG9mZnNldCk7CkBAIC0yMjEs
MTYgKzIzMCwxNSBAQCBib29sIFNjcm9sbGFibGVBcmVhOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0
IFBsYXRmb3JtVG91Y2hFdmVudCYgdG91Y2hFdmVudCkKIC8vIE5PVEU6IE9ubHkgY2FsbGVkIGZy
b20gSW50ZXJuYWxzIGZvciB0ZXN0aW5nLgogdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xs
T2Zmc2V0RnJvbUludGVybmFscyhjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKIHsKKyAgICBp
ZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChv
ZmZzZXQpKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgc2V0U2Nyb2xsT2Zmc2V0RnJvbUFuaW1h
dGlvbihvZmZzZXQpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRG
cm9tQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogewotICAgIFNjcm9sbFBv
c2l0aW9uIHBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCk7Ci0gICAg
aWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShwb3NpdGlvbikpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZChwb3NpdGlvbik7CisgICAgc2Nyb2xsUG9z
aXRpb25DaGFuZ2VkKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKTsKIH0KIAogdm9p
ZCBTY3JvbGxhYmxlQXJlYTo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCBkNzQzOGMxNWNkLi41NTY3MmY4MWQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTYyLDcgKzYyLDExIEBA
IGlubGluZSBpbnQgb2Zmc2V0Rm9yT3JpZW50YXRpb24oU2Nyb2xsT2Zmc2V0IG9mZnNldCwgU2Ny
b2xsYmFyT3JpZW50YXRpb24gb3JpZW50CiAKIGNsYXNzIFNjcm9sbGFibGVBcmVhIDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiB7CiBwdWJsaWM6CisgICAgU2Nyb2xsQmVo
YXZpb3JTdGF0dXMgY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgeyByZXR1cm4gbV9jdXJy
ZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXM7IH0KKyAgICB2b2lkIHNldFNjcm9sbEJlaGF2aW9yU3Rh
dHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzIHN0YXR1cykgeyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlv
clN0YXR1cyA9IHN0YXR1czsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JvbGwoU2Ny
b2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCk7CiAgICAgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oU2Nyb2xsYmFyT3Jp
ZW50YXRpb24sIGZsb2F0IG9mZnNldCk7CiAKQEAgLTI0Miw2ICsyNDYsMTEgQEAgcHVibGljOgog
ICAgIFNjcm9sbFR5cGUgY3VycmVudFNjcm9sbFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxTY3JvbGxUeXBlPihtX2N1cnJlbnRTY3JvbGxUeXBlKTsgfQogICAgIHZvaWQgc2V0Q3Vy
cmVudFNjcm9sbFR5cGUoU2Nyb2xsVHlwZSBzY3JvbGxUeXBlKSB7IG1fY3VycmVudFNjcm9sbFR5
cGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Nyb2xsVHlwZSk7IH0KIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgU2Nyb2xsQmVoYXZp
b3JUeXBlIGN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxTY3JvbGxCZWhhdmlvclR5cGU+KG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSk7IH0K
KyAgICB2b2lkIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBl
IHNjcm9sbEJlaGF2aW9yVHlwZSkgeyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgPSBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oc2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorI2VuZGlmCisKICAgICBi
b29sIHNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zY3Jv
bGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZTsgfQogICAgIHZvaWQgc2V0U2Nyb2xsU2hvdWxkQ2xl
YXJMYXRjaGVkU3RhdGUoYm9vbCBzaG91bGRDbGVhcikgeyBtX3Njcm9sbFNob3VsZENsZWFyTGF0
Y2hlZFN0YXRlID0gc2hvdWxkQ2xlYXI7IH0KIApAQCAtMzc4LDYgKzM4Nyw4IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgbV9jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleCB7IDAgfTsKICNl
bmRpZgogCisgICAgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JT
dGF0dXMgeyBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gfTsKKwogICAgIC8v
IFRoZXJlIGFyZSA4IHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB3cml0aW5nIG1vZGUgYW5kIGRp
cmVjdGlvbi4gU2Nyb2xsIG9yaWdpbiB3aWxsIGJlIG5vbi16ZXJvIGluIHRoZSB4IG9yIHkgYXhp
cwogICAgIC8vIGlmIHRoZXJlIGlzIGFueSByZXZlcnNlZCBkaXJlY3Rpb24gb3Igd3JpdGluZy1t
b2RlLiBUaGUgY29tYmluYXRpb25zIGFyZToKICAgICAvLyB3cml0aW5nLW1vZGUgLyBkaXJlY3Rp
b24gICAgIHNjcm9sbE9yaWdpbi54KCkgc2V0ICAgIHNjcm9sbE9yaWdpbi55KCkgc2V0CkBAIC00
MDMsNiArNDE0LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3Njcm9sbE9yaWdpbkNoYW5n
ZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbFR5cGUgOiAxOyAvLyBTY3JvbGxU
eXBlCiAgICAgdW5zaWduZWQgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSA6IDE7Cisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICB1
bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgOiAxOworI2VuZGlmCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAKaW5kZXggMjA4YWY3Yjg0Ny4u
YWQzMzJjMzI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9T
Y3JvbGxBbmltYXRvckdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dl
bmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcApAQCAtMTYyLDYgKzE2Miw4IEBAIHZvaWQg
U2Nyb2xsQW5pbWF0b3JHZW5lcmljOjp3aWxsRW5kTGl2ZVJlc2l6ZSgpCiAKIHZvaWQgU2Nyb2xs
QW5pbWF0b3JHZW5lcmljOjp1cGRhdGVQb3NpdGlvbihGbG9hdFBvaW50JiYgcG9zaXRpb24pCiB7
CisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEucmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHJv
dW5kZWRJbnRQb2ludChwb3NpdGlvbikpKQorICAgICAgICByZXR1cm47CiAgICAgRmxvYXRTaXpl
IGRlbHRhID0gcG9zaXRpb24gLSBtX2N1cnJlbnRQb3NpdGlvbjsKICAgICBtX2N1cnJlbnRQb3Np
dGlvbiA9IFdURk1vdmUocG9zaXRpb24pOwogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChkZWx0
YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0
b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
bW0KaW5kZXggZjU5MTc2NzJlZS4uNjM3NTNhZDI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtMTE1NSw2ICsxMTU1LDcgQEAg
dm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChjb25zdCBG
bG9hdFNpemUmIGRlbHRhKQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpjYW5jZWxBbmltYXRp
b25zKCkKIHsKKyAgICBTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucygpOwogICAgIG1f
aGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZCA9IGZhbHNlOwogCiAgICAgaWYgKHNjcm9sbGJhclBh
aW50VGltZXJJc0FjdGl2ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApp
bmRleCBmOGQzYTQ5MjVhLi42ZDFmODU3Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcApAQCAtNTgxLDIwICs1ODEsMjggQEAgc3RhdGljIHZvaWQgc2V0dXBXaGVlbEV2
ZW50TW9uaXRvcihSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgbGF5ZXIuc2Nyb2xsQW5pbWF0b3Io
KS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocGFnZS53aGVlbEV2ZW50VGVzdE1vbml0b3IoKSk7
CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxU
eXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5kZXJCb3g6
OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBh
bmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgaWYgKCFoYXNPdmVyZmxv
d0NsaXAoKSB8fCAhbGF5ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHNldHVwV2hlZWxFdmVu
dE1vbml0b3IoKmxheWVyKCkpOwotICAgIGxheWVyKCktPnNjcm9sbFRvWFBvc2l0aW9uKG5ld0xl
ZnQsIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1hQb3NpdGlv
bihuZXdMZWZ0LCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCi12b2lkIFJl
bmRlckJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwg
U2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsVG9wKGlu
dCBuZXdUb3AsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAoKSB8fCAhbGF5ZXIo
KSkKICAgICAgICAgcmV0dXJuOwogICAgIHNldHVwV2hlZWxFdmVudE1vbml0b3IoKmxheWVyKCkp
OwotICAgIGxheWVyKCktPnNjcm9sbFRvWVBvc2l0aW9uKG5ld1RvcCwgc2Nyb2xsVHlwZSwgY2xh
bXBpbmcpOworICAgIGxheWVyKCktPnNjcm9sbFRvWVBvc2l0aW9uKG5ld1RvcCwgc2Nyb2xsVHlw
ZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKK30KKwordm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbFBv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxU
eXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3sKKyAgICBpZiAo
IWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQorICAgICAgICByZXR1cm47CisgICAgc2V0
dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7CisgICAgbGF5ZXIoKS0+c2Nyb2xsVG9Qb3Np
dGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAogdm9p
ZCBSZW5kZXJCb3g6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywgY29uc3Qg
TGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCmluZGV4IDQ5NTQ4MTQwNTQuLjIyMTkyODA1NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTI0Nyw4ICsyNDcsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBpbnQgc2Nyb2xsVG9wKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgc2Nyb2xsV2lkdGgo
KSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdDsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0g
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxUb3Ao
aW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVk
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIGJvb2wg
YW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCk7CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wg
YW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCk7CisgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNj
cm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCk7CiAKICAgICBMYXlvdXRVbml0IG1hcmdpblRvcCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94LnRvcCgpOyB9CiAgICAgTGF5b3V0VW5pdCBtYXJn
aW5Cb3R0b20oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX21hcmdpbkJveC5ib3R0b20oKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZDg0YWQxYTFk
YS4uNjEzYTZhZmEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CkBAIC0yNTc1LDE2ICsyNTc1LDI0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmFwcGx5UG9zdExheW91
dFNjcm9sbFBvc2l0aW9uSWZOZWVkZWQoKQogICAgIG1fcG9zdExheW91dFNjcm9sbFBvc2l0aW9u
ID0gV1RGOjpudWxsb3B0OwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1hQb3NpdGlv
bihpbnQgeCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykK
K3ZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlIHNj
cm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAg
IFNjcm9sbFBvc2l0aW9uIHBvc2l0aW9uKHgsIG1fc2Nyb2xsUG9zaXRpb24ueSgpKTsKLSAgICBz
Y3JvbGxUb09mZnNldChzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxU
eXBlLCBjbGFtcGluZyk7CisgICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlw
ZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9Z
UG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xh
bXBpbmcpCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xs
VHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykK
IHsKICAgICBTY3JvbGxQb3NpdGlvbiBwb3NpdGlvbihtX3Njcm9sbFBvc2l0aW9uLngoKSwgeSk7
Ci0gICAgc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwg
c2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIHNjcm9sbFRvUG9zaXRpb24ocG9zaXRpb24sIHNj
cm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNj
cm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBTY3JvbGxUeXBl
IHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQorewor
ICAgIGlmIChhbmltYXRlZCkKKyAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKHNj
cm9sbE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsK
KyAgICBlbHNlCisgICAgICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldEZyb21Qb3NpdGlv
bihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKIH0KIAogU2Nyb2xsT2Zmc2V0IFJl
bmRlckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9m
ZnNldCkgY29uc3QKQEAgLTI1OTQsMjIgKzI2MDIsNjggQEAgU2Nyb2xsT2Zmc2V0IFJlbmRlckxh
eWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCkg
Y28KIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0
JiBzY3JvbGxPZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xh
bXBpbmcpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlw
ZTo6SW5zdGFudCk7CisjZW5kaWYKKworICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0
dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pCisgICAg
ICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOworCiAgICAgU2Nyb2xsT2Zm
c2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCkgOiBzY3JvbGxPZmZzZXQ7Ci0g
ICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisgICAg
aWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpIHsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgICAgICAv
LyBJZiBVSVNjcm9sbFZpZXcgaXMgcGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24sIHRoZSBz
Y3JvbGwgb2Zmc2V0IG9mIHRoZSBXZWIgcHJvY2VzcyBtaWdodCBiZSBvdmVycmlkZGVuLgorICAg
ICAgICAvLyBTbyB3ZSBuZWVkIHRvIGNhbGwgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlIGhl
cmUgYW5kIGxldCBpdCBiZSBjaGVja2VkIG9uIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAvLyBJ
ZiB0aGUgc2Nyb2xsIG9mZnNldCBvbiB0aGUgVUkgcHJvY2VzcyBpcyBkaWZmZXJlbnQsIHRoZSBj
b3JyZWN0IHNjcm9sbCBvZmZzZXQgbmVlZHMgdG8gc3luYyBiYWNrIHRvIHRoZSBXZWIgcHJvY2Vz
cy4KKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpJbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgICAgIHJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQoY2xhbXBlZFNjcm9sbE9m
ZnNldCkpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvIHByZXZp
b3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9s
bFR5cGUoc2Nyb2xsVHlwZSk7CiAKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKICNpZiBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQotICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xs
aW5nQ29vcmRpbmF0b3IgPSBwYWdlKCkuc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKLSAgICAgICAg
aGFuZGxlZCA9IHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRh
dGUoKnRoaXMsIHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7
CisgICAgaGFuZGxlZCA9IHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlv
bkZyb21PZmZzZXQoY2xhbXBlZFNjcm9sbE9mZnNldCkpOwogI2VuZGlmCiAKLSAgICBpZiAoIWhh
bmRsZWQpCisgICAgaWYgKCFoYW5kbGVkKSB7CiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aG91
dEFuaW1hdGlvbihjbGFtcGVkU2Nyb2xsT2Zmc2V0LCBjbGFtcGluZyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7
CisgICAgfQorCisgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsK
K30KKworYm9vbCBSZW5kZXJMYXllcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0
IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQorICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBw
YWdlKCkuc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nv
b3JkaW5hdG9yLT5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKnRoaXMsIHBvc2l0aW9uKTsK
KyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KIAordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xs
VG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGxU
eXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGF1dG8gcHJl
dmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJyZW50U2Ny
b2xsVHlwZShzY3JvbGxUeXBlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3Jv
bGxCZWhhdmlvclR5cGU6OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVw
ZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0Q3Vy
cmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyNlbmRpZgorCisgICAgU2Nyb2xsT2Zmc2V0IG5ld1Njcm9sbE9mZnNldCA9IGNsYW1waW5n
ID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQob2Zmc2V0KSA6
IG9mZnNldDsKKyAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xs
QmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxBbmlt
YXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKKyAgICBpZiAobmV3U2Nyb2xsT2Zmc2V0ICE9IHRo
aXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZz
ZXRXaXRoQW5pbWF0aW9uKG5ld1Njcm9sbE9mZnNldCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5
cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKIH0KIApAQCAtMjY0NSw3ICsyNjk5LDcgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uKQogI2Vu
ZGlmCiAgICAgfQogICAgIAotICAgIGlmIChtX3Njcm9sbFBvc2l0aW9uID09IG5ld1Bvc2l0aW9u
KSB7CisgICAgaWYgKG1fc2Nyb2xsUG9zaXRpb24gPT0gbmV3UG9zaXRpb24gJiYgY3VycmVudFNj
cm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0
aW9uKSB7CiAgICAgICAgIC8vIEZJWE1FOiBOb3RoaW5nIGd1YXJhbnRlZXMgd2UgZ2V0IGEgc2Ny
b2xsVG8oKSB3aXRoIGFuIHVuY2hhbmdlZCBwb3NpdGlvbiBhdCB0aGUgZW5kIG9mIGEgdXNlciBn
ZXN0dXJlLgogICAgICAgICAvLyBUaGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgcHJvYmFibHkgbmVl
ZHMgdG8gbWVzc2FnZSB0aGUgbWFpbiB0aHJlYWQgd2hlbiBhIGdlc3R1cmUgZW5kcy4KICAgICAg
ICAgaWYgKHJlcXVpcmVzU2Nyb2xsUG9zaXRpb25SZWNvbmNpbGlhdGlvbigpKSB7CkBAIC0yNzkw
LDEwICsyODQ0LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29u
c3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgIExheW91dFJl
Y3QgcmV2ZWFsUmVjdCA9IGdldFJlY3RUb0V4cG9zZShsYXllckJvdW5kcywgbG9jYWxFeHBvc2VS
ZWN0LCBpbnNpZGVGaXhlZCwgb3B0aW9ucy5hbGlnblgsIG9wdGlvbnMuYWxpZ25ZKTsKIAogICAg
ICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1wU2Nyb2xsT2Zmc2V0
KHNjcm9sbE9mZnNldCgpICsgdG9JbnRTaXplKHJvdW5kZWRJbnRSZWN0KHJldmVhbFJlY3QpLmxv
Y2F0aW9uKCkpKTsKLSAgICAgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zm
c2V0KCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpICE9IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiB8fCBjbGFtcGVkU2Nyb2xsT2Zmc2V0
ICE9IHNjcm9sbE9mZnNldCgpKSB7CiAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgb2xkU2Nyb2xs
T2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0KCk7Ci0gICAgICAgICAgICBzY3JvbGxUb09mZnNldChjbGFt
cGVkU2Nyb2xsT2Zmc2V0KTsKLSAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0RGlmZmVy
ZW5jZSA9IHNjcm9sbE9mZnNldCgpIC0gb2xkU2Nyb2xsT2Zmc2V0OworICAgICAgICAgICAgYm9v
bCBhbmltYXRlZCA9IChib3gtPmVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9u
cy5iZWhhdmlvciwgKmJveC0+ZWxlbWVudCgpKSk7CisgICAgICAgICAgICBzY3JvbGxUb1Bvc2l0
aW9uKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwgU2Nyb2xs
VHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7CisgICAgICAgICAgICBJbnRTaXplIHNjcm9s
bE9mZnNldERpZmZlcmVuY2UgPSBjbGFtcGVkU2Nyb2xsT2Zmc2V0IC0gb2xkU2Nyb2xsT2Zmc2V0
OwogICAgICAgICAgICAgbG9jYWxFeHBvc2VSZWN0Lm1vdmUoLXNjcm9sbE9mZnNldERpZmZlcmVu
Y2UpOwogICAgICAgICAgICAgbmV3UmVjdCA9IExheW91dFJlY3QoYm94LT5sb2NhbFRvQWJzb2x1
dGVRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobG9jYWxFeHBvc2VSZWN0KSksIFVzZVRyYW5zZm9y
bXMpLmJvdW5kaW5nQm94KCkpOwogICAgICAgICB9CkBAIC0yODEzLDEwICsyODY4LDEzIEBAIHZv
aWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJz
b2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCB2aWV3UmVj
dCA9IGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoTGVnYWN5SU9TRG9jdW1lbnRWaXNpYmxl
UmVjdCk7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBleHBvc2VSZWN0ID0gZ2V0UmVjdFRv
RXhwb3NlKHZpZXdSZWN0LCBhYnNvbHV0ZVJlY3QsIGluc2lkZUZpeGVkLCBvcHRpb25zLmFsaWdu
WCwgb3B0aW9ucy5hbGlnblkpOwogCi0gICAgICAgICAgICAgICAgSW50UG9pbnQgc2Nyb2xsT2Zm
c2V0KHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkpKTsKKyAgICAgICAgICAg
ICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbihyb3VuZGVkSW50UG9pbnQoZXhwb3NlUmVjdC5s
b2NhdGlvbigpKSk7CiAgICAgICAgICAgICAgICAgLy8gQWRqdXN0IG9mZnNldHMgaWYgdGhleSdy
ZSBvdXRzaWRlIG9mIHRoZSBhbGxvd2FibGUgcmFuZ2UuCi0gICAgICAgICAgICAgICAgc2Nyb2xs
T2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2ludCgpLCBJbnRQ
b2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKLSAgICAgICAgICAgICAgICBmcmFtZVZp
ZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBzY3Jv
bGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2ludCgp
LCBJbnRQb2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKKyAgICAgICAgICAgICAgICAv
LyBGSVhNRTogU2hvdWxkIHdlIHVzZSBjb250ZW50RG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVu
dCgpPworICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9IG93bmVy
RWxlbWVudC0+Y29udGVudERvY3VtZW50KCkgJiYgb3duZXJFbGVtZW50LT5jb250ZW50RG9jdW1l
bnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVo
YXZpb3IsICpvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQo
KSk7CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBv
c2l0aW9uLCBhbmltYXRlZCk7CiAKICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5zaG91bGRB
bGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nID09IFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxp
bmc6OlllcyB8fCBmcmFtZVZpZXcuc2FmZVRvUHJvcGFnYXRlU2Nyb2xsVG9QYXJlbnQoKSkgewog
ICAgICAgICAgICAgICAgICAgICBwYXJlbnRMYXllciA9IG93bmVyRWxlbWVudC0+cmVuZGVyZXIo
KS0+ZW5jbG9zaW5nTGF5ZXIoKTsKQEAgLTI4NTUsNyArMjkxMywxMCBAQCB2b2lkIFJlbmRlckxh
eWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwg
Ym9vbCBpbnNpZAogICAgICAgICAgICAgLy8gQXZvaWQgc2Nyb2xsaW5nIHRvIHRoZSByb3VuZGVk
IHZhbHVlIG9mIHJldmVhbFJlY3QubG9jYXRpb24oKSBpZiB3ZSBkb24ndCBhY3R1YWxseSBuZWVk
IHRvIHNjcm9sbAogICAgICAgICAgICAgaWYgKHJldmVhbFJlY3QgIT0gdmlld1JlY3QpIHsKICAg
ICAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbFBvc2l0aW9uID0gcm91bmRl
ZEludFBvaW50KHJldmVhbFJlY3QubG9jYXRpb24oKSkuY29uc3RyYWluZWRCZXR3ZWVuKG1pblNj
cm9sbFBvc2l0aW9uLCBtYXhTY3JvbGxQb3NpdGlvbik7Ci0gICAgICAgICAgICAgICAgZnJhbWVW
aWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7CisgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVu
dCgpPworICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9IHJlbmRl
cmVyKCkuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmco
b3B0aW9ucy5iZWhhdmlvciwgKnJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQo
KSk7CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRT
Y3JvbGxQb3NpdGlvbiwgYW5pbWF0ZWQpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAv
LyBUaGlzIGlzIHRoZSBvdXRlcm1vc3QgdmlldyBvZiBhIHdlYiBwYWdlLCBzbyBhZnRlciBzY3Jv
bGxpbmcgdGhpcyB2aWV3IHdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmlu
ZGV4IDZjYTQyMmI3YjIuLjhjOTc3ODM3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5j
bHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHRyLmgiCisjaW5jbHVkZSAiU2Ny
b2xsQmVoYXZpb3IuaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1ZGUgPG1l
bW9yeT4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtMTM0LDYgKzEzNSw3IEBAIHN0cnVj
dCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9ucyB7CiAgICAgY29uc3QgU2Nyb2xsQWxpZ25tZW50
JiBhbGlnblggeyBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQgfTsKICAgICBj
b25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSB7IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50
ZXJJZk5lZWRlZCB9OwogICAgIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgc2hvdWxk
QWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyB7IFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxp
bmc6Ok5vIH07CisgICAgU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IgeyBTY3JvbGxCZWhhdmlvcjo6
QXV0byB9OwogfTsKIAogY2xhc3MgUmVuZGVyTGF5ZXIgZmluYWwgOiBwdWJsaWMgU2Nyb2xsYWJs
ZUFyZWEgewpAQCAtNDM5LDkgKzQ0MSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxCeVJl
Y3Vyc2l2ZWx5KGNvbnN0IEludFNpemUmIGRlbHRhLCBTY3JvbGxhYmxlQXJlYSoqIHNjcm9sbGVk
QXJlYSA9IG51bGxwdHIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNl
dChjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1h
dGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBTY3JvbGxP
ZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFt
cGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAotICAgIHZvaWQgc2Nyb2xsVG9YUG9z
aXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6
OkNsYW1wZWQpOwotICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUs
IFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIGJvb2wgcmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgb3ZlcnJpZGU7
CisKKyAgICB2b2lkIHNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlLCBib29sIGFu
aW1hdGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2
b2lkIHNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBT
Y3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2b2lkIHNjcm9s
bFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlLCBib29sIGFuaW1h
dGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAogICAgIC8v
IFRoZXNlIGFyZSBvbmx5IHVzZWQgYnkgbWFycXVlZS4KICAgICB2b2lkIHNjcm9sbFRvWE9mZnNl
dChpbnQgeCkgeyBzY3JvbGxUb09mZnNldChTY3JvbGxPZmZzZXQoeCwgc2Nyb2xsT2Zmc2V0KCku
eSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6VW5jbGFtcGVk
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDI1
Y2QyZDMzYTcuLmMzM2U5MDYwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHAKQEAgLTc0Myw3ICs3NDMsNyBAQCBpbnQgUmVuZGVyTGlzdEJveDo6c2Nyb2xs
TGVmdCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6c2V0
U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW5kZXJM
aXN0Qm94OjpzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBp
bmcpCiB7CiB9CiAKQEAgLTc2MCw3ICs3NjAsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cFdoZWVsRXZl
bnRUZXN0TW9uaXRvcihSZW5kZXJMaXN0Qm94JiByZW5kZXJlcikKICAgICByZW5kZXJlci5zY3Jv
bGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihyZW5kZXJlci5wYWdlKCkud2hl
ZWxFdmVudFRlc3RNb25pdG9yKCkpOwogfQogCi12b2lkIFJlbmRlckxpc3RCb3g6OnNldFNjcm9s
bFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgUmVuZGVy
TGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9s
bENsYW1waW5nKQogewogICAgIC8vIERldGVybWluZSBhbiBpbmRleCBhbmQgc2Nyb2xsIHRvIGl0
LiAgICAKICAgICBpbnQgaW5kZXggPSBuZXdUb3AgLyBpdGVtSGVpZ2h0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAppbmRleCA2NWQ5MjI2YjNhLi4yNWM5MDY1MWRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTEwNiw4ICsx
MDYsOCBAQCBwcml2YXRlOgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBpbnQgc2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlw
ZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwg
U2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xs
TGVmdChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5n
KSBvdmVycmlkZTsKIAogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
LCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFp
bmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24p
IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IDllZTg4ODg2NzEuLjRkZjdkMzE4ZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0zNzYsMTMgKzM3NiwxMyBAQCBpbnQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpzY3JvbGxUb3AoKSBjb25zdAogICAgIHJldHVybiBSZW5kZXJCbG9j
a0Zsb3c6OnNjcm9sbFRvcCgpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZTo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcp
Cit2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3
TGVmdCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpCiB7CiAgICAgaWYgKGlubmVy
VGV4dEVsZW1lbnQoKSkKICAgICAgICAgaW5uZXJUZXh0RWxlbWVudCgpLT5zZXRTY3JvbGxMZWZ0
KG5ld0xlZnQpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Ny
b2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxU
eXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxlbWVudCgp
KQogICAgICAgICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbFRvcChuZXdUb3ApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5oCmluZGV4IDNmNTc4NmRmZTQuLjY2NmFhMzE0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKQEAgLTU3
LDggKzU3LDggQEAgcHJpdmF0ZToKICAgICBpbnQgc2Nyb2xsVG9wKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgaW50IHNjcm9sbFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IHNjcm9sbEhl
aWdodCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9s
bFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFNjcm9sbFRvcChp
bnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNj
cm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFt
cGluZykgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIEVsZW1lbnQqKiBzdG9wRWxlbWVudCA9
IG51bGxwdHIsIFJlbmRlckJveCogc3RhcnRCb3ggPSBudWxscHRyLCBjb25zdCBJbnRQb2ludCYg
d2hlZWxFdmVudEFic29sdXRlUG9pbnQgPSBJbnRQb2ludCgpKSBmaW5hbDsKICAgICBib29sIGxv
Z2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZs
b2F0IG11bHRpcGxpZXIgPSAxLCBFbGVtZW50Kiogc3RvcEVsZW1lbnQgPSAwKSBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA1ZGNi
MjFjNjQ2Li4wMDdhNGQxMzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaApAQCAtNzM2LDYgKzczNiw4IEBAIHB1YmxpYzoKICAgICBib29sIHVzZVRv
dWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBtX3JhcmVJbmhlcml0ZWREYXRh
LT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nOyB9CiAjZW5kaWYKIAorICAgIGJvb2wgdXNlU21v
b3RoU2Nyb2xsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dXNl
U21vb3RoU2Nyb2xsaW5nOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIFRl
eHRTaXplQWRqdXN0bWVudCB0ZXh0U2l6ZUFkanVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZUlu
aGVyaXRlZERhdGEtPnRleHRTaXplQWRqdXN0OyB9CiAgICAgQXV0b3NpemVTdGF0dXMgYXV0b3Np
emVTdGF0dXMoKSBjb25zdDsKQEAgLTEyNjcsNiArMTI2OSw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoYm9vbCB2KSB7IFNFVF9WQVIobV9yYXJlSW5o
ZXJpdGVkRGF0YSwgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZywgdik7IH0KICNlbmRpZgogCisg
ICAgdm9pZCBzZXRVc2VTbW9vdGhTY3JvbGxpbmcoYm9vbCB2KSB7IFNFVF9WQVIobV9yYXJlTm9u
SW5oZXJpdGVkRGF0YSwgdXNlU21vb3RoU2Nyb2xsaW5nLCB2KTsgfQorCiAjaWYgRU5BQkxFKFRF
WFRfQVVUT1NJWklORykKICAgICB2b2lkIHNldFRleHRTaXplQWRqdXN0KFRleHRTaXplQWRqdXN0
bWVudCBhZGp1c3RtZW50KSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgdGV4dFNpemVB
ZGp1c3QsIGFkanVzdG1lbnQpOyB9CiAgICAgdm9pZCBzZXRBdXRvc2l6ZVN0YXR1cyhBdXRvc2l6
ZVN0YXR1cyk7CkBAIC0xNzA0LDYgKzE3MDgsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wg
aW5pdGlhbFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxzZTsgfQogI2Vu
ZGlmCiAKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNlU21vb3RoU2Nyb2xsaW5nKCkgeyByZXR1
cm4gZmFsc2U7IH0KKwogICAgIHN0YXRpYyBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBpbml0aWFs
RmlsdGVyKCkgeyBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmlsdGVyT3BlcmF0aW9ucz4gb3BzOyBy
ZXR1cm4gb3BzOyB9CiAgICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxB
cHBsZUNvbG9yRmlsdGVyKCkgeyBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmlsdGVyT3BlcmF0aW9u
cz4gb3BzOyByZXR1cm4gb3BzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCBmYjMy
MDgyMzM3Li5kMmE1MzFmYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC04Nyw2ICs4
Nyw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEoKQogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5k
ZXJTdHlsZTo6aW5pdGlhbEJhY2tmYWNlVmlzaWJpbGl0eSgpKSkKICAgICAsIHVzZXJEcmFnKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZXJEcmFnKCkpKQogICAg
ICwgdGV4dE92ZXJmbG93KHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlh
bFRleHRPdmVyZmxvdygpKSkKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcoKSkpCiAgICAg
LCBtYXJnaW5CZWZvcmVDb2xsYXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTWFyZ2luQ29sbGFw
c2U6OkNvbGxhcHNlKSkKICAgICAsIG1hcmdpbkFmdGVyQ29sbGFwc2Uoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KE1hcmdpbkNvbGxhcHNlOjpDb2xsYXBzZSkpCiAgICAgLCBhcHBlYXJhbmNlKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEFwcGVhcmFuY2UoKSkpCkBAIC0x
ODAsNiArMTgxLDcgQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIGJhY2tmYWNlVmlz
aWJpbGl0eShvLmJhY2tmYWNlVmlzaWJpbGl0eSkKICAgICAsIHVzZXJEcmFnKG8udXNlckRyYWcp
CiAgICAgLCB0ZXh0T3ZlcmZsb3coby50ZXh0T3ZlcmZsb3cpCisgICAgLCB1c2VTbW9vdGhTY3Jv
bGxpbmcoby51c2VTbW9vdGhTY3JvbGxpbmcpCiAgICAgLCBtYXJnaW5CZWZvcmVDb2xsYXBzZShv
Lm1hcmdpbkJlZm9yZUNvbGxhcHNlKQogICAgICwgbWFyZ2luQWZ0ZXJDb2xsYXBzZShvLm1hcmdp
bkFmdGVyQ29sbGFwc2UpCiAgICAgLCBhcHBlYXJhbmNlKG8uYXBwZWFyYW5jZSkKQEAgLTI3OCw2
ICsyODAsNyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29u
c3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBiYWNrZmFjZVZp
c2liaWxpdHkgPT0gby5iYWNrZmFjZVZpc2liaWxpdHkKICAgICAgICAgJiYgdXNlckRyYWcgPT0g
by51c2VyRHJhZwogICAgICAgICAmJiB0ZXh0T3ZlcmZsb3cgPT0gby50ZXh0T3ZlcmZsb3cKKyAg
ICAgICAgJiYgdXNlU21vb3RoU2Nyb2xsaW5nID09IG8udXNlU21vb3RoU2Nyb2xsaW5nCiAgICAg
ICAgICYmIG1hcmdpbkJlZm9yZUNvbGxhcHNlID09IG8ubWFyZ2luQmVmb3JlQ29sbGFwc2UKICAg
ICAgICAgJiYgbWFyZ2luQWZ0ZXJDb2xsYXBzZSA9PSBvLm1hcmdpbkFmdGVyQ29sbGFwc2UKICAg
ICAgICAgJiYgYXBwZWFyYW5jZSA9PSBvLmFwcGVhcmFuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmlu
ZGV4IDE5YzU5MWIyZDEuLjE2YTI4NTEzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMTgx
LDYgKzE4MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHVzZXJEcmFnIDogMjsgLy8gVXNl
ckRyYWcKICAgICB1bnNpZ25lZCB0ZXh0T3ZlcmZsb3cgOiAxOyAvLyBXaGV0aGVyIG9yIG5vdCBs
aW5lcyB0aGF0IHNwaWxsIG91dCBzaG91bGQgYmUgdHJ1bmNhdGVkIHdpdGggIi4uLiIKKyAgICB1
bnNpZ25lZCB1c2VTbW9vdGhTY3JvbGxpbmcgOiAxOyAvLyBTY3JvbGxCZWhhdmlvcgogICAgIHVu
c2lnbmVkIG1hcmdpbkJlZm9yZUNvbGxhcHNlIDogMjsgLy8gTWFyZ2luQ29sbGFwc2UKICAgICB1
bnNpZ25lZCBtYXJnaW5BZnRlckNvbGxhcHNlIDogMjsgLy8gTWFyZ2luQ29sbGFwc2UKICAgICB1
bnNpZ25lZCBhcHBlYXJhbmNlIDogNjsgLy8gRUFwcGVhcmFuY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKaW5kZXggN2YzZjBjYmM0ZS4uZTM4MjA0ZjY4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKQEAg
LTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgY29udmVydE92ZXJmbG93
U2Nyb2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAjZW5kaWYKICAgICBz
dGF0aWMgRm9udEZlYXR1cmVTZXR0aW5ncyBjb252ZXJ0Rm9udEZlYXR1cmVTZXR0aW5ncyhCdWls
ZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOworICAgIHN0YXRpYyBib29sIGNvbnZlcnRTbW9v
dGhTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMg
Rm9udFNlbGVjdGlvblZhbHVlIGNvbnZlcnRGb250V2VpZ2h0RnJvbVZhbHVlKGNvbnN0IENTU1Zh
bHVlJik7CiAgICAgc3RhdGljIEZvbnRTZWxlY3Rpb25WYWx1ZSBjb252ZXJ0Rm9udFN0cmV0Y2hG
cm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgT3B0aW9uYWw8Rm9udFNlbGVj
dGlvblZhbHVlPiBjb252ZXJ0Rm9udFN0eWxlRnJvbVZhbHVlKGNvbnN0IENTU1ZhbHVlJik7CkBA
IC0xNDAzLDYgKzE0MDQsMTEgQEAgaW5saW5lIGJvb2wgQnVpbGRlckNvbnZlcnRlcjo6Y29udmVy
dE92ZXJmbG93U2Nyb2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1YKIH0KICNlbmRpZgog
CitpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U21vb3RoU2Nyb2xsaW5nKEJ1
aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gZG93bmNh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS52YWx1ZUlEKCkgPT0gQ1NTVmFsdWVTbW9vdGg7
Cit9CisKIGlubGluZSBTVkdMZW5ndGhWYWx1ZSBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U1ZH
TGVuZ3RoVmFsdWUoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQogewogICAg
IHJldHVybiBTVkdMZW5ndGhWYWx1ZTo6ZnJvbUNTU1ByaW1pdGl2ZVZhbHVlKGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CmluZGV4IGUwNzc3OTYyZDUuLjcyNDAwODEwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKQEAgLTE3NDYsNyArMTc0Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFs
czo6dW5jb25zdHJhaW5lZFNjcm9sbFRvKEVsZW1lbnQmIGVsZW1lbnQsIGRvdWJsZSB4LCBkCiAg
ICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCi0gICAgZWxlbWVudC5zY3JvbGxUbyh7
IHgsIHkgfSwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CisgICAgZWxlbWVudC5zY3JvbGxU
byhTY3JvbGxUb09wdGlvbnMoeCwgeSksIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOwogICAg
IHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg0NTJlN2Y5MS4uYjI4YWE0ZDBjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxOS0xMi0xMSAgQ2F0aGllIENoZW4gIDxjYXRoaWVj
aGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlv
ciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRo
ZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBz
Y3JvbGxpbmcgYXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuIE9uIGlvcyBwbGF0Zm9ybSwgdXNl
IG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaW50ZXJmYWNlcyB0byBwZXJmb3Jt
YW5jZSBzbW9vdGggc2Nyb2xsIGFuZCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdl
YiBwcm9jZXNzLgorCisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZT46OmVuY29kZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZT46OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXApOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAocG9pbnRzRXF1
YWxJblJvdW5kVG9EZXZpY2VQaXhlbCk6IEhlbHAgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdHdvIGZs
b2F0IHBvaW50cyBhcmUgbm90IGVxdWFsIGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwuCisg
ICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xs
T3JpZ2luOmFuaW1hdGVkOl0pOiBBZGQgYW5pbWF0ZWQgZmxhZyB0byBzdGFydCBhIGFuaW1hdGVk
IHNjcm9sbCBpZiBuZWVkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBzY3JvbGxWaWV3RGlkRW5k
U2Nyb2xsaW5nQW5pbWF0aW9uOl0pOiBTZW5kIHNyb2xsIGVuZCBtZXNzYWdlIHRvIHRoZSBXZWIg
cHJvY2Vzcy4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3Np
dGlvbjpzY3JvbGxPcmlnaW46XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50
Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0
aW9uKTogUHJvdmlkZSBpbnRlcmZhY2UgZm9yIGFuaW1hdGVkIHNjcm9sbGluZy4KKyAgICAgICAg
KiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
OmNvbW1pdExheWVyVHJlZSk6IEFkZCBhbmltYXRlZCBmbGFnLgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKTogU3luYyB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIg
cHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhbmltYXRlZCBzY3JvbGxp
bmcgaW5mbyB0byBtX3JlcXVlc3RlZFNjcm9sbEluZm8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogU3luYyBzY3JvbGxBbmltYXRpb25JblByb2dyZXNz
IHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzRGlkQ2hhbmdlKTogRGl0dG8uIEl0J3Mgc3BlY2lmaWMgdG8gdGhlIHJvb3Qgbm9kZS4K
KyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVl
OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6IEFkZCBhbmltYXRlZCBpbmZvLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3Rz
U2Nyb2xsKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNj
cm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogRGl0
dG8uCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdU
cmVlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06
CisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3
RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOl0pOiBTZW5kIHNjb2xsIGVuZCBpbmZvIHRvIHRoZSBX
ZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTogSWYgdGhlIHNjcm9sbCBwb3Np
dGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MgaXNuJ3QgZXF1YWwgdG8gdGhlIFVJIHByb2Nlc3MsCisg
ICAgICAgIHRoZSBzY3JvbGwgcG9zaXRpb24gc2hvdWxkIGJlIHN5bmNocm9uaXplZCwgZXZlbiB0
aGVyZSdzIG5vIHNjcm9sbGluZyBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAg
IChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRp
b25TY3JvbGxpbmdMYXllcnMpOiBDYWxsaW5nIHRoZSBuYXRpdmUgYW5pbWF0ZWQgc2Nyb2xsaW5n
IGludGVyZmFjZSBmb3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgSWYgdGhlcmUncyBhIHNjcm9s
bCBhbmltYXRpb24gcGVyZm9ybWluZywgaXQgc2hvdWxkIGJlIHN0b3BwZWQgZmlyc3QsIHRoZW4g
c3RhcnQgYSBuZXcgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9u
KTogU3luYyBzY3JvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnJlcXVlc3RTY3JvbGwpOiBUbyBjYWxsIGRpZmZlcmVudCBmdW5jdGlvbnMgZm9yIHNtb290aCBh
bmQgaW5zdGFudCBzY3JvbGwuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3NDaGFuZ2VkRm9yTm9kZSk6CisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hl
bkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3Ig
cGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1MDA5CisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcgYXMgYW4gZXhwZXJp
bWVudGFsIGZlYXR1cmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgor
CisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAxOS0xMi0xMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgbG9hZCBzb29u
ZXIgb24gc3dpcGUgYmFjay9mb3J3YXJkIG5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRy
YW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAppbmRleCBkN2IxZTE5MzcyLi41
NzQ0ZTFjODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
VHJhbnNhY3Rpb24uY3BwCkBAIC0xNTIsNiArMTUyLDkgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dAogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OlNjcm9sbGFibGVBcmVhUGFyYW1zLCBzY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMpCiAgICAgU0NS
T0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKQogICAgIFNDUk9MTElOR19O
T0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUo
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKQorI2VuZGlmCiAKICAgICBpZiAobm9k
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxD
b250YWluZXJMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8R3JhcGhpY3NM
YXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNjcm9sbENvbnRhaW5lckxheWVyKCkpOwpAQCAt
MjYwLDcgKzI2MywxNCBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9sbAogICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgYm9vbCBz
Y3JvbGxXaXRoQW5pbWF0aW9uOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNjcm9sbFdp
dGhBbmltYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBub2RlLnNl
dFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsLCBzY3JvbGxXaXRoQW5pbWF0aW9uKTsKKyNlbHNlCiAgICAgICAgIG5vZGUu
c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5
ZXIpKSB7CkBAIC02MDgsNiArNjE4LDkgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0
cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAgICBp
ZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAg
ICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24iLCBub2RlLnJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVl
c3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0aWMiLCBub2RlLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9z
aXRpb24td2l0aC1hbmltYXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFu
aW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNP
bmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzLnlhbWwKaW5kZXggMmU3YjRiNGZlNC4uZmViMmMzZjg0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzI0LDYgKzEzMjQsMTMgQEAgQmxvY2tpbmdP
ZlNtYWxsUGx1Z2luc0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlN0b3Ag
cGx1Z2lucyBzbWFsbGVyIHRoYW4gYSBjZXJ0YWluIHRocmVzaG9sZCBmcm9tIGxvYWRpbmcuIgog
ICBjYXRlZ29yeTogaW50ZXJuYWwKIAorQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDoK
KyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1l
OiAiQ1NTT00gVmlldyBTbW9vdGggU2Nyb2xsaW5nIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRp
b246ICJFbmFibGUgRE9NIEFQSSBhbmQgQ1NTIHByb3BlcnR5IGZvciAnc21vb3RoJyBzY3JvbGwg
YmVoYXZpb3IiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogV2ViQW5pbWF0aW9uc0VuYWJs
ZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzMzU0YWM2ZWVjLi4xMDhl
NGMwM2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KQEAgLTE2MTcsNiArMTYxNywxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcG9pbnRzRXF1
YWxJbkRldmljZVBpeGVscyhDR1BvaW50IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2aWNlUwogICAg
ICAgICAmJiBmYWJzKGEueSAqIGRldmljZVNjYWxlRmFjdG9yIC0gYi55ICogZGV2aWNlU2NhbGVG
YWN0b3IpIDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKIH0KIAorc3Rh
dGljIGlubGluZSBib29sIHBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoQ0dQb2ludCBh
LCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIHJldHVybiBDR1Jv
dW5kKGEueCAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueCAqIGRldmljZVNjYWxl
RmFjdG9yKQorICAgICAgICAmJiBDR1JvdW5kKGEueSAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBD
R1JvdW5kKGIueSAqIGRldmljZVNjYWxlRmFjdG9yKTsKK30KIHN0YXRpYyBDR1NpemUgcm91bmRT
Y3JvbGxWaWV3Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIENH
U2l6ZSBjb250ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IHBhZ2Uu
ZGV2aWNlU2NhbGVGYWN0b3IoKTsKQEAgLTIzNDEsOSArMjM0NiwxMCBAQCBzdGF0aWMgV2ViQ29y
ZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQg
Y29udGVudE9mZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihX
ZWJDb3JlOjpGbG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNvbnRlbnRP
ZmZzZXQpKTsKIH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdl
YkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJ
bnRQb2ludClzY3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0
aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2Vi
Q29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7Ci0g
ICAgaWYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9y
dFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNp
emluZykKKyAgICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBwZWQuCisg
ICAgaWYgKCFhbmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8fCBf
ZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0
ZU1vZGU6Ok5vdFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6Rmxv
YXRQb2ludCBjb250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9m
ZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2lu
KSk7CkBAIC0yMzU3LDEzICsyMzYzLDIxIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNv
bnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAKICAg
ICBbX3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CiAKLSAg
ICBpZiAoIUNHUG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzLCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Njcm9sbFZp
ZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXNd
OworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1dCBpbiB0
aGUgc2FtZSBkZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4KKyAgICAv
LyBXZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhlcmUuCisg
ICAgaWYgKCFwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZzZXRJblNj
cm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBfcGFnZS0+
ZGV2aWNlU2NhbGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zm
c2V0OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDphbmltYXRl
ZF07CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBhbnl0aGlu
ZywgdGhlcmUgd291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRlIHNlbnQg
dG8gdGhlIGNvbnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtlZXAgdGhl
IGludmFsaWQgY29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAgICAgICAv
LyBUbyBzeW5jaHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2NyZWVuLCB3
ZSBzZW5kIHRoZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdlLT5yZXNl
bmRMYXN0VmlzaWJsZUNvbnRlbnRSZWN0cygpOworICAgICAgICAvLyBJZiBfc2Nyb2xsVmlldyB3
b24ndCBjaGFuZ2UsIHdlIHN0aWxsIG5lZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nlc3MgdGhhdCB0
aGUgYW5pbWF0aW9uIHN0b3BwZWQuCisgICAgICAgIGlmIChhbmltYXRlZCkgeworICAgICAgICAg
ICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9
IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgICAgICAgICBpZiAoY29v
cmRpbmF0b3IpCisgICAgICAgICAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290
Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CisgICAgICAg
IH0KICAgICB9CiB9CiAKQEAgLTI4NzksNiArMjg5MywxMCBAQCBzdGF0aWMgV2ViQ29yZTo6Rmxv
YXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVu
dE9mZgogLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9s
bFZpZXcgKilzY3JvbGxWaWV3CiB7CiAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGluZ107CisK
KyAgICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9y
ID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICBpZiAoY29vcmRpbmF0
b3IpCisgICAgICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOwogfQogCiAtICh2b2lkKV9zY3JvbGxW
aWV3RGlkSW50ZXJydXB0RGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRl
cm5hbC5oCmluZGV4IDQzNTA4MGYzMjQuLjVjYjVmNTgxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC05Nyw3
ICs5Nyw3IEBAIHN0cnVjdCBQcmludEluZm87CiAKIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFw
c2hvdD4pX3Rha2VWaWV3U25hcHNob3Q7CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9s
bFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdp
bjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luOworLSAodm9pZClfc2Nyb2xsVG9Db250
ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Ny
b2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6KEJPT0wp
YW5pbWF0ZWQ7CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJn
ZXRSZWN0IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNjcm9sbERp
c3RhbmNlOihmbG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFuY2U7CiAtIChkb3VibGUpX2luaXRpYWxT
Y2FsZUZhY3RvcjsKIC0gKGRvdWJsZSlfY29udGVudFpvb21TY2FsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlODQ4MjRmZDg1Li5kZTNkMzM2NzlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDggQEAgcHVibGljOgogICAg
IC8vIFRlbGwgdGhlIHZpZXcgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBwb3NpdGlvbiwgYW5kIHdo
ZXRoZXIgdGhpcyB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgogICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7CiAKKyAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4p
IHsgfQorCiAgICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiAobm90IG5l
Y2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwgYmVjYXVz
ZSBvZiBzY2FsaW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UG9p
bnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDM4MGYxMjQ0NDMuLjBhNDJmOTQ0OTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0y
MjQsOCArMjI0LDE0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29t
bWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAKICAgICAvLyBIYW5kbGUg
cmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVl
IHRyYW5zYWN0aW9uIGFmdGVyIGRpZENvbW1pdExheWVyVHJlZSgpCiAgICAgLy8gaGFzIHVwZGF0
ZWQgdGhlIHZpZXcgc2l6ZSBiYXNlZCBvbiB0aGUgY29udGVudCBzaXplLgotICAgIGlmIChyZXF1
ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpCi0gICAgICAgIG1f
d2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCkpOworICAg
IGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpIHsK
KyAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZv
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAsIGxheWVyVHJlZVRyYW5zYWN0
aW9uLnNjcm9sbE9yaWdpbigpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgICAg
ICwgcmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0V2l0aEFuaW1hdGlvbgorI2VuZGlmCisgICAg
ICAgICAgICApOworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogCiAg
ICAgaWYgKG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0KSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggNDgyM2Y3NmE5Ny4uMWQ0
MGE2YTZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6CiB9CiAK
IC8vIFRoaXMgY29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUuCi12b2lkIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGlu
Z05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRp
b24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKQor
dm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURp
ZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQm
IG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmll
d3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKIHsKICAg
ICAvLyBTY3JvbGwgdXBkYXRlcyBmb3IgdGhlIG1haW4gZnJhbWUgYXJlIHNlbnQgdmlhIFdlYlBh
Z2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cygpCiAgICAgLy8gc28gZG9uJ3Qgc2Vu
ZCB0aGVtIGhlcmUuCkBAIC0yMjIsMjEgKzIyMiw0MSBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJ
RAogICAgIG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVTY3JvbGxWaWV3RGlkU2Nyb2xsKCk7
CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fc2Nyb2xsaW5n
VHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpICYmICFpbnN0YW50U2Nyb2xsRGlk
U3RvcEFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworI2Vsc2UKICAgICBpZiAobV9zY3JvbGxp
bmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKCkpCiAgICAgICAgIHJldHVybjsK
KyNlbmRpZgogCiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OlNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoc2Nyb2xsZWROb2Rl
SUQsIG5ld1Njcm9sbFBvc2l0aW9uLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID09IFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpKTsKIH0KIAotdm9pZCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNj
cm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKK3ZvaWQgUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChT
Y3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFuaW1h
dGlvbikKIHsKICAgICBpZiAoc2Nyb2xsZWROb2RlSUQgPT0gcm9vdFNjcm9sbGluZ05vZGVJRCgp
ICYmIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbykgewogICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbElu
Zm8tPnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgPSB0cnVlOwogICAgICAgICBtX3JlcXVl
c3RlZFNjcm9sbEluZm8tPnJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGw7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgbV9y
ZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0V2l0aEFuaW1hdGlvbiA9IHdpdGhBbmltYXRpb247
CisjZW5kaWYKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwogICAgIH0KIH0KIAorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1Ry
ZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9s
bGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShzY3Jv
bGxlZE5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKSk7Cit9CisKK3ZvaWQgUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUo
cm9vdFNjcm9sbGluZ05vZGVJRCgpLCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsKK30K
KyNlbmRpZgorCiBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xs
aW5nVHJlZUFzVGV4dCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhNzY5NDNm
MjQuLjgxMTVlNDc3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuaApAQCAtNTUsOSArNTUsMTQgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5Jik7CiAgICAgdmlydHVhbCB+
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKTsKKyNlbmRpZgorCiAgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJvY2VzcyB0aGF0IHRoZSBz
Y3JvbGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlKQot
ICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3Qg
T3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJD
b3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLSAgICB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9z
aXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9y
dE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0
YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IGZhbHNlKTsKKyAgICB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSk7CiAKICAgICBXZWJDb3JlOjpU
cmFja2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3RyaW5nJiBl
dmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKIApAQCAtODAsNiArODUsOSBAQCBw
dWJsaWM6CiAgICAgc3RydWN0IFJlcXVlc3RlZFNjcm9sbEluZm8gewogICAgICAgICBib29sIHJl
cXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgeyB9OwogICAgICAgICBib29sIHJlcXVlc3RJc1By
b2dyYW1tYXRpY1Njcm9sbCB7IH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAg
Ym9vbCByZXF1ZXN0V2l0aEFuaW1hdGlvbiB7IH07CisjZW5kaWYKICAgICAgICAgV2ViQ29yZTo6
RmxvYXRQb2ludCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICB9OwogICAgIHZvaWQgY29t
bWl0U2Nyb2xsaW5nVHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJh
bnNhY3Rpb24mLCBSZXF1ZXN0ZWRTY3JvbGxJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJl
ZS5jcHAKaW5kZXggYWZhYmJjMWVhZS4uZTZlYjQ4YmQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdUcmVlLmNwcApAQCAtMTA0LDEyICsxMDQsMTYgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVl
OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYK
ICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkpCiAgICAg
ICAgIGxheW91dFZpZXdwb3J0T3JpZ2luID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZT4obm9kZSkubGF5b3V0Vmlld3BvcnQoKS5sb2NhdGlvbigpOwogCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xs
aW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5jdXJyZW50
U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24sIG5vZGUubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpICYmICFu
b2RlLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKTsKKyNlbHNlCiAgICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9k
ZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2lu
LCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyNlbmRpZgogfQogCi12b2lkIFJlbW90
ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5n
Tm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25z
dCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24pCiB7Ci0gICAgbV9zY3JvbGxpbmdDb29yZGluYXRv
clByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3Np
dGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3Jv
bGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgd2l0aEFuaW1hdGlvbik7
CiB9CiAKIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRl
U2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05v
ZGVJRCBub2RlSUQpCkBAIC0xNDMsNiArMTQ3LDEzIEBAIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4g
UmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9k
CiAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlE
KTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdl
KFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKQoreworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdU
cmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShub2RlSUQsIGlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cit9CisjZW5kaWYKKwogdm9pZCBSZW1vdGVTY3JvbGxp
bmdUcmVlOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2RlSUQg
bm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkKIHsKICAgICBt
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFu
Z2Uobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
aAppbmRleCAyM2JhYzA2YTNiLi4wZjllMDk0OTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVl
LmgKQEAgLTUyLDcgKzUyLDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5JiBzY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkgY29uc3QgeyByZXR1
cm4gbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5OyB9CiAKICAgICB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJiwgV2Vi
Q29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFdlYkNvcmU6OlNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb246OlN5bmMpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Nyb2xsaW5nVHJl
ZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGwpIG92ZXJyaWRlOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wg
d2l0aEFuaW1hdGlvbiA9IGZhbHNlKSBvdmVycmlkZTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKSBvdmVycmlkZTsKKyNlbmRpZgogCiAgICAgdm9pZCBjdXJyZW50U25hcFBv
aW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhv
cml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaAppbmRl
eCBlNjM3ZDYxNTMyLi4wMGI0ZGJjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9z
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaApAQCAtNTcsNiArNTcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxEaWRFbmQoKSBjb25zdDsKICAgICB2b2lkIHNjcm9s
bFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxWaWV3RGlk
U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9mZnNldCwgYm9vbCBpblVz
ZXJJbnRlcmFjdGlvbik7CisgICAgdm9pZCBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0
aW9uKCk7CiAKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKHVuc2ln
bmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBjb25zdDsKICAgICBDQUxheWVyICpz
Y3JvbGxMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5tbQppbmRleCBlNzY4OTgzNzU4Li44NDg4NjNhODFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCkBA
IC0xNTIsNiArMTUyLDExIEBACiAgICAgfQogfQogCistICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRT
Y3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKK3sKKyAgICBfc2Ny
b2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlv
bigpOworfQorCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogLSAoQ0dQb2ludClfc2Nyb2xs
VmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNldEZvck9mZnNldDoo
Q0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRpb24gc3RhcnRQb2lu
dDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludClsb2NhdGlvbkluVmlldyBo
b3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2FsVmVsb2NpdHk6KGlu
b3V0IGRvdWJsZSAqKXZ2CiB7CkBAIC0zMDAsMTUgKzMwNSwzNiBAQCB2b2lkIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25z
dCBTY3JvbAogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHko
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpIHsK
ICAgICAgICAgYXV0byBzY3JvbGxUeXBlID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpID8gU2Nyb2xsVHlwZTo6
UHJvZ3JhbW1hdGljIDogU2Nyb2xsVHlwZTo6VXNlcjsKLSAgICAgICAgc2Nyb2xsaW5nTm9kZSgp
LnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBz
Y3JvbGxUeXBlKTsKKyAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ05vZGUoKS5z
ZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwodHJ1ZSk7CisgICAgICAgIC8vIElmIHRoZSBzY3JvbGwg
cG9zaXRpb25zIGFyZSBub3QgdGhlIHNhbWUsIHRoZXJlJ3MgYSBwb3NzaWJpbGl0eSB0aGF0IHRo
ZSBzY3JvbGwgb2Zmc2V0IGZyb20gdGhlIFdlYiBwcm9jZXNzIGhhcyBiZWVuIG92ZXJyaWRkZW4u
CisgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIHNjcm9sbCBwb3NpdGlvbiBuZWVkIHRvIGJl
IHNlbnQgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBib29sIHNob3VsZFN5bmNTY3JvbGxQ
b3NpdGlvbiA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxQb3NpdGlvbigpICE9IHNjcm9sbGlu
Z05vZGUoKS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgp
LnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBz
Y3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywgc2hvdWxkU3lu
Y1Njcm9sbFBvc2l0aW9uKTsKICAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpCiB7Ci0gICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW3Njcm9sbFZpZXcoKSBzZXRDb250ZW50T2Zm
c2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOwotICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKKyAgICBib29sIGFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBzY3JvbGxp
bmdOb2RlKCkuc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpOworICAgIGJvb2wgbmVlZFRvU3Rv
cEFuaW1hdGlvbiA9IHNjcm9sbGluZ05vZGUoKS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0
aW9uKCk7CisgICAgaWYgKG5lZWRUb1N0b3BBbmltYXRpb24gJiYgYW5pbWF0aW9uSW5Qcm9ncmVz
cykgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9s
bFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbFZpZXcoKS5jb250ZW50T2Zmc2V0IGFuaW1h
dGVkOk5PXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0KKworICAg
IGlmIChzY3JvbGxpbmdOb2RlKCkucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkpIHsKKyAgICAgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29u
dGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpIGFuaW1hdGVk
OllFU107CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKworICAgICAgICBzY3Jv
bGxpbmdOb2RlKCkuc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyh0cnVlKTsKKyAgICB9IGVs
c2UgaWYgKCFhbmltYXRpb25JblByb2dyZXNzIHx8IG5lZWRUb1N0b3BBbmltYXRpb24pIHsKKyAg
ICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkg
c2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpXTsK
KyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0KIH0KIAogdm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxXaWxsU3RhcnQoKSBjb25z
dApAQCAtMzM1LDYgKzM2MSwxNSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludAogICAgIHNjcm9s
bGluZ05vZGUoKS53YXNTY3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKHNjcm9sbFBvc2l0aW9u
LCB7IH0sIGluVXNlckludGVyYWN0aW9uID8gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6
U3luYyA6IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiB9CiAKK3ZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZEVuZFNjcm9s
bGluZ0FuaW1hdGlvbigpCit7CisgICAgYXV0byYgbm9kZSA9IHNjcm9sbGluZ05vZGUoKTsKKyAg
ICBpZiAoIShub2RlLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpICYmIG5vZGUuc2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcygpKSkgeworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJl
ZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9kZS5zY3JvbGxpbmdO
b2RlSUQoKSwgZmFsc2UpOworICAgICAgICBub2RlLnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MoZmFsc2UpOworICAgIH0KK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25lZCBob3Jp
em9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3QKIHsKICAgICBpZiAobV91cGRhdGluZ0Zy
b21TdGF0ZU5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCBkYjJjZTA3OWNhLi5kMDlmNjA3YWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTE3NjcsOSArMTc2NywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
Vmlld05lZWRzRGlzcGxheShjb25zdCBSZWdpb24mIHJlZ2lvbikKICAgICBwYWdlQ2xpZW50KCku
c2V0Vmlld05lZWRzRGlzcGxheShyZWdpb24pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9p
bnQmIHNjcm9sbE9yaWdpbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U2Nyb2xsKGNvbnN0
IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2lu
LCBjb25zdCBib29sIHdpdGhBbmltYXRpb24pCiB7Ci0gICAgcGFnZUNsaWVudCgpLnJlcXVlc3RT
Y3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgaWYgKHdpdGhBbmltYXRp
b24pCisgICAgICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihzY3Jv
bGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2VDbGllbnQo
KS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOwogfQogCiBXZWJD
b3JlOjpGbG9hdFBvaW50IFdlYlBhZ2VQcm94eTo6dmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYWUzODUyMjIxZC4uYWYw
N2VhNDkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTYxMyw3
ICs2MTMsNyBAQCBwdWJsaWM6CiAgICAgUGFnZUNsaWVudCYgcGFnZUNsaWVudCgpIGNvbnN0Owog
CiAgICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpOwot
ICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbik7CisgICAgdm9p
ZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBib29sIHdpdGhBbmltYXRp
b24gPSBmYWxzZSk7CiAgICAgCiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9z
aXRpb24oKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAppbmRleCBkNmM4YzM4ZDRhLi41MTk4ZWY0NDJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtNTcsNiArNTcs
NyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBjcmVh
dGVEcmF3aW5nQXJlYVByb3h5KFdlYlByb2Nlc3NQcm94eSYpIG92ZXJyaWRlOwogICAgIHZvaWQg
c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKSBvdmVycmlkZTsKICAg
ICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIG92ZXJyaWRlOwor
ICAgIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmln
aW4pIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9u
KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggZGM5Zjc0YzQ5YS4u
MmMzMGM0YmMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbQpAQCAtOTUsNyArOTUsMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0
Vmlld05lZWRzRGlzcGxheShjb25zdCBSZWdpb24mKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpy
ZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludCYgc2Nyb2xsT3JpZ2luKQogewotICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNj
cm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW5dOwor
ICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0
aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6Tk9dOworfQorCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKK3sKKyAgICBb
bV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBz
Y3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOllFU107CiB9CiAKIFdlYkNvcmU6OkZs
b2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDhlNjQ5
MzU1NDUuLjNkMzQ1ZDc2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC03Myw2ICs3MywxMCBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHN5bmNMYXll
clBvc2l0aW9uKTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5v
ZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25l
ZCB2ZXJ0aWNhbCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJ
RCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCisKICAgICBXZWJQ
YWdlKiBtX3dlYlBhZ2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KaW5kZXggMmMwOThhMTA5
Ny4uNTM3ZmQzNGQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUsOSBAQAog
bWVzc2FnZXMgLT4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IgewogICAgIFNjcm9sbFBvc2l0
aW9uQ2hhbmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCBXZWJDb3JlOjpGbG9hdFBvaW50IHNj
cm9sbFBvc2l0aW9uLCBib29sIHN5bmNMYXllclBvc2l0aW9uKTsKICAgICBDdXJyZW50U25hcFBv
aW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgdW5zaWduZWQgaG9yaXpv
bnRhbCwgdW5zaWduZWQgdmVydGljYWwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwg
Ym9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4IDgzNTQ0MWQzMTkuLjY4OWQ1NTYyNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IubW0KQEAgLTEwNCw2ICsxMDQsMTMgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
cjo6Y3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZShTY3JvbGxpbmcKICAgICBz
ZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhub2RlSUQsIGhvcml6b250YWwsIHZlcnRpY2FsKTsK
IH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mp
Cit7CisgICAgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhub2RlSUQsIGlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCmluZGV4IGI5ZGFlMmNlMTAuLmJjZjVlYjhhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVj
aGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlv
ciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAg
ICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBBZGQg
cnVuIHRpbWUgZmxhZyBmb3IgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nLgorCisgICAgICAgICog
V2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogSGFuZGxlIENTU09NVmlld1Ntb290
aFNjcm9sbGluZyBieS4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAg
ICAgICAoW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKTogRGlzYWJsZSBDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmcgYnkgZGVmYXVsdC4KKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZF0pOiBHZXR0ZXIuCisgICAgICAgICgtW1dlYlByZWZl
cmVuY2VzIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6XSk6IFNldHRlci4KKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0p
OgorCiAyMDE5LTEyLTA5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbmFtZSBtZWRpYSBpbiB0aGUgR1BVIHByb2Nlc3MgcHJlZmVyZW5jZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmgKaW5kZXggNDQxYjVhODc3Ni4uYzY3OWZiZDZkMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oCkBAIC0xODgsNiArMTg4LDcgQEAKICNkZWZpbmUgV2ViS2l0RGlyZWN0b3J5VXBs
b2FkRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkIgog
I2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIKICNk
ZWZpbmUgV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFJlbW90ZVBsYXli
YWNrRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRSZW1vdGVQbGF5YmFja0VuYWJsZWQiCiAj
ZGVmaW5lIFdlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U3Vi
dGxlQ3J5cHRvRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDQ3ZjdjNzVkZGEuLmNkMjM2NzQ0ZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAt
NjYzLDYgKzY2Myw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgICAgIEBZRVMsIFdlYktpdENT
U09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAorICAgICAgICBATk8sIFdl
YktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAg
ICBAWUVTLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlya0tleSwKICAg
ICAgICAgQE5PLCBXZWJLaXRBbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVk
ZW50aWFsc0tleSwKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtMzE4MSw2ICszMTgyLDE2
IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBbc2VsZiBf
c2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNl
dENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6KEJPT0wpZmxhZworeworICAgIFtzZWxm
IF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiAtIChCT09MKXdlYkFuaW1hdGlvbnNFbmFibGVk
CiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0V2ViQW5pbWF0aW9u
c0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDU5NzU4ZTIzMzUuLjA5
MTE5MzFkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjMyLDYgKzYzMiw3IEBAIGV4dGVybiBOU1N0
cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9u
IFdFQktJVF9ERVBSCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHZpc3VhbFZpZXdwb3J0
QVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbGFyZ2VJbWFnZUFz
eW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYW5pbWF0ZWRJ
bWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgamF2
YVNjcmlwdE1hcmt1cEVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KaW5kZXggNDdhYWUzMjhkYi4uNjY3MDM1OWUxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjk5Miw2ICsyOTkyLDcgQEAgc3RhdGlj
IGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmsoKQogICAgIHNldHRpbmdzLnNl
dFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgdmlzdWFsVmlld3BvcnRBUElF
bmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0U3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxl
ZChbcHJlZmVyZW5jZXMgc3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZF0pOwogICAgIHNl
dHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQoW3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0XSk7CiAKICAgICBzd2l0Y2ggKFtwcmVmZXJlbmNlcyBzdG9yYWdlQmxvY2tpbmdQ
b2xpY3ldKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNDIwMTRkOTlkNS4uZTdj
YTZmNzIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisy
MDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkg
RnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmlkbDogSGFuZGxlIHNtb290aCBzY3JvbGxpbmcgb3B0aW9uLgorICAgICAgICAqIFdl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNl
cy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0
U2V0dGluZ3MpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldENTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6IERpdHRvLgor
ICAgICAgICAqIFdlYlZpZXcuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeVBy
ZWZlcmVuY2VzQ2hhbmdlZCk6CisKIDIwMTktMTItMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBQYWdlQ29uZmlndXJhdGlvbjo6ZHJhZ0NsaWVudCBzaG91bGQg
dXNlIGEgc21hcnQgcG9pbnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
SW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5kZXggYTcxNzYy
MjIxYi4uY2NmZjlmMDU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50
ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0yMjMsNiAr
MjIzLDggQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU2IDogSVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZTUKICAgICBIUkVTVUxUIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbaW5d
IEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
KFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Nyb2xsaW5n
QVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOworICAgIEhSRVNVTFQgc2V0
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAg
SFJFU1VMVCBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKiBlbmFi
bGVkKTsKICAgICBIUkVTVUxUIHNldEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChbaW5dIEJPT0wg
ZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoW291dCwgcmV0
dmFsXSBCT09MICplbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggMDk5Mzc0MjBlNC4uMDhjNDU2NzI3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKQEAgLTIwOSw2ICsyMDksNyBAQAogI2RlZmluZSBXZWJLaXRTZXJ2ZXJUaW1pbmdFbmFibGVk
UHJlZmVyZW5jZUtleSAiV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZCIKIAogI2RlZmluZSBXZWJL
aXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0Q1NTT01W
aWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGlu
Z0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5j
ZUtleSAiV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkIgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggOTVlYmVhMjY4Yy4uYzhlMjI1YWE0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMzM5LDYgKzMz
OSw4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MoKQog
CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFJlc2l6ZU9i
c2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCisgICAgQ0ZE
aWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdENTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKKwogICAgIENG
RGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRDb3JlTWF0aE1MRW5hYmxl
ZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRk
VmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkUHJl
ZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CkBAIC0yMjgzLDYgKzIyODUsMjAgQEAgSFJF
U1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0Q29yZU1hdGhNTEVuYWJsZWQoQk9PTCBlbmFibGVkKQog
ICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCit7CisgICAgaWYgKCFl
bmFibGVkKQorICAgICAgICByZXR1cm4gRV9QT0lOVEVSOworICAgICplbmFibGVkID0gYm9vbFZh
bHVlRm9yS2V5KFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNl
S2V5KTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChCT09MIGVuYWJsZWQpCit7CisgICAgc2V0
Qm9vbFZhbHVlKFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNl
S2V5LCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19PSzsKK30KKwogSFJFU1VMVCBXZWJQcmVmZXJl
bmNlczo6cmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkKIHsK
ICAgICBpZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMu
aAppbmRleCAxZGFhYTczMDI1Li42MDY2ZTQ2NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlByZWZlcmVuY2VzLmgKQEAgLTI3MSw2ICsyNzEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChC
T09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoQk9PTCk7CisgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Ntb290aFNjcm9sbGlu
Z0VuYWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoX091
dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRGZXRj
aEFQSUtlZXBBbGl2ZUVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChfT3V0XyBCT09MKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGEwNDQ4YmIwMTMuLmQyYjIyZjA0NzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01MzE4LDYgKzUzMTgsMTEgQEAgSFJFU1VM
VCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90
aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3
U2Nyb2xsaW5nQVBJRW5hYmxlZCghIWVuYWJsZWQpOwogCisgICAgaHIgPSBwcmVmc1ByaXZhdGUt
PkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoJmVuYWJsZWQpOworICAgIGlmIChGQUlM
RUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZCghIWVuYWJsZWQpOworCiAgICAgaHIgPSBwcmVmZXJlbmNlcy0+
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAg
ICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAwMGRhYmU3M2Y0Li5lOWExMjhiMDI2IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOp
cmljIFdhbmcuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHA6Cisg
ICAgICAgIChUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMpOiBQYXJzZSBDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmg6
IEFkZCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkLCBkaXNhYmxlZCBieSBkZWZhdWx0
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAg
ICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOiBTZXQgQ1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZCBmcm9tIHRoZSB0ZXN0IG9wdGlvbnMuCisKIDIwMTktMTItMTAgIFBl
ciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBBUEkgdGVz
dCBmYWlsdXJlIGFmdGVyIHIyNTMzNTEKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApp
bmRleCA3YzlhZTU5OTRhLi4yMzdjOTg4NzhmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuY3BwCkBAIC0xNDIsNiArMTQyLDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNvbnN0
IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUKICAgICAg
ICAgICAgIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVy
VmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpSZXNp
emVPYnNlcnZlckVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlUmVzaXplT2JzZXJ2ZXIgPSBw
YXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChrZXkg
PT0gImV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIikKKyAgICAg
ICAgICAgIGVuYWJsZUNTU09NVmlld1Ntb290aFNjcm9sbGluZyA9IHBhcnNlQm9vbGVhblRlc3RI
ZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVudGFs
OkNvcmVNYXRoTUxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZUNvcmVNYXRoTUwgPSBwYXJz
ZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0g
ImV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZCIpCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE9wdGlvbnMuaAppbmRleCBlNTMzNWU4MzExLi5mN2U4ZDI5MTFkIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RPcHRpb25zLmgKQEAgLTUwLDYgKzUwLDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsK
ICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAgIGJvb2wgYWRDbGlja0F0
dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVSZXNpemVPYnNlcnZl
ciB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgZW5hYmxlQ29yZU1hdGhNTCB7IGZhbHNlIH07CiAgICAgYm9vbCBl
bmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUFzeW5j
Q2xpcGJvYXJkQVBJIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQppbmRleCBjY2ZmZTA1NWQzLi42N2NhZWE3MThkIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMDI5LDYgKzEwMjksNyBAQCBzdGF0
aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25z
JiBvcHRpb25zKQogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0aW9ucy5l
bmFibGVDU1NMb2dpY2FsOwogICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJs
ZWQgPSBvcHRpb25zLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CiAgICAgcHJlZmVyZW5jZXMu
cmVzaXplT2JzZXJ2ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXNpemVPYnNlcnZlcjsKKyAg
ICBwcmVmZXJlbmNlcy5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkID0gb3B0aW9ucy5l
bmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmc7CiAgICAgcHJlZmVyZW5jZXMuY29yZU1hdGhN
TEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNvcmVNYXRoTUw7CiAgICAgcHJlZmVyZW5jZXMucmVx
dWVzdElkbGVDYWxsYmFja0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJlcXVlc3RJZGxlQ2FsbGJh
Y2s7CiAgICAgcHJlZmVyZW5jZXMuYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkID0gb3B0aW9ucy5l
bmFibGVBc3luY0NsaXBib2FyZEFQSTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385389</attachid>
            <date>2019-12-11 07:25:06 -0800</date>
            <delta_ts>2019-12-11 09:06:23 -0800</delta_ts>
            <desc>native-animation-for-review</desc>
            <filename>upload_29.diff</filename>
            <type>text/plain</type>
            <size>152349</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MmMyMWFjMDgxLi43NTQzNzBiOGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2lu
ZyBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQu
IEluIG9yZGVyIHRvIHRlc3QgcHJvcGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9y
IHRlc3QgdG8gZmFzdC9zY3JvbGxpbmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2
ZVNjcm9sbGluZyk6CisgICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9s
bE5vZGUpOgorICAgICAgICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0
bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKIDIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0
aGUgV2ViIHByb2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uMGEwOTY4ZTAyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzCkBAIC0w
LDAgKzEsODcgQEAKK2Z1bmN0aW9uIG9ic2VydmVTY3JvbGxpbmcoZWxlbWVudHMsIGNhbGxiYWNr
KSB7CisgIGlmICghQXJyYXkuaXNBcnJheShlbGVtZW50cykpCisgICAgICBlbGVtZW50cyA9IFtl
bGVtZW50c107CisgIHZhciBsYXN0Q2hhbmdlZEZyYW1lID0gMDsKKyAgdmFyIGxhc3RMZWZ0ID0g
bmV3IE1hcCgpOworICB2YXIgbGFzdFRvcCA9IG5ldyBNYXAoKTsKKyAgZWxlbWVudHMuZm9yRWFj
aCgoZWxlbWVudCkgPT4geworICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9s
bExlZnQpOworICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsVG9wKTsKKyAg
fSk7CisgIGZ1bmN0aW9uIHRpY2soZnJhbWVzKSB7CisgICAgLy8gV2UgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lIGVpdGhlciBmb3IgNTAwIGZyYW1lcyBvciB1bnRpbCAyMCBmcmFtZXMgd2l0aAorICAg
IC8vIG5vIGNoYW5nZSBoYXZlIGJlZW4gb2JzZXJ2ZWQuCisgICAgaWYgKGZyYW1lcyA+PSA1MDAg
fHwgZnJhbWVzIC0gbGFzdENoYW5nZWRGcmFtZSA+IDIwKSB7CisgICAgICBjYWxsYmFjayh0cnVl
KTsKKyAgICB9IGVsc2UgeworICAgICAgdmFyIHNjcm9sbEhhcHBlbmVkID0gZWxlbWVudHMuc29t
ZSgoZWxlbWVudCkgPT4geworICAgICAgICByZXR1cm4gZWxlbWVudC5zY3JvbGxMZWZ0ICE9IGxh
c3RMZWZ0LmdldChlbGVtZW50KSB8fCBlbGVtZW50LnNjcm9sbFRvcCAhPSBsYXN0VG9wLmdldChl
bGVtZW50KTsKKyAgICAgIH0pOworICAgICAgaWYgKHNjcm9sbEhhcHBlbmVkKSB7CisgICAgICAg
IGxhc3RDaGFuZ2VkRnJhbWUgPSBmcmFtZXM7CisgICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVs
ZW1lbnQpID0+IHsKKyAgICAgICAgICBsYXN0TGVmdC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3Jv
bGxMZWZ0KTsKKyAgICAgICAgICBsYXN0VG9wLnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbFRv
cCk7CisgICAgICAgIH0pOworICAgICAgICBjYWxsYmFjayhmYWxzZSk7CisgICAgICB9CisgICAg
ICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljay5iaW5kKG51bGwsIGZyYW1lcyArIDEpKTsKKyAg
ICB9CisgIH0KKyAgdGljaygwKTsKK30KKworZnVuY3Rpb24gd2FpdEZvclNjcm9sbEVuZChlbGVt
ZW50cykgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICBvYnNlcnZl
U2Nyb2xsaW5nKGVsZW1lbnRzLCAoZG9uZSkgPT4geworICAgICAgaWYgKGRvbmUpCisgICAgICAg
IHJlc29sdmUoKTsKKyAgICB9KTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0U2Nyb2xsKHNj
cm9sbGluZ0VsZW1lbnQpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhl
IGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsKKyAg
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwgYmVoYXZpb3I6ICJpbnN0
YW50In0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhlIGVsZW1lbnQgcG9z
aXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOworICBzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rp
b24gc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgY2xhc3NOYW1lKSB7CisgIHN0eWxl
ZEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYXV0b0JlaGF2aW9yIiwgInNtb290aEJlaGF2aW9y
Iik7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpOworfQorCitmdW5j
dGlvbiBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlv
ciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdz
ID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7Cisg
IHN3aXRjaCAoc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBjYXNlICJzY3JvbGxJbnRvVmlldyI6Cisg
ICAgICBhcmdzLmlubGluZSA9ICJzdGFydCI7CisgICAgICBhcmdzLmJsb2NrID0gInN0YXJ0IjsK
KyAgICAgIGVsZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyhhcmdzKTsKKyAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0Owor
ICAgICAgYXJncy50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3A7CisgICAgICBzY3JvbGxpbmdFbGVt
ZW50W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKKyAgICAgIGJyZWFrOworICB9Cit9CisKK2Z1bmN0
aW9uIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlv
ciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdz
ID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7Cisg
IGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7CisgIGFyZ3MudG9wID0gZWxlbWVudFRv
UmV2ZWFsVG9wOworICBzY3JvbGxpbmdXaW5kb3dbc2Nyb2xsRnVuY3Rpb25dKGFyZ3MpOworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44ZDRjYTY0MTU1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNz
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgSW5zdGFudCBzY3JvbGxpbmcg
b2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAorUEFTUyBTbW9vdGgg
c2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLjM1YzY1MDNhYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKQEAgLTAsMCAr
MSw1MiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBkZWZh
dWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMg
V2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwt
YmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xs
YWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdo
dDogMjAwcHg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlk
PSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6
IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVk
ZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9j
azsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50
VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAt
MTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3Nw
YW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgc2Nyb2xsaW5nRWxlbWVudCA9
IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBl
bGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIHZhciBzY3JvbGxGdW5jdGlvbiA9ICJzY3JvbGwi
OworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50IiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgIH0sICJJbnN0YW50IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdp
dGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJTbW9vdGgg
c2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciIpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41M2E5NjFlZjU2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACisKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhl
ciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQzOGRm
ZmRlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBF
IGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlv
ciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87Cisg
ICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgIH0KKyAgLmF1dG9CZWhhdmlv
ciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7
CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJs
b2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4K
KyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9
ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9z
cGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFj
a2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2
YXIgc2Nyb2xsaW5nRWxlbWVudCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIHN0eWxlZEVsZW1lbnQg
PSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIg
ZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNj
cm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsK
KyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGws
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
cmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9u
LCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOwor
CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1
dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNj
cm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAg
IH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgIH0pOworICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICB9KTsK
KworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVs
ZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xs
aW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45N2Nh
ZWEyN2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzcgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQzMjVi
NGI5ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEsMTY5IEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dT
Y3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMn
IGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUg
cm9vdCBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250
ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIg
aHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZp
b3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
b20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBt
YXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBh
dXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9v
dGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdl
Q29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+Cisg
IDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlz
cGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5k
OiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFz
eW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50LCBzdHlsZWRF
bGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5j
dGlvbigpIHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dDsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBh
Z2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJw
eCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVp
Z2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cu
aW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5p
bm5lckhlaWdodCkgKiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVu
dFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVs
ZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygo
KSA9PiB7IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOyB9KTsKKworICAgIFsic2Nyb2xs
IiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Ny
b2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5n
RWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZl
KCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsg
cmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0
aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7Cisg
ICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGws
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3Jv
bGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9s
bEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAg
ICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsK
KworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhC
ZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZv
clNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQg
LyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5z
dGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIp
OworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXdpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MC4uMzgyMzg1YWFiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjkgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290
aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBv
biB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uOTA1N2IwY2QxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApA
QCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRl
cm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVz
dGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIG9uIHRoZSB3
aW5kb3cgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCxtaW5pbXVtLXNjYWxlPTEsaW5pdGlhbC1zY2FsZT0xIj4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2
aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9y
IHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBhZ2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4KKyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxz
Y3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0gYXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAg
dmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBh
Z2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nV2luZG93
ID0gd2luZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7
CisgICAgcGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkg
KiA1ICsgInB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cu
aW5uZXJIZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCAr
IHdpbmRvdy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsg
d2luZG93LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQg
PSBlbGVtZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUu
dG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2Nh
bGxiYWNrKCgpID0+IHsgcmVzZXRTY3JvbGxGb3JXaW5kb3cod2luZG93KTsgfSk7CisKKyAgICBb
InNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9u
KSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZv
cldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
c2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVh
bFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkg
PT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVu
KCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVu
Y3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9s
bEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
Mik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5n
Iik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDAp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5n
IHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9s
bGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi40NDNhODIwZTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHNjcm9sbEludG9WaWV3IHdp
dGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
Y3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDViNWQ4ZDdjNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50
b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciB3aXRoIHNjcm9s
bEludG9WaWV3IGZvciBuZXN0ZWQgc2Nyb2xsaW5nIG5vZGVzPC90aXRsZT4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLD
qWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVm
LXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisg
IC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICBoZWlnaHQ6IDIwMHB4Owor
ICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
IH0KKyAgLmdyYWRpZW50IHsKKyAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVn
LCByZWQsIGdyZWVuKTsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxk
aXY+CisgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0
aDogNDUwcHgiPgorICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9v
dGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiA0MDBweCI+CisgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
PGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAzNTBweCI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMzAw
cHgiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJs
ZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiAyNTBweCI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAy
MDBweCI+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImVs
ZW1lbnRUb1JldmVhbCIgc3R5bGU9IndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICA8
L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAg
PGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgPC9kaXY+Cisg
ICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1
MDBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
Ly8gVGhlIENTU09NLVZpZXcgc3BlYyBhbmQgaW1wbGVtZW50YXRpb25zIGZvbGxvdyBkaWZmZXJl
bnQgYWxnb3JpdGhtcyAoc2Nyb2xscyBwZXJmb3JtZWQgaW4gcGFyYWxsZWwsIGFzIGlubmVyLXRv
LW91dGVyIHNlcXVlbmNlIG9yIGFzIG91dGVyLXRvLWlubmVyIHNlcXVlbmNlKS4KKyAgLy8gU2Vl
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMTI3CisgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgdmFyIGRpdnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
c2Nyb2xsYWJsZSIpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGFibGVEaXYpOworICAgICAgfSk7CisgICAgICBlbGVt
ZW50VG9SZXZlYWwuc2Nyb2xsSW50b1ZpZXcoe2lubGluZTogInN0YXJ0IiwgYmxvY2s6ICJzdGFy
dCIsIGJlaGF2aW9yOiAiYXV0byJ9KTsKKyAgICAgIHZhciBzY3JvbGxUb3AgPSBuZXcgTWFwKCk7
CisgICAgICB2YXIgaXNTbW9vdGggPSBuZXcgTWFwKCk7CisgICAgICBkaXZzLmZvckVhY2goKHNj
cm9sbGFibGVEaXYpID0+IHsKKyAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2LCBz
Y3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgIGlzU21vb3RoLnNldChzY3JvbGxhYmxl
RGl2LCBzY3JvbGxhYmxlRGl2LmNsYXNzTGlzdC5jb250YWlucygic21vb3RoQmVoYXZpb3IiKSk7
CisgICAgICAgIC8vIElmIHNjcm9sbCBvcGVyYXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIGluIHBh
cmFsbGVsLCBzY3JvbGwgYm94ZXMgd2l0aCBpbnN0YW50IGJlaGF2aW9yIG1pZ2h0IGFsc28gbmVl
ZCB0byB3YWl0IGZvciB0aGVpciBwcmVkZWNlc3NvcnMuCisgICAgICAgIGlmIChpc1Ntb290aC5n
ZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxUb3Au
Z2V0KHNjcm9sbGFibGVEaXYpLCA1MDAsICJFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNo
b3VsZCBub3Qgc2Nyb2xsIGltbWVkaWF0ZWx5Iik7CisgICAgICB9KTsKKworICAgICAgb2JzZXJ2
ZVNjcm9sbGluZyhBcnJheS5mcm9tKGRpdnMpLCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRy
eSB7CisgICAgICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKHNjcm9sbFRvcC5nZXQoc2Nyb2xsYWJsZURpdiks
IHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsK
KyAgICAgICAgICAgIGlmICghaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAg
ICAgICBhc3NlcnRfYW55KGFzc2VydF9lcXVhbHMsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCBb
MCwgNTAwXSwgIkVsZW1lbnQgd2l0aCBpbnN0YW50IGJlaGF2aW9yIHNob3VsZCBqdW1wIHRvIHRo
ZSBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsIDUwMCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2
LCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0gY2F0
Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9u
ZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgInNjcm9s
bEludG9WaWV3IHdpdGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhh
dmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44
NTVhNmE2MTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIwIEBACisKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3Ro
IHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BB
U1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9t
ICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRv
ICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4g
cGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5n
IHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxU
bygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9s
bGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20g
KDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNj
cm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGgg
c2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAK
K1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBm
cm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwg
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0
byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRp
b25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUw
MCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAs
IDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hl
biBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmcgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxp
bmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1w
b3NpdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wYTQx
YjhiMDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTAsMCArMSwxNTEgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsIHBvc2l0
aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yPC90aXRs
ZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3
aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92
ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAw
MHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywg
cmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3
aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1Jl
dmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4
OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4K
KyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIEZvciBzbW9vdGggYmVoYXZpb3IsIGV2
b2x1dGlvbiBvZiBzY3JvbGwgcG9zaXRpb25zIG92ZXIgdGltZSBpcyBub3Qgc3BlY2lmaWVkIGJ5
IENTU09NIFZpZXcuCisgIC8vIFRoaXMgdGVzdCByZWxpZXMgb24gdGhlIG1pbmltYWwgYXNzdW1w
dGlvbiB0aGF0IHNjcm9sbCBwb3NpdGlvbiBmdW5jdGlvbnMgYXJlIG1vbm90b25pYy4KKyAgWyJz
Y3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNo
KGZ1bmN0aW9uKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgW3tsZWZ0OjAsIHRvcDowfSwge2xlZnQ6
MTAwMCwgdG9wOjB9LCB7bGVmdDowLCB0b3A6NTAwfSwge2xlZnQ6MTAwMCwgdG9wOjUwMH1dLmZv
ckVhY2goKGluaXRpYWwpID0+IHsKKyAgICAgIHZhciBmaW5hbExlZnQgPSA1MDA7CisgICAgICB2
YXIgZmluYWxUb3AgPSAyNTA7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAg
c2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIGluaXRpYWwubGVm
dCwgaW5pdGlhbC50b3ApOworICAgICAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNj
cm9sbExlZnQ7CisgICAgICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCBpbml0aWFsLmxlZnQsICJTY3JvbGxM
ZWZ0IHNob3VsZCBiZSBhdCBpbml0aWFsIHBvc2l0aW9uIik7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhvbGRUb3AsIGluaXRpYWwudG9wLCAiU2Nyb2xsVG9wIHNob3VsZCBiZSBhdCBpbml0aWFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgaWYgKHNjcm9sbEZ1bmN0aW9uID09PSAic2Nyb2xsQnki
KQorICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAi
c21vb3RoIiwgZmluYWxMZWZ0IC0gaW5pdGlhbC5sZWZ0LCBmaW5hbFRvcCAtIGluaXRpYWwudG9w
KTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwg
c2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBmaW5hbExlZnQsIGZpbmFsVG9wKTsKKyAgICAgICAg
ICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Ny
b2xsTGVmdDsKKyAgICAgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxU
b3A7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoTWF0aC5oeXBvdChmaW5h
bExlZnQgLSBuZXdMZWZ0LCBmaW5hbFRvcCAtIG5ld1RvcCksIE1hdGguaHlwb3QoZmluYWxMZWZ0
IC0gb2xkTGVmdCwgZmluYWxUb3AgLSBvbGRUb3ApLCAiU2Nyb2xsIHBvc2l0aW9uIHNob3VsZCBt
b3ZlIHRvd2FyZHMgdGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIGlmIChkb25l
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCBmaW5hbExlZnQsICJT
Y3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3VG9wLCBmaW5hbFRvcCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2gg
ZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBvbGRMZWZ0
ID0gbmV3TGVmdDsKKyAgICAgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICAgICAg
fSBjYXRjaChlKSB7CisgICAgICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgICAgfSwgYFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoJHtpbml0aWFsLmxlZnR9LCAke2luaXRpYWwudG9w
fSkgdG8gKCR7ZmluYWxMZWZ0fSwgJHtmaW5hbFRvcH0pIHVzaW5nICR7c2Nyb2xsRnVuY3Rpb259
KCkgYCk7CisgICAgfSk7CisgIH0pOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRT
Y3JvbGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZh
bHNlOworICAgICAgdmFyIHNjcm9sbERpcmVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKKyAgICAgIHZh
ciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0g
b3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7
CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJm
bG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNj
cm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAg
IHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmIChpbml0
aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgaWYgKHNjcm9sbERpcmVjdGlvbkNoYW5n
ZWQpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRMZWZ0LCBu
ZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFz
c2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMg
ZGVjcmVhc2luZyIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgIHNjcm9sbERp
cmVjdGlvbkNoYW5nZWQgPSBuZXdMZWZ0IDw9IG9sZExlZnQgJiYgbmV3VG9wIDw9IG9sZFRvcDsK
KyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFs
KG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAg
ICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRv
cCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAm
JiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBz
Y3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIs
IDUwMCwgMjUwKTsKKyAgICAgICAgICAgICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bExlZnQ7CisgICAgICAgICAgICAgICAgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsK
KyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBy
ZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3As
IDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAg
ICB9CisgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3
VG9wOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7Cisg
ICAgfSk7CisgIH0sICJTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Ny
b2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICByZXNldFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxT
Y3JvbGxBYm9ydGVkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3Ro
IiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5j
dGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoIWluaXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAg
ICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9s
bExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFu
X2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAg
ICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAwICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAg
ICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFsIHNjcm9sbC4KKyAgICAgICAgICAgICAgICBp
bml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShv
dmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIDUwMCwgMjUwKTsKKyAgICAgICAgICAg
ICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAg
bmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0
aW9uIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9s
bFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9u
Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Nyb2xsVG9wIHNo
b3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9s
ZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBj
YXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChk
b25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFuIGlu
c3RhbnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAuLjI3OTlmZGNjMjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzcgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBz
Y3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BB
U1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45NmQxMWFiOTYyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1s
PjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0Pgor
PGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIgd2lkdGg9IjQw
MHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgorICA8c3R5bGU+
CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRvQmVoYXZpb3Ig
eworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21vb3RoQmVoYXZp
b3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8L3N0eWxlPgor
ICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsg
YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Jz4KKyAgICAg
IDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0
OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHlsZT0nZGlzcGxh
eTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWln
aHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2PgorICA8L2Jv
ZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFtZUxvYWRUZXN0
ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5nRWxlbWVudCwg
c3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVm
dCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkg
PT4geworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9k
ZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisg
ICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5m
b3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZl
KSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7
CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
YXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAg
ICAgfSk7CisgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Ny
b2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAs
IDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhl
bigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7CisgIH0pKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA1ZWIzMjcyZjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBAQAorCitQ
QVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2lu
ZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMzMzM2Q2NGY4
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzEgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVu
dC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIg
d2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgor
ICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRv
QmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21v
b3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8
L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6
IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7
Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHls
ZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2
PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFt
ZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5n
V2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBlbGVtZW50VG9S
ZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICBpZnJh
bWVOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5zdGVwX2Z1bmNf
ZG9uZSgoKSA9PiB7CisgICAgc2Nyb2xsaW5nV2luZG93ID0gaWZyYW1lTm9kZS5jb250ZW50V2lu
ZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9kZS5jb250ZW50RG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisgICAgWyJzY3JvbGwi
LCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4gewor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3co
c2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGlu
Z1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRv
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAp
OworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwg
Imluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChz
Y3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3co
c2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
YCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJz
Y3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7
CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxX
aW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsK
KworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNmFlNTZlYzc3Li5hNDgxMWZjODAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8
Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwg
YmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRm
b3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5
MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNl
ZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
c3VwcG9ydCBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0uIEl0IHJlbGll
cyBvbiBVSVNjcm9sbFZpZXcncworICAgICAgICBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBw
b3J0IGFuZCBpcyBleGVjdXRlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBUZXN0czog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1w
b3NpdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKworICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBi
eSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVk
IHNjcm9sbCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5p
bWF0aW9uIHN0YXR1cyBmcm9tIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOiBB
ZGQgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gdG8gaW5kaWNhdGUgaXQn
cyBhbmltYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOiBEaXR0
by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6cmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2UpOiBVcGRhdGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFk
ZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90
LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRT
dGF0ZUFmdGVyQ2hpbGRyZW4pOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIHRoZSBzY3JvbGwgaXMg
YW5pbWF0ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGU6OnNjcm9sbFRvKTogSWYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiBpcyB0cnVlLCBzZW5k
IHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLCBldmVuIGlmIHRoZSBzY3Jv
bGwgcG9zaXRpb24gZG9lc24ndCBjaGFuZ2UuCisgICAgICAgIE1haW50YWluIHRoZSBzdGF0dXMg
b2YgbV9zdG9wU2Nyb2xsQW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xs
UG9zaXRpb25DaGFuZ2VkKTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xs
IHBvc2l0aW9uIGltbWVkaWF0ZWx5LCBzbyBkb24ndCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZv
IG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRS
ZXF1ZXN0QW5pbWF0ZWRTY3JvbGwpOiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCBpbmRpY2F0ZXMg
dGhhdCB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0LgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRlZFNjcm9sbCBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1h
dGlvbiBzdGF0dXMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3Jv
bGxBbmltYXRpb24pOiBJZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlv
biwgdGhlIHByZXZpb3VzIHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
VHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQg
b3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGlu
ZGljYXRlIHRoZSBzdGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRp
b24pOiBVcGRhdGUgU2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpTY3JvbGxh
YmxlQXJlYSk6IEFkZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVh
OjpjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9s
bEJlaGF2aW9yVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRDdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogU2Vu
ZCBhIHF1ZXN0IG9mIG5hdGl2ZSBzY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xs
IGFuaW1hdGlvbiBieSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZSgpLgorCiAyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4K
IAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBTY3Jv
bGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
aW5kZXggOTM5Y2U0YmVlMi4uNzMxZTMyMjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtMzY2OCw2ICszNjY4LDE0IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5CiAgICAgYXV0
byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOwogICAgIHNldEN1cnJl
bnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBl
KFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBz
ZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCisKICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkg
PT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQogICAgICAgICBz
Y3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKICAgICBpZiAob2Zmc2V0ICE9IHRo
aXMtPnNjcm9sbE9mZnNldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA0MjllZWU5YTk2
Li5hOTdlYTQyZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4LDcgKzI0OCwxNCBA
QCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVw
ZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUg
PSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
IT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29sIGluUHJvZ3JhbW1h
dGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxU
eXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFj
a0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSBpblByb2dy
YW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBib29sIGFuaW1hdGVkID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbEJl
aGF2aW9yVHlwZSgpID09IFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoOworICAgIC8vIFRoZSBz
Y3JvbGwgcG9zaXRpb24gb2YgYW5pbWF0ZWQgc2Nyb2xsaW5nIHdpbGwgYmUgc2V0IGJ5IHRoZSBV
SSBwcm9jZXNzLiBTbyBzaG91bGRuJ3Qgc2V0IGl0IG5vdy4KKyAgICB1cGRhdGVTY3JvbGxQb3Np
dGlvbiA9ICFhbmltYXRlZCAmJiB1cGRhdGVTY3JvbGxQb3NpdGlvbjsKKyNlbmRpZgorICAgIGlm
ICh1cGRhdGVTY3JvbGxQb3NpdGlvbikKICAgICAgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRl
ckFzeW5jU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHsgfSwgU2Nyb2xs
VHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwog
CiAgICAgLy8gSWYgdGhpcyBmcmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0IGludG8g
dGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCkBAIC0y
NjAsNyArMjY3LDE0IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3JvCiAgICAgaWYgKCFzdGF0ZU5v
ZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgYXV0byBzdGF0dXMgPSBhbmltYXRlZCA/IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2
ZUFuaW1hdGlvbiA6IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbjsKKyAgICBz
Y3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhzdGF0dXMpOworCisgICAgc3Rh
dGVOb2RlLT5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9n
cmFtbWF0aWNTY3JvbGwsIGFuaW1hdGVkKTsKKyNlbHNlCiAgICAgc3RhdGVOb2RlLT5zZXRSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9ncmFtbWF0aWNTY3JvbGwp
OworI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI5MSw2ICszMDUsMzIgQEAgdm9p
ZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9u
QWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBtX3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVy
LnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGlu
Z05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAg
IGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3
LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5Bbmlt
YXRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xs
IGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxh
YmxlQXJlYUZvclNjcm9sbExheWVySUQobm9kZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3Jv
bGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwor
ICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5u
b2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxl
ZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9z
Y2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRlTGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4uM2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQ
cm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVw
ZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0
IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRP
cmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsK
KyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6
b250YWxJbmRleCwgdW5zaWduZWQgdmVydGljYWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
LmNwcAppbmRleCA3MTdiZmMyYTU1Li43ZTIxODhjMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgog
ICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVh
UGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
LCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2RlLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7
CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0y
MTksMTIgKzIyMiwyMiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5
Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFtcyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29s
IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlv
bikKK3sKKyAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb247CisgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworICAgIG1fcmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uID0gcmVxdWVzdGVkV2l0aEFuaW1hdGlvbjsKKyAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOworfQorI2Vsc2UK
IHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogewogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b24gPSByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGw7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKTsK
IH0KKyNlbmRpZgogCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cykKIHsKQEAgLTMx
NCw2ICszMjcsMTEgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVQKICAgICBpZiAobV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiAgICAgICAgIHRz
LmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiByZXByZXNlbnRzIHByb2dy
YW1tYXRpYyBzY3JvbGwiLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dy
YW1tYXRpY1Njcm9sbCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbikKKyAgICAgICAgdHMuZHVtcFByb3Bl
cnR5KCJyZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHdpdGggYW5pbWF0aW9uIiwgbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pOworI2VuZGlmCisKICAgICBpZiAoIW1fcGFy
ZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHRzLmR1bXBQcm9w
ZXJ0eSgicGFyZW50IHJlbGF0aXZlIHNjcm9sbGFibGUgcmVjdCIsIG1fcGFyZW50UmVsYXRpdmVT
Y3JvbGxhYmxlUmVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNDk2N2E2Y2U4MS4u
NmUyNWQ3YmJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKQEAgLTExMSw3ICsxMTEsMTIgQEAg
cHVibGljOgogCiAgICAgY29uc3QgRmxvYXRQb2ludCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOyB9CiAgICAgYm9vbCBy
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSBjb25z
dCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbDsgfQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGJvb2wgcmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uID0gZmFsc2Up
OworI2Vsc2UKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
OworI2VuZGlmCiAKICAgICBib29sIGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50czsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0SXNNb25pdG9yaW5nV2hlZWxFdmVudHMoYm9vbCk7CkBAIC0xNzEsNiArMTc2LDkgQEAg
cHJpdmF0ZToKICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnM7CiAKICAgICBib29sIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsIHsgZmFsc2UgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGJvb2wgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24geyBmYWxzZSB9
OworI2VuZGlmCiAgICAgYm9vbCBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzIHsgZmFsc2UgfTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApp
bmRleCAxNTFhYzI5ZjhhLi4yM2JkNTM2YzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC04Miw4ICs4MiwxMyBAQCBwdWJsaWM6CiAgICAg
Ly8gVXBkYXRlcyBGcmFtZVZpZXcvUmVuZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBHcmFw
aGljc0xheWVycy4KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwo
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
ID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgPSAwOwogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBDYWxsZWQgZm9yIHNjcm9sbCBhbmltYXRpb24gc3RhdHVz
IHVwZGF0ZXMuCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCAv
KmlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyovKSB7IH0KKyNlbmRpZgorCiAgICAgLy8gQ2Fs
bGVkIGZvciByZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMuCi0gICAgdmlydHVhbCB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25z
dCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJl
cXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgLypzY3JvbGxQ
b3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCovLCBib29sIC8q
d2l0aEFuaW1hdGlvbiovKSB7IH0KIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxpbmcvem9vbWlu
ZyBoYXMgY2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2aWV3cG9ydC1j
b25zdHJhaW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5GcmFtZVZpZXdw
b3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwgZG91Ymxl
IHNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYxLi44OWI0NTgw
OTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3LDE2IEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29u
c3QgU2Nyb2xsaW5nU3RhdGVOCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21t
aXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUp
CiB7CiAgICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3JvbGxpbmdTdGF0
ZU5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7
Ci0gICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpCi0gICAgICAgIHNj
cm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05v
ZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Ny
b2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCgpKTsKKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KSkgeworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbCgKKyAgICAgICAgICAgIHNjcm9sbGluZ05vZGVJRCgpCisgICAgICAgICAgICAsIHNjcm9s
bGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpCisgICAgICAgICAgICAsIHNj
cm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwoKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgICAgICAsIHNj
cm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKQor
I2VuZGlmCisgICAgICAgICAgICApOworICAgIH0KIAogICAgIG1faXNGaXJzdENvbW1pdCA9IGZh
bHNlOwogfQpAQCAtMTU3LDE1ICsxNjUsNDQgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZTo6c2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgU2Nyb2xsUG9zaXRpb24KICAg
ICBzY3JvbGxUbyhjdXJyZW50U2Nyb2xsUG9zaXRpb24oKSArIGRlbHRhLCBTY3JvbGxUeXBlOjpV
c2VyLCBjbGFtcCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24s
IFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcCBjbGFtcCwgYm9vbCBu
ZWVkU3luY1Njcm9sbFBvc2l0aW9uKQoreworICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1cnJlbnRT
Y3JvbGxQb3NpdGlvbikgeworICAgICAgICAvLyBTZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8g
dGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAocmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgJiYg
bmVlZFN5bmNTY3JvbGxQb3NpdGlvbikKKyAgICAgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3Jv
bGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcywgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
bjo6U3luYyk7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZUlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShzY3JvbGxpbmdOb2RlSUQoKSwgZmFsc2Up
OworICAgICAgICBzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoZmFsc2UpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgLy8gSWYgZHVyaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgbmVlZCB0
byBzdG9wIGl0IGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuCisgICAgaWYgKHNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MoKSkKKyAgICAgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbih0cnVlKTsKKyAgICBzY3JvbGxpbmdUcmVlKCkuc2V0SXNIYW5kbGluZ1Byb2dyYW1tYXRp
Y1Njcm9sbChzY3JvbGxUeXBlID09IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyk7CisKKyAgICBt
X2N1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24ocG9zaXRpb24s
IGNsYW1wKTsKKworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUgIiA8PCBzY3JvbGxpbmdOb2RlSUQoKSA8PCAiIHNjcm9s
bFRvICIgPDwgcG9zaXRpb24gPDwgIiAoZGVsdGEgZnJvbSBsYXN0IGNvbW1pdHRlZCBwb3NpdGlv
biAiIDw8IChtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3NpdGlvbiAtIG1fY3VycmVudFNjcm9sbFBv
c2l0aW9uKSA8PCAiKSIpOworCisgICAgdXBkYXRlVmlld3BvcnRGb3JDdXJyZW50U2Nyb2xsUG9z
aXRpb24oKTsKKyAgICBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7CisKKyAgICBzZXRO
ZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGZhbHNlKTsKKyAgICBzZXRSZXF1ZXN0QW5p
bWF0ZWRTY3JvbGwoZmFsc2UpOworICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJv
Z3JhbW1hdGljU2Nyb2xsKGZhbHNlKTsKK30KKyNlbHNlCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlw
ZSBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wKQogewogICAgIGlmIChwb3Np
dGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAg
c2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Nyb2xsVHlw
ZSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOwotICAgIAorCiAgICAgbV9jdXJyZW50U2Ny
b2xsUG9zaXRpb24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7Ci0g
ICAgCisKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBzY3JvbGxUbyAi
IDw8IHBvc2l0aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFzdCBjb21taXR0ZWQgcG9zaXRpb24gIiA8
PCAobV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gLSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlv
bikgPDwgIikiKTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9u
KCk7CkBAIC0xNzMsMTIgKzIxMCwxNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZQogCiAgICAg
c2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOwog
fQorI2VuZGlmCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3Jv
bGxQb3NpdGlvbkNoYW5nZWQoKQogewogICAgIHJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKTsK
ICAgICByZXBvc2l0aW9uUmVsYXRlZExheWVycygpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBpZiAoIXJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKQorICAgICAgICByZXR1cm47Cisj
ZW5kaWYKICAgICBzY3JvbGxpbmdUcmVlKCkubm90aWZ5UmVsYXRlZE5vZGVzQWZ0ZXJTY3JvbGxQ
b3NpdGlvbkNoYW5nZSgqdGhpcyk7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVO
b2RlRGlkU2Nyb2xsKCp0aGlzKTsKIH0KQEAgLTI2Niw2ICszMDgsMzcgQEAgdm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNjcm9s
bGluZ1N0YXRlVHIKICAgICB0cy5kdW1wUHJvcGVydHkoInNjcm9sbGFibGUgYXJlYSBwYXJhbWV0
ZXJzIiwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMpOwogfQogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RBbmlt
YXRlZFNjcm9sbChib29sIGFuaW1hdGVkKQoreworICAgIG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xs
ID0gYW5pbWF0ZWQ7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnJlcXVl
c3RBbmltYXRlZFNjcm9sbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdEFuaW1hdGVk
U2Nyb2xsOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKGJvb2wgaW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MgPSBpblByb2dyZXNzOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zY3JvbGxBbmltYXRpb25JblByb2dyZXNzOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGJvb2wgc3Rv
cCkKK3sKKyAgICBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24gPSBzdG9wOworfQor
Citib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpuZWVkc1N0b3BDdXJyZW50U2Nyb2xs
QW5pbWF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xs
QW5pbWF0aW9uOworfQorI2VuZGlmCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNGNiZjRk
MWFmMC4uNmFmNDJhM2U2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC02MCw3ICs2MCwxMSBA
QCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0KCkgY29u
c3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gLSBtX2xhc3RDb21taXR0ZWRTY3Jv
bGxQb3NpdGlvbjsgfQogCiAgICAgLy8gVGhlc2UgYXJlIGltcGVyYXRpdmU7IHRoZXkgYWRqdXN0
IHRoZSBzY3JvbGxpbmcgbGF5ZXJzLgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9p
ZCBzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVz
ZXIsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRF
ZGdlcywgYm9vbCBuZWVkU3luY1Njcm9sbFBvc2l0aW9uID0gZmFsc2UpOworI2Vsc2UKICAgICB2
b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6
VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVu
dEVkZ2VzKTsKKyNlbmRpZgogICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiwgU2Ny
b2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzKTsK
IAogICAgIHZvaWQgd2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBv
aW50JiBwb3NpdGlvbiwgT3B0aW9uYWw8RmxvYXRSZWN0PiBvdmVycmlkZUxheW91dFZpZXdwb3J0
ID0geyB9LCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbjo6U3luYyk7CkBAIC05MSw2ICs5NSwxNSBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
TGF5ZXJSZXByZXNlbnRhdGlvbiYgc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSBjb25zdCB7IHJldHVy
biBtX3Njcm9sbENvbnRhaW5lckxheWVyOyB9CiAgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlv
biYgc2Nyb2xsZWRDb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxlZENvbnRl
bnRzTGF5ZXI7IH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzZXRSZXF1
ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCk7CisgICAgYm9vbCByZXF1ZXN0QW5pbWF0ZWRTY3JvbGwo
KSBjb25zdDsKKyAgICB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9vbCk7Cisg
ICAgYm9vbCBzY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkgY29uc3Q7CisgICAgdm9pZCBzZXRO
ZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGJvb2wpOworICAgIGJvb2wgbmVlZHNTdG9w
Q3VycmVudFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0OworI2VuZGlmCisKIHByb3RlY3RlZDoKICAg
ICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKQEAgLTE0OCw2ICsxNjEsMTIgQEAgcHJpdmF0ZToK
ICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM7
CiAgICAgYm9vbCBtX2lzRmlyc3RDb21taXQgeyB0cnVlIH07CiAKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIGJvb2wgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9zY3JvbGxBbmltYXRpb25JblByb2dyZXNzIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbiB7IGZhbHNlIH07CisjZW5kaWYKKwogICAg
IExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxDb250YWluZXJMYXllcjsKICAgICBMYXllclJl
cHJlc2VudGF0aW9uIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IGY0NTdiMTU2MWUuLmY2ZDM1NjY1ZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtNTQsMTEgKzU0LDE5IEBAIGVudW0gY2xh
c3MgU2Nyb2xsUG9zaXRpb25DbGFtcCA6IHVpbnQ4X3QgewogICAgIFRvQ29udGVudEVkZ2VzLAog
fTsKIAotLy8gRklYTUU6IEFkZCBhbm90aGVyIHN0YXR1cyBJbk5hdGl2ZUFuaW1hdGlvbiB0byBp
bmRpY2F0ZSBuYXRpdmUgc2Nyb2xsaW5nIGlzIGluIHByb2dyZXNzLgotLy8gU2VlOiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKK2VudW0gY2xhc3MgU2Nyb2xsQmVo
YXZpb3JUeXBlIDogdWludDhfdCB7CisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgsCit9OworI2Vu
ZGlmCisKIGVudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgOiB1aW50OF90IHsKICAgICBO
b3RJbkFuaW1hdGlvbiwKICAgICBJbk5vbk5hdGl2ZUFuaW1hdGlvbiwKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEluTmF0aXZlQW5pbWF0
aW9uLAorI2VuZGlmCiB9OwogCiBpbmxpbmUgU2Nyb2xsRGlyZWN0aW9uIGxvZ2ljYWxUb1BoeXNp
Y2FsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGlzVmVydGljYWwsIGJv
b2wgaXNGbGlwcGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA4
ZTZiMGM2NTM1Li4xZDJjMzJlYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcApAQCAtNDY1LDYgKzQ2NSwxMCBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0
aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgYm9vbC8qCiB7CiAgICAg
TE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2
aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpOworI2VuZGlmCisKICAgICBpZiAo
cHJvaGliaXRzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGE4YjYwMzdmYmMuLjE1MDcwNGMyZDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTcxLDYg
KzcxLDkgQEAgU2Nyb2xsYWJsZUFyZWE6OlNjcm9sbGFibGVBcmVhKCkKICAgICAsIG1fc2Nyb2xs
T3JpZ2luQ2hhbmdlZChmYWxzZSkKICAgICAsIG1fY3VycmVudFNjcm9sbFR5cGUoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFNjcm9sbFR5cGU6OlVzZXIpKQogICAgICwgbV9zY3JvbGxTaG91bGRDbGVh
ckxhdGNoZWRTdGF0ZShmYWxzZSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQorICAgICwgbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpKQorI2VuZGlmCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVh
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDdkOTc5
MDcxODUuLjU1NjcyZjgxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaApAQCAtMjQ2LDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsVHlwZSBjdXJyZW50
U2Nyb2xsVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbFR5cGU+KG1fY3Vy
cmVudFNjcm9sbFR5cGUpOyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsVHlwZShTY3JvbGxU
eXBlIHNjcm9sbFR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihzY3JvbGxUeXBlKTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3VycmVudFNjcm9sbEJl
aGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbEJlaGF2aW9yVHlw
ZT4obV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQgc2V0Q3VycmVudFNj
cm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVoYXZpb3JUeXBlKSB7
IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3Jv
bGxCZWhhdmlvclR5cGUpOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xsU2hvdWxkQ2xlYXJM
YXRjaGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0
YXRlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZShib29sIHNo
b3VsZENsZWFyKSB7IG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUgPSBzaG91bGRDbGVh
cjsgfQogCkBAIC00MDksNiArNDE0LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3Njcm9s
bE9yaWdpbkNoYW5nZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbFR5cGUgOiAx
OyAvLyBTY3JvbGxUeXBlCiAgICAgdW5zaWduZWQgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRT
dGF0ZSA6IDE7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKKyAgICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgOiAxOworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAppbmRleCBjZWEwZDkxNmE2Li42MTNhNmFmYTM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI2MDIsMTIgKzI2MDIsMjQgQEAg
U2Nyb2xsT2Zmc2V0IFJlbmRlckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBTY3JvbGxP
ZmZzZXQmIHNjcm9sbE9mZnNldCkgY28KIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZz
ZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiBzY3JvbGxPZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlw
ZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JU
eXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlmIChjdXJy
ZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25O
YXRpdmVBbmltYXRpb24pCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9u
cygpOwogCiAgICAgU2Nyb2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9
PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNl
dCkgOiBzY3JvbGxPZmZzZXQ7Ci0gICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+
c2Nyb2xsT2Zmc2V0KCkpCisgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Ny
b2xsT2Zmc2V0KCkpIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKQorICAgICAgICAvLyBJZiBVSVNjcm9sbFZpZXcgaXMgcGVyZm9ybWluZyBhIHNj
cm9sbCBhbmltYXRpb24sIHRoZSBzY3JvbGwgb2Zmc2V0IG9mIHRoZSBXZWIgcHJvY2VzcyBtaWdo
dCBiZSBvdmVycmlkZGVuLgorICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGNhbGwgcmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlIGhlcmUgYW5kIGxldCBpdCBiZSBjaGVja2VkIG9uIHRoZSBVSSBw
cm9jZXNzLgorICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIG9mZnNldCBvbiB0aGUgVUkgcHJvY2Vz
cyBpcyBkaWZmZXJlbnQsIHRoZSBjb3JyZWN0IHNjcm9sbCBvZmZzZXQgbmVlZHMgdG8gc3luYyBi
YWNrIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlv
clN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2ZUFuaW1hdGlvbikKKyAg
ICAgICAgICAgIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21P
ZmZzZXQoY2xhbXBlZFNjcm9sbE9mZnNldCkpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKICAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7
CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CkBAIC0yNjM5LDYgKzI2NTEs
MTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0
IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGwKICAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlw
ZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xs
VHlwZSk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBl
OjpTbW9vdGgpOworICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9z
aXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKSB7CisgICAgICAgIHNldEN1cnJlbnRTY3JvbGxUeXBl
KHByZXZpb3VzU2Nyb2xsVHlwZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwog
ICAgIFNjcm9sbE9mZnNldCBuZXdTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFt
cGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KG9mZnNldCkgOiBvZmZzZXQ7CiAgICAg
aWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVz
OjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxB
bmltYXRpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ0MzU1Y2IwMGQuLmIyOGFhNGQwY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTkgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBp
Z2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVs
aWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEFkZCBDU1NPTSBzbW9vdGggc2Nyb2xs
aW5nIGFzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlLiBPbiBpb3MgcGxhdGZvcm0sIHVzZSBuYXRp
dmUgYW5pbWF0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGludGVyZmFjZXMgdG8gcGVyZm9ybWFuY2Ug
c21vb3RoIHNjcm9sbCBhbmQgc2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJv
Y2Vzcy4KKworICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU+OjplbmNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU+OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpkdW1wKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKHBvaW50c0VxdWFsSW5S
b3VuZFRvRGV2aWNlUGl4ZWwpOiBIZWxwIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHR3byBmbG9hdCBw
b2ludHMgYXJlIG5vdCBlcXVhbCBidXQgaW4gdGhlIHNhbWUgZGV2aWNlIHBpeGVsLgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbE9yaWdp
bjphbmltYXRlZDpdKTogQWRkIGFuaW1hdGVkIGZsYWcgdG8gc3RhcnQgYSBhbmltYXRlZCBzY3Jv
bGwgaWYgbmVlZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld0RpZEVuZFNjcm9s
bGluZ0FuaW1hdGlvbjpdKTogU2VuZCBzcm9sbCBlbmQgbWVzc2FnZSB0byB0aGUgV2ViIHByb2Nl
c3MuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246
c2Nyb2xsT3JpZ2luOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbik6
IFByb3ZpZGUgaW50ZXJmYWNlIGZvciBhbmltYXRlZCBzY3JvbGxpbmcuCisgICAgICAgICogVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21t
aXRMYXllclRyZWUpOiBBZGQgYW5pbWF0ZWQgZmxhZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVl
Tm9kZURpZFNjcm9sbCk6IFN5bmMgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nl
c3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBBZGQgYW5pbWF0ZWQgc2Nyb2xsaW5nIGlu
Zm8gdG8gbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzc0RpZENoYW5nZSk6IFN5bmMgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB0byB0
aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6OnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0RpZENoYW5nZSk6IERpdHRvLiBJdCdzIHNwZWNpZmljIHRvIHRoZSByb290IG5vZGUuCisgICAg
ICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOiBBZGQgYW5pbWF0ZWQgaW5mby4KKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9s
bCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxp
bmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IERpdHRvLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tOgorICAg
ICAgICAoLVtXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld0RpZEVu
ZFNjcm9sbGluZ0FuaW1hdGlvbjpdKTogU2VuZCBzY29sbCBlbmQgaW5mbyB0byB0aGUgV2ViIHBy
b2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IElmIHRoZSBzY3JvbGwgcG9zaXRpb24g
b2YgdGhlIFdlYiBwcm9jZXNzIGlzbid0IGVxdWFsIHRvIHRoZSBVSSBwcm9jZXNzLAorICAgICAg
ICB0aGUgc2Nyb2xsIHBvc2l0aW9uIHNob3VsZCBiZSBzeW5jaHJvbml6ZWQsIGV2ZW4gdGhlcmUn
cyBubyBzY3JvbGxpbmcgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAoV2Vi
S2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpyZXBvc2l0aW9uU2Ny
b2xsaW5nTGF5ZXJzKTogQ2FsbGluZyB0aGUgbmF0aXZlIGFuaW1hdGVkIHNjcm9sbGluZyBpbnRl
cmZhY2UgZm9yIHNtb290aCBzY3JvbGwuCisgICAgICAgIElmIHRoZXJlJ3MgYSBzY3JvbGwgYW5p
bWF0aW9uIHBlcmZvcm1pbmcsIGl0IHNob3VsZCBiZSBzdG9wcGVkIGZpcnN0LCB0aGVuIHN0YXJ0
IGEgbmV3IHNjcm9sbGluZy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbik6IFN5
bmMgc2Nyb2xsIGVuZCBpbmZvIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1
ZXN0U2Nyb2xsKTogVG8gY2FsbCBkaWZmZXJlbnQgZnVuY3Rpb25zIGZvciBzbW9vdGggYW5kIGlu
c3RhbnQgc2Nyb2xsLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnJlcXVlc3RTY3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hh
bmdlZEZvck5vZGUpOgorCiAyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdh
bGlhLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9u
LmNwcAppbmRleCBkN2IxZTE5MzcyLi41NzQ0ZTFjODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFu
c2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xNTIsNiArMTUyLDkg
QEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdAogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zLCBzY3JvbGxhYmxl
QXJlYVBhcmFtZXRlcnMpCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9u
KQorI2VuZGlmCiAKICAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNjcm9s
bENvbnRhaW5lckxheWVyKCkpOwpAQCAtMjYwLDcgKzI2MywxNCBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFNjcm9sbAogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGwpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAgICAgYm9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uOworICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHNjcm9sbFdpdGhBbmltYXRpb24pKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBub2RlLnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBv
c2l0aW9uLCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxXaXRoQW5pbWF0aW9u
KTsKKyNlbHNlCiAgICAgICAgIG5vZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xs
UG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAgICAgfQog
CiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjE4LDkgQEAgc3RhdGlj
IHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlJiBub2RlLCBib29sIGMKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2Rl
Lmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1z
Y3JvbGwtcG9zaXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAg
ICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0
aWMiLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCgpKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1wUHJvcGVy
dHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBub2RlLnJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0KIAogICAg
IGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMzM1NGFj
NmVlYy4uMTA4ZTRjMDNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCkBAIC0xNjE3LDYgKzE2MTcsMTEgQEAgc3RhdGljIGlubGluZSBib29s
IHBvaW50c0VxdWFsSW5EZXZpY2VQaXhlbHMoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRl
dmljZVMKICAgICAgICAgJiYgZmFicyhhLnkgKiBkZXZpY2VTY2FsZUZhY3RvciAtIGIueSAqIGRl
dmljZVNjYWxlRmFjdG9yKSA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCk7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVs
KENHUG9pbnQgYSwgQ0dQb2ludCBiLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICBy
ZXR1cm4gQ0dSb3VuZChhLnggKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChiLnggKiBk
ZXZpY2VTY2FsZUZhY3RvcikKKyAgICAgICAgJiYgQ0dSb3VuZChhLnkgKiBkZXZpY2VTY2FsZUZh
Y3RvcikgPT0gQ0dSb3VuZChiLnkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CiBzdGF0aWMgQ0dT
aXplIHJvdW5kU2Nyb2xsVmlld0NvbnRlbnRTaXplKGNvbnN0IFdlYktpdDo6V2ViUGFnZVByb3h5
JiBwYWdlLCBDR1NpemUgY29udGVudFNpemUpCiB7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IgPSBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCk7CkBAIC0yMzQxLDkgKzIzNDYsMTAgQEAgc3Rh
dGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpG
bG9hdFBvaW50IGNvbnRlbnRPZmYKICAgICByZXR1cm4gY29udGVudE9mZnNldC5jb25zdHJhaW5l
ZEJldHdlZW4oV2ViQ29yZTo6RmxvYXRQb2ludCgpLCBXZWJDb3JlOjpGbG9hdFBvaW50KG1heGlt
dW1Db250ZW50T2Zmc2V0KSk7CiB9CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBv
c2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjoo
V2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luCistICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRT
Y3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxP
cmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDooQk9PTClhbmlt
YXRlZAogewotICAgIGlmIChfY29tbWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uIHx8IF9keW5h
bWljVmlld3BvcnRVcGRhdGVNb2RlICE9IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9k
ZTo6Tm90UmVzaXppbmcpCisgICAgLy8gQW5pbWF0ZWQgc2Nyb2xsaW5nIHNob3VsZG4ndCBiZSBz
a2lwcGVkLgorICAgIGlmICghYW5pbWF0ZWQgJiYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9z
aXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmll
d3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdl
YkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZnNldCA9IFdlYkNvcmU6OlNjcm9sbGFibGVBcmVh
OjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHRvRmxvYXRTaXplKHNj
cm9sbE9yaWdpbikpOwpAQCAtMjM1NywxMyArMjM2MywyMSBAQCBzdGF0aWMgV2ViQ29yZTo6Rmxv
YXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVu
dE9mZgogCiAgICAgW19zY3JvbGxWaWV3IF9zdG9wU2Nyb2xsaW5nQW5kWm9vbWluZ0FuaW1hdGlv
bnNdOwogCi0gICAgaWYgKCFDR1BvaW50RXF1YWxUb1BvaW50KGNvbnRlbnRPZmZzZXRJblNjcm9s
bFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdKSkKLSAgICAgICAg
W19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzXTsKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhleSBhcmUgbm90IGVxdWFs
LCBidXQgaW4gdGhlIHNhbWUgZGV2aWNlIHBpeGVsLCBzbyBfc2Nyb2xsVmlldyB3b24ndCBjaGFu
Z2UuCisgICAgLy8gV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIHJvdW5kIHRvIGRldmljZSBwaXhl
bCBoZXJlLgorICAgIGlmICghcG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbChjb250ZW50
T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFtfc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0
XSwgX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpKQorICAgICAgICBbX3Njcm9sbFZpZXcgc2V0
Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMgYW5pbWF0
ZWQ6YW5pbWF0ZWRdOwogICAgIGVsc2UgewogICAgICAgICAvLyBJZiB3ZSBoYXZlbid0IGNoYW5n
ZWQgYW55dGhpbmcsIHRoZXJlIHdvdWxkIG5vdCBiZSBhbnkgVmlzaWJsZUNvbnRlbnRSZWN0IHVw
ZGF0ZSBzZW50IHRvIHRoZSBjb250ZW50LgogICAgICAgICAvLyBUaGUgV2ViUHJvY2VzcyB3b3Vs
ZCBrZWVwIHRoZSBpbnZhbGlkIGNvbnRlbnRPZmZzZXQgYXMgaXRzIHNjcm9sbCBwb3NpdGlvbi4K
ICAgICAgICAgLy8gVG8gc3luY2hyb25pemUgdGhlIFdlYlByb2Nlc3Mgd2l0aCB3aGF0IGlzIG9u
IHNjcmVlbiwgd2Ugc2VuZCB0aGUgVmlzaWJsZUNvbnRlbnRSZWN0IGFnYWluLgogICAgICAgICBf
cGFnZS0+cmVzZW5kTGFzdFZpc2libGVDb250ZW50UmVjdHMoKTsKKyAgICAgICAgLy8gSWYgX3Nj
cm9sbFZpZXcgd29uJ3QgY2hhbmdlLCB3ZSBzdGlsbCBuZWVkIHRvIHRlbGwgdGhlIFdlYiBwcm9j
ZXNzIHRoYXQgdGhlIGFuaW1hdGlvbiBzdG9wcGVkLgorICAgICAgICBpZiAoYW5pbWF0ZWQpIHsK
KyAgICAgICAgICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSogY29v
cmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOworICAgICAgICAg
ICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxp
bmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2Up
OworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0yODc5LDYgKzI4OTMsMTAgQEAgc3RhdGljIFdl
YkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBv
aW50IGNvbnRlbnRPZmYKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlv
bjooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewogICAgIFtzZWxmIF9kaWRGaW5pc2hTY3Jv
bGxpbmddOworCisgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBj
b29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgaWYg
KGNvb3JkaW5hdG9yKQorICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZVJvb3ROb2Rl
SXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsKIH0KIAogLSAodm9p
ZClfc2Nyb2xsVmlld0RpZEludGVycnVwdERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3ICopc2Ny
b2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3SW50ZXJuYWwuaAppbmRleCA0MzUwODBmMzI0Li41Y2I1ZjU4MTcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwu
aApAQCAtOTcsNyArOTcsNyBAQCBzdHJ1Y3QgUHJpbnRJbmZvOwogCiAtIChSZWZQdHI8V2ViS2l0
OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90OwogCi0tICh2b2lkKV9zY3JvbGxUb0Nv
bnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBz
Y3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbjsKKy0gKHZvaWQpX3Nj
cm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBv
c2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1h
dGVkOihCT09MKWFuaW1hdGVkOwogLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3JlOjpGbG9h
dFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIG1pbmlt
dW1TY3JvbGxEaXN0YW5jZTooZmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNlOwogLSAoZG91Ymxl
KV9pbml0aWFsU2NhbGVGYWN0b3I7CiAtIChkb3VibGUpX2NvbnRlbnRab29tU2NhbGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZTg0ODI0ZmQ4NS4uZGUzZDMzNjc5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTgxLDYgKzE4MSw4IEBAIHB1
YmxpYzoKICAgICAvLyBUZWxsIHRoZSB2aWV3IHRvIHNjcm9sbCB0byB0aGUgZ2l2ZW4gcG9zaXRp
b24sIGFuZCB3aGV0aGVyIHRoaXMgd2FzIGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4KICAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgPSAwOwogCisg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
b2xsT3JpZ2luKSB7IH0KKwogICAgIC8vIFJldHVybiB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRp
b24gKG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgV2ViQ29yZSBzY3JvbGwgcG9zaXRp
b24sIGJlY2F1c2Ugb2Ygc2NhbGluZywgaW5zZXRzIGV0Yy4pCiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCAzODBmMTI0NDQzLi4wYTQy
Zjk0NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5tbQpAQCAtMjI0LDggKzIyNCwxNCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHk6OmNvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFucwogCiAgICAg
Ly8gSGFuZGxlIHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gdXBkYXRlcyBmcm9tIHRoZSBzY3Jv
bGxpbmcgdHJlZSB0cmFuc2FjdGlvbiBhZnRlciBkaWRDb21taXRMYXllclRyZWUoKQogICAgIC8v
IGhhcyB1cGRhdGVkIHRoZSB2aWV3IHNpemUgYmFzZWQgb24gdGhlIGNvbnRlbnQgc2l6ZS4KLSAg
ICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlKQot
ICAgICAgICBtX3dlYlBhZ2VQcm94eS5yZXF1ZXN0U2Nyb2xsKHJlcXVlc3RlZFNjcm9sbEluZm8u
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbE9yaWdp
bigpKTsKKyAgICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9u
VXBkYXRlKSB7CisgICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVk
U2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbgorICAgICAgICAgICAgLCBsYXllclRy
ZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgICAgICAgICAsIHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdFdpdGhBbmltYXRpb24KKyNl
bmRpZgorICAgICAgICAgICAgKTsKKyAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKIAogICAgIGlmIChtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDQ4MjNm
NzZhOTcuLjFkNDBhNmE2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNv
cmU6OgogfQogCiAvLyBUaGlzIGNvbWVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlLgotdm9pZCBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9s
bChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Nj
cm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRP
cmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bkFjdGlvbikKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5n
VHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2ludD4m
IGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRp
b24pCiB7CiAgICAgLy8gU2Nyb2xsIHVwZGF0ZXMgZm9yIHRoZSBtYWluIGZyYW1lIGFyZSBzZW50
IHZpYSBXZWJQYWdlUHJveHk6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoKQogICAgIC8vIHNv
IGRvbid0IHNlbmQgdGhlbSBoZXJlLgpAQCAtMjIyLDIxICsyMjIsNDEgQEAgdm9pZCBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3Jv
bGxpbmdOb2RlSUQKICAgICBtX3dlYlBhZ2VQcm94eS5zY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0Rp
ZFNjcm9sbCgpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICht
X3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSAmJiAhaW5zdGFu
dFNjcm9sbERpZFN0b3BBbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKyNlbHNlCiAgICAgaWYg
KG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpKQogICAgICAg
ICByZXR1cm47CisjZW5kaWYKIAogICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHNj
cm9sbGVkTm9kZUlELCBuZXdTY3JvbGxQb3NpdGlvbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFj
dGlvbiA9PSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSk7CiB9CiAKLXZvaWQg
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0
c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCit2b2lk
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVz
dHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29s
IHdpdGhBbmltYXRpb24pCiB7CiAgICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RTY3JvbGxp
bmdOb2RlSUQoKSAmJiBtX3JlcXVlc3RlZFNjcm9sbEluZm8pIHsKICAgICAgICAgbV9yZXF1ZXN0
ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlID0gdHJ1ZTsKICAgICAg
ICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3JvbGwgPSBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdFdpdGhBbmltYXRpb24gPSB3aXRo
QW5pbWF0aW9uOworI2VuZGlmCiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKICAgICB9CiB9CiAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpz
Y3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJD
b3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZv
ck5vZGUoc2Nyb2xsZWROb2RlSUQsIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOworfQor
Cit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVSb290
Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5n
ZWRGb3JOb2RlKHJvb3RTY3JvbGxpbmdOb2RlSUQoKSwgaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKSk7Cit9CisjZW5kaWYKKwogU3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHk6OnNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9sbGluZ1Ry
ZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAppbmRl
eCAxYTc2OTQzZjI0Li44MTE1ZTQ3N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmgKQEAgLTU1LDkgKzU1LDE0IEBAIHB1YmxpYzoKICAgICBleHBs
aWNpdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYpOwogICAg
IHZpcnR1YWwgflJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVSb290Tm9k
ZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKKwogICAgIC8vIEluZm9ybSB0aGUgd2ViIHByb2Nlc3Mg
dGhhdCB0aGUgc2Nyb2xsIHBvc2l0aW9uIGNoYW5nZWQgKGNhbGxlZCBmcm9tIHRoZSBzY3JvbGxp
bmcgdHJlZSkKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNj
cm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRp
b24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9y
aWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7Ci0gICAgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9s
bChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5l
d1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiYgbGF5
b3V0Vmlld3BvcnRPcmlnaW4sIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24s
IGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24gPSBmYWxzZSk7CisgICAgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogCiAgICAg
V2ViQ29yZTo6VHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRv
bVN0cmluZyYgZXZlbnROYW1lLCBXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CiAKQEAgLTgwLDYg
Kzg1LDkgQEAgcHVibGljOgogICAgIHN0cnVjdCBSZXF1ZXN0ZWRTY3JvbGxJbmZvIHsKICAgICAg
ICAgYm9vbCByZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlIHsgfTsKICAgICAgICAgYm9vbCBy
ZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3JvbGwgeyB9OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgICAgIGJvb2wgcmVxdWVzdFdpdGhBbmltYXRpb24geyB9OworI2VuZGlmCiAgICAgICAg
IFdlYkNvcmU6OkZsb2F0UG9pbnQgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgfTsKICAg
ICB2b2lkIGNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uJiwgUmVxdWVzdGVkU2Nyb2xsSW5mbyYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1Ry
ZWUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ1RyZWUuY3BwCmluZGV4IGFmYWJiYzFlYWUuLmU2ZWI0OGJkOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdU
cmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTEwNCwxMiArMTA0LDE2IEBAIHZvaWQgUmVtb3RlU2Ny
b2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUmCiAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5v
ZGUpKQogICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbiA9IGRvd25jYXN0PFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpLmxheW91dFZpZXdwb3J0KCkubG9jYXRpb24oKTsK
IAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5v
ZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uLCBub2RlLm5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRp
b24oKSAmJiAhbm9kZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSk7CisjZWxzZQogICAgIG1fc2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChub2RlLnNj
cm9sbGluZ05vZGVJRCgpLCBub2RlLmN1cnJlbnRTY3JvbGxQb3NpdGlvbigpLCBsYXlvdXRWaWV3
cG9ydE9yaWdpbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CisjZW5kaWYKIH0KIAot
dm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xs
KFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCit2b2lkIFJlbW90ZVNjcm9sbGlu
Z1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5v
ZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIG1fc2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwg
c2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG1fc2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5v
ZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIHdpdGhB
bmltYXRpb24pOwogfQogCiBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1Ry
ZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpAQCAtMTQzLDYgKzE0NywxMyBAQCBSZWY8U2Nyb2xsaW5n
VHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNj
cm9sbGluZ05vZAogICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRo
aXMsIG5vZGVJRCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVT
Y3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9k
ZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIHZvaWQgUmVt
b3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xs
aW5nTm9kZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwp
CiB7CiAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmN1cnJlbnRTbmFwUG9pbnRJbmRp
Y2VzRGlkQ2hhbmdlKG5vZGVJRCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1Ry
ZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmgKaW5kZXggMjNiYWMwNmEzYi4uMGY5ZTA5NDk0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1MiwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYgc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsgfQogCiAgICAgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZSYsIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBXZWJDb3JlOjpT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKLSAgICB2b2lkIHNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2Rl
UmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Ny
b2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSkgb3ZlcnJpZGU7CisKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIHZvaWQgY3Vy
cmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1
bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLmgKaW5kZXggZTYzN2Q2MTUzMi4uMDBiNGRiY2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKQEAgLTU3
LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7CiAgICAg
dm9pZCBzY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZvaWQgc2Ny
b2xsVmlld0RpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPZmZzZXQs
IGJvb2wgaW5Vc2VySW50ZXJhY3Rpb24pOworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVuZFNjcm9s
bGluZ0FuaW1hdGlvbigpOwogCiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENo
YW5nZSh1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7CiAgICAg
Q0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdldCgp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1MubW0KaW5kZXggZTc2ODk4Mzc1OC4uODQ4ODYzYTgxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5tbQpAQCAtMTUyLDYgKzE1MiwxMSBAQAogICAgIH0KIH0KIAorLSAodm9pZClzY3JvbGxW
aWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7
CisgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxp
bmdBbmltYXRpb24oKTsKK30KKwogI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0gKENHUG9p
bnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRG
b3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9u
IHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRp
b25JblZpZXcgaG9yaXpvbnRhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZl
bG9jaXR5Oihpbm91dCBkb3VibGUgKil2dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4oY29uc3QgU2Nyb2wKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24pKSB7CiAgICAgICAgIGF1dG8gc2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSA/IFNj
cm9sbFR5cGU6OlByb2dyYW1tYXRpYyA6IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAgIHNjcm9s
bGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24oKSwgc2Nyb2xsVHlwZSk7CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisgICAgICAgICAgICBzY3JvbGxp
bmdOb2RlKCkuc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKHRydWUpOworICAgICAgICAvLyBJZiB0
aGUgc2Nyb2xsIHBvc2l0aW9ucyBhcmUgbm90IHRoZSBzYW1lLCB0aGVyZSdzIGEgcG9zc2liaWxp
dHkgdGhhdCB0aGUgc2Nyb2xsIG9mZnNldCBmcm9tIHRoZSBXZWIgcHJvY2VzcyBoYXMgYmVlbiBv
dmVycmlkZGVuLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSBzY3JvbGwgcG9zaXRpb24g
bmVlZCB0byBiZSBzZW50IHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgYm9vbCBzaG91bGRT
eW5jU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsUG9zaXRpb24oKSAh
PSBzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAgIHNjcm9s
bGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24oKSwgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMs
IHNob3VsZFN5bmNTY3JvbGxQb3NpdGlvbik7CiAgICAgfQogfQogCiB2b2lkIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKQog
ewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFtzY3JvbGxWaWV3KCkgc2V0
Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpXTsKLSAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgYm9vbCBhbmltYXRpb25JblByb2dyZXNz
ID0gc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKTsKKyAgICBib29s
IG5lZWRUb1N0b3BBbmltYXRpb24gPSBzY3JvbGxpbmdOb2RlKCkubmVlZHNTdG9wQ3VycmVudFNj
cm9sbEFuaW1hdGlvbigpOworICAgIGlmIChuZWVkVG9TdG9wQW5pbWF0aW9uICYmIGFuaW1hdGlv
bkluUHJvZ3Jlc3MpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAg
ICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxWaWV3KCkuY29udGVudE9m
ZnNldCBhbmltYXRlZDpOT107CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAg
ICB9CisKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZSgpLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKSB7
CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmll
dygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQo
KSBhbmltYXRlZDpZRVNdOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisKKyAg
ICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3ModHJ1ZSk7
CisgICAgfSBlbHNlIGlmICghYW5pbWF0aW9uSW5Qcm9ncmVzcyB8fCBuZWVkVG9TdG9wQW5pbWF0
aW9uKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Ny
b2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxP
ZmZzZXQoKV07CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CiB9CiAK
IHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsV2lsbFN0
YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICszNjEsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQK
ICAgICBzY3JvbGxpbmdOb2RlKCkud2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhzY3Jv
bGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJbnRlcmFjdGlvbiA/IFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb246OlN5bmMgOiBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwogfQog
Cit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdE
aWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKQoreworICAgIGF1dG8mIG5vZGUgPSBzY3JvbGxpbmdO
b2RlKCk7CisgICAgaWYgKCEobm9kZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBub2RlLnNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNj
cm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGUu
c2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5z
aWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAgaWYgKG1f
dXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggZGIyY2UwNzljYS4uZDA5ZjYwN2FjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzY3LDkgKzE3NjcsMTIgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAgICAgcGFn
ZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNv
bnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNj
cm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNj
cm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIHBhZ2VDbGllbnQo
KS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGlmICh3
aXRoQW5pbWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbFdpdGhBbmlt
YXRpb24oc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgZWxzZQorICAgICAgICBw
YWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsK
IH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQb3NpdGlv
bigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFlMzg1
MjIyMWQuLmFmMDdlYTQ5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC02MTMsNyArNjEzLDcgQEAgcHVibGljOgogICAgIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQo
KSBjb25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpS
ZWdpb24mKTsKLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4p
OworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3Jv
bGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgYm9vbCB3
aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmll
d1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggZDZjOGMzOGQ0YS4uNTE5OGVmNDQyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAg
LTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQ
cm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsK
ICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
c2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3Jv
bGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBv
dmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGRj
OWY3NGM0OWEuLjJjMzBjNGJjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTk1LDcgKzk1LDEyIEBAIHZvaWQgUGFnZUNsaWVu
dEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
Y29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9zY3JvbGxU
b0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xs
T3JpZ2luXTsKKyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpz
Y3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5PXTsKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4p
Cit7CisgICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xs
UG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwogfQogCiBX
ZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRpb24oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApp
bmRleCA4ZTY0OTM1NTQ1Li4zZDM0NWQ3NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9v
bCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0No
YW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRh
bCwgdW5zaWduZWQgdmVydGljYWwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2
b2lkIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgor
CiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4
IDJjMDk4YTEwOTcuLjUzN2ZkMzRkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYg
KzI1LDkgQEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAgICBT
Y3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6Rmxv
YXRQb2ludCBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgQ3Vy
cmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIHVuc2ln
bmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1aW50NjRf
dCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQppbmRleCA4MzU0NDFkMzE5Li42
ODlkNTU2MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDQsNiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoU2Nyb2xs
aW5nCiAgICAgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMobm9kZUlELCBob3Jpem9udGFsLCB2
ZXJ0aWNhbCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2Rl
KFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKQoreworICAgIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9kZUlELCBp
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385399</attachid>
            <date>2019-12-11 09:06:23 -0800</date>
            <delta_ts>2019-12-11 09:25:36 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_30.diff</filename>
            <type>text/plain</type>
            <size>302412</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjg4NDBmM2NmLi43NTQzNzBiOGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2lu
ZyBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQu
IEluIG9yZGVyIHRvIHRlc3QgcHJvcGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9y
IHRlc3QgdG8gZmFzdC9zY3JvbGxpbmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2
ZVNjcm9sbGluZyk6CisgICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9s
bE5vZGUpOgorICAgICAgICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0
bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKKzIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0
aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlc2UgdGVzdHMgb24gV0sxIGFzIHRoZXkgZG9u
J3Qgd29yayBmb3Igbm93LgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBh
cnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBC
YXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTEyLTEwICBQZW5nIExpdSAgPHBl
bmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3JlYXRlIGEgVGVzdEV4cGVjdGF0aW9ucyBm
aWxlIGZvciB0aGUgR1BVIHByb2Nlc3MgcmVsYXRlZCB3b3JrCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBhMDk2OGUwMjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Nj
cm9sbC1iZWhhdmlvci5qcwpAQCAtMCwwICsxLDg3IEBACitmdW5jdGlvbiBvYnNlcnZlU2Nyb2xs
aW5nKGVsZW1lbnRzLCBjYWxsYmFjaykgeworICBpZiAoIUFycmF5LmlzQXJyYXkoZWxlbWVudHMp
KQorICAgICAgZWxlbWVudHMgPSBbZWxlbWVudHNdOworICB2YXIgbGFzdENoYW5nZWRGcmFtZSA9
IDA7CisgIHZhciBsYXN0TGVmdCA9IG5ldyBNYXAoKTsKKyAgdmFyIGxhc3RUb3AgPSBuZXcgTWFw
KCk7CisgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAgICBsYXN0TGVmdC5zZXQo
ZWxlbWVudCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICBsYXN0VG9wLnNldChlbGVtZW50LCBl
bGVtZW50LnNjcm9sbFRvcCk7CisgIH0pOworICBmdW5jdGlvbiB0aWNrKGZyYW1lcykgeworICAg
IC8vIFdlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIDUwMCBmcmFtZXMgb3IgdW50
aWwgMjAgZnJhbWVzIHdpdGgKKyAgICAvLyBubyBjaGFuZ2UgaGF2ZSBiZWVuIG9ic2VydmVkLgor
ICAgIGlmIChmcmFtZXMgPj0gNTAwIHx8IGZyYW1lcyAtIGxhc3RDaGFuZ2VkRnJhbWUgPiAyMCkg
eworICAgICAgY2FsbGJhY2sodHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIHZhciBzY3JvbGxI
YXBwZW5lZCA9IGVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IHsKKyAgICAgICAgcmV0dXJuIGVs
ZW1lbnQuc2Nyb2xsTGVmdCAhPSBsYXN0TGVmdC5nZXQoZWxlbWVudCkgfHwgZWxlbWVudC5zY3Jv
bGxUb3AgIT0gbGFzdFRvcC5nZXQoZWxlbWVudCk7CisgICAgICB9KTsKKyAgICAgIGlmIChzY3Jv
bGxIYXBwZW5lZCkgeworICAgICAgICBsYXN0Q2hhbmdlZEZyYW1lID0gZnJhbWVzOworICAgICAg
ICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7CisgICAgICAgICAgbGFzdExlZnQuc2V0
KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsTGVmdCk7CisgICAgICAgICAgbGFzdFRvcC5zZXQoZWxl
bWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOworICAgICAgICB9KTsKKyAgICAgICAgY2FsbGJhY2so
ZmFsc2UpOworICAgICAgfQorICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2suYmluZChu
dWxsLCBmcmFtZXMgKyAxKSk7CisgICAgfQorICB9CisgIHRpY2soMCk7Cit9CisKK2Z1bmN0aW9u
IHdhaXRGb3JTY3JvbGxFbmQoZWxlbWVudHMpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7CisgICAgb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgKGRvbmUpID0+IHsKKyAg
ICAgIGlmIChkb25lKQorICAgICAgICByZXNvbHZlKCk7CisgICAgfSk7CisgIH0pOworfQorCitm
dW5jdGlvbiByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KSB7CisgIC8vIFRyeSB2YXJpb3Vz
IG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0
ZWx5LgorICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsKHtsZWZ0OiAwLCB0
b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGxG
b3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KSB7CisgIC8vIFRyeSB2YXJpb3VzIG1ldGhvZHMgdG8g
ZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0ZWx5LgorICBzY3Jv
bGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAg
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsK
KyAgc2Nyb2xsaW5nV2luZG93LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImlu
c3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
IGNsYXNzTmFtZSkgeworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImF1dG9CZWhh
dmlvciIsICJzbW9vdGhCZWhhdmlvciIpOworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5hZGQo
Y2xhc3NOYW1lKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBz
Y3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5i
ZWhhdmlvciA9IGJlaGF2aW9yOworICBzd2l0Y2ggKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgY2Fz
ZSAic2Nyb2xsSW50b1ZpZXciOgorICAgICAgYXJncy5pbmxpbmUgPSAic3RhcnQiOworICAgICAg
YXJncy5ibG9jayA9ICJzdGFydCI7CisgICAgICBlbGVtZW50VG9SZXZlYWwuc2Nyb2xsSW50b1Zp
ZXcoYXJncyk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgYXJncy5sZWZ0ID0g
ZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgICAgIGFyZ3MudG9wID0gZWxlbWVudFRvUmV2ZWFsVG9w
OworICAgICAgc2Nyb2xsaW5nRWxlbWVudFtzY3JvbGxGdW5jdGlvbl0oYXJncyk7CisgICAgICBi
cmVhazsKKyAgfQorfQorCitmdW5jdGlvbiBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5i
ZWhhdmlvciA9IGJlaGF2aW9yOworICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0Owor
ICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgc2Nyb2xsaW5nV2luZG93W3Njcm9s
bEZ1bmN0aW9uXShhcmdzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOGQ0Y2E2NDE1
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQ
QVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1i
ZWhhdmlvciAKK1BBU1MgU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVs
dCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zNWM2NTAzYWIyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0t
PgorPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxl
PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdp
ZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0i
bG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+
CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5k
OiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwv
c3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJh
Y2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZl
YWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICB2YXIgc2Ny
b2xsRnVuY3Rpb24gPSAic2Nyb2xsIjsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICB9LCAiSW5zdGFudCBzY3Jv
bGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7CisKKyAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgIH0pOworICB9LCAiU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVs
dCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTNhOTYx
ZWY1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1l
bnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24g
YW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbiBpbnN0YW50
IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi5kMzhkZmZkZWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKQEAgLTAs
MCArMSwxNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6
QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcg
c2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJl
aGF2aW9yIG9uIGFuIGVsZW1lbnQ8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9y
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgewor
ICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4
OworICB9CisgIC5hdXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAg
fQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9
Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2Rl
IiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdo
dDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVu
KTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4K
KzwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7
CisgIHZhciBzdHlsZWRFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVudFRvUmV2
ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKworICBbInNj
cm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2go
KHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHki
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9
LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9
KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVz
b2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
YCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlv
biwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAg
IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgIH0sIGBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3JgKTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNl
dFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGgg
c2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOwor
ICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9v
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uOTdjYWVhMjdiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgUGFnZSBsb2FkZWQgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGlu
ZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi5kMzI1YjRiOWUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRt
bApAQCAtMCwwICsxLDE2OSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBp
bnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+
VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBz
Y3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcv
I3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVoYXZpb3Igewor
ICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAg
IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4K
KzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJw
b3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4K
KyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOworICB2YXIgc2Ny
b2xsaW5nRWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBhZ2VMb2Fk
ZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9
ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZl
YWxMZWZ0ID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZl
YWxUb3AgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZl
YWwuc3R5bGUubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRU
b1JldmVhbC5zdHlsZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRk
X2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsgfSk7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJ
bnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAg
ICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5j
dGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAg
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3Rh
bnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShz
Y3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVt
ZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGgg
YW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM4MjM4NWFhYjQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisKK1BBU1MgUGFnZSBsb2FkZWQg
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjkwNTdiMGNkMTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1h
aW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVs
ZW1lbnQuc2Nyb2xsKiBvbiB0aGUgd2luZG93IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2Nh
bGU9MSI+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBtYXJnaW46
IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOwor
ICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
IH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdlQ29udGVu
dCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+CisgIDxkaXYg
aWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTog
aW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFj
azsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFzeW5jX3Rl
c3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdXaW5kb3csIHN0eWxlZEVsZW1lbnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKCkg
eworICAgIHNjcm9sbGluZ1dpbmRvdyA9IHdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEw
ICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJweCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUu
aGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1l
bnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1l
bnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA0OworICAgIGVsZW1l
bnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAg
ZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisK
KyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlc2V0U2Nyb2xsRm9yV2luZG93
KHdpbmRvdyk7IH0pOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5m
b3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyBy
ZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5j
dGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJh
dXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFks
IDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlv
biwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3Jv
bGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5j
dGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3Ai
KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhz
Y3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxG
dW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAg
ICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1
bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93
KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3Jv
bGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIs
IGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
MiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFu
b3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xs
aW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Ny
b2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9
LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1l
IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9s
bGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDQzYTgyMGU1OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBz
Y3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQ1YjVkOGQ3
YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsODggQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3Igd2l0aCBzY3JvbGxJbnRvVmlldyBmb3IgbmVzdGVkIHNjcm9sbGluZyBub2Rl
czwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGln
YWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJv
eCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87
CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9s
bC1iZWhhdmlvcjogc21vb3RoOworICB9CisgIC5ncmFkaWVudCB7CisgICAgYmFja2dyb3VuZDog
bGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7CisgIH0KKzwvc3R5bGU+Cis8ZGl2
IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2PgorICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIHNtb290
aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQ1MHB4Ij4KKyAgICA8ZGl2IGNsYXNzPSJncmFkaWVu
dCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogNDAwcHgiPgor
ICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDog
NTAwcHg7Ij48L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0
aDogMzUwcHgiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAx
MDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlIiBzdHlsZT0id2lkdGg6IDMwMHB4Ij4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVu
dCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAg
IDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogMjUw
cHgiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9s
bGFibGUiIHN0eWxlPSJ3aWR0aDogMjAwcHgiPgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJn
cmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAg
ICAgICAgICAgICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJ3aWR0aDogMTBweDsg
aGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsi
PjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
ICAgIDwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPGRp
diBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48
L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3
aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+
Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIFRoZSBDU1NPTS1WaWV3IHNwZWMgYW5kIGltcGxlbWVu
dGF0aW9ucyBmb2xsb3cgZGlmZmVyZW50IGFsZ29yaXRobXMgKHNjcm9sbHMgcGVyZm9ybWVkIGlu
IHBhcmFsbGVsLCBhcyBpbm5lci10by1vdXRlciBzZXF1ZW5jZSBvciBhcyBvdXRlci10by1pbm5l
ciBzZXF1ZW5jZSkuCisgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0
cy9pc3N1ZXMvMzEyNworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciBkaXZzID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLnNjcm9sbGFibGUiKTsKKyAgICAgIGRpdnMuZm9yRWFjaCgo
c2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxhYmxlRGl2KTsK
KyAgICAgIH0pOworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbEludG9WaWV3KHtpbmxpbmU6
ICJzdGFydCIsIGJsb2NrOiAic3RhcnQiLCBiZWhhdmlvcjogImF1dG8ifSk7CisgICAgICB2YXIg
c2Nyb2xsVG9wID0gbmV3IE1hcCgpOworICAgICAgdmFyIGlzU21vb3RoID0gbmV3IE1hcCgpOwor
ICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAgIHNjcm9sbFRv
cC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAgICBp
c1Ntb290aC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5jbGFzc0xpc3QuY29udGFp
bnMoInNtb290aEJlaGF2aW9yIikpOworICAgICAgICAvLyBJZiBzY3JvbGwgb3BlcmF0aW9ucyBh
cmUgbm90IHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgc2Nyb2xsIGJveGVzIHdpdGggaW5zdGFudCBi
ZWhhdmlvciBtaWdodCBhbHNvIG5lZWQgdG8gd2FpdCBmb3IgdGhlaXIgcHJlZGVjZXNzb3JzLgor
ICAgICAgICBpZiAoaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2KSwgNTAwLCAiRWxlbWVudCB3
aXRoIHNtb290aCBiZWhhdmlvciBzaG91bGQgbm90IHNjcm9sbCBpbW1lZGlhdGVseSIpOworICAg
ICAgfSk7CisKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcoQXJyYXkuZnJvbShkaXZzKSwgZnVuY3Rp
b24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgIGRpdnMuZm9yRWFjaCgoc2Nyb2xs
YWJsZURpdikgPT4geworICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChzY3JvbGxU
b3AuZ2V0KHNjcm9sbGFibGVEaXYpLCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgIlNjcm9sbFRv
cCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICBpZiAoIWlzU21vb3RoLmdldChzY3Jv
bGxhYmxlRGl2KSkKKyAgICAgICAgICAgICAgYXNzZXJ0X2FueShhc3NlcnRfZXF1YWxzLCBzY3Jv
bGxhYmxlRGl2LnNjcm9sbFRvcCwgWzAsIDUwMF0sICJFbGVtZW50IHdpdGggaW5zdGFudCBiZWhh
dmlvciBzaG91bGQganVtcCB0byB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIGlm
IChkb25lKQorICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGFibGVEaXYuc2Nyb2xs
VG9wLCA1MDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgICAgIHNjcm9s
bFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAg
ICAgIH0pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7
CisgICAgfSk7CisgIH0sICJzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRo
IGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMC4uODU1YTZhNjEwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9u
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5n
IHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3Jv
bGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgx
MDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9z
aXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1
MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBw
ZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1
c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcg
c21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xs
VG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5n
IHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1Zp
ZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygp
ICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJv
cnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uMGE0MWI4YjA4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5o
dG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUg
IGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRs
ZT5UZXN0aW5nIHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRo
IHNtb290aCBiZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAg
b3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7Cisg
ICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ci
PgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAg
PGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxp
bmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRp
c3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFu
PjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dy
b3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICAvLyBG
b3Igc21vb3RoIGJlaGF2aW9yLCBldm9sdXRpb24gb2Ygc2Nyb2xsIHBvc2l0aW9ucyBvdmVyIHRp
bWUgaXMgbm90IHNwZWNpZmllZCBieSBDU1NPTSBWaWV3LgorICAvLyBUaGlzIHRlc3QgcmVsaWVz
IG9uIHRoZSBtaW5pbWFsIGFzc3VtcHRpb24gdGhhdCBzY3JvbGwgcG9zaXRpb24gZnVuY3Rpb25z
IGFyZSBtb25vdG9uaWMuCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNj
cm9sbEludG9WaWV3Il0uZm9yRWFjaChmdW5jdGlvbihzY3JvbGxGdW5jdGlvbikgeworICAgIFt7
bGVmdDowLCB0b3A6MH0sIHtsZWZ0OjEwMDAsIHRvcDowfSwge2xlZnQ6MCwgdG9wOjUwMH0sIHts
ZWZ0OjEwMDAsIHRvcDo1MDB9XS5mb3JFYWNoKChpbml0aWFsKSA9PiB7CisgICAgICB2YXIgZmlu
YWxMZWZ0ID0gNTAwOworICAgICAgdmFyIGZpbmFsVG9wID0gMjUwOworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwg
Imluc3RhbnQiLCBpbml0aWFsLmxlZnQsIGluaXRpYWwudG9wKTsKKyAgICAgICAgICB2YXIgb2xk
TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBvbGRUb3AgPSBv
dmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwg
aW5pdGlhbC5sZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCBpbml0aWFsLnRvcCwgIlNjcm9sbFRv
cCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIpOworICAgICAgICAgIGlmIChzY3JvbGxG
dW5jdGlvbiA9PT0gInNjcm9sbEJ5IikKKyAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCAtIGluaXRpYWwubGVmdCwg
ZmluYWxUb3AgLSBpbml0aWFsLnRvcCk7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Ny
b2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZmluYWxMZWZ0
LCBmaW5hbFRvcCk7CisgICAgICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1
bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHZhciBuZXdM
ZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgIHZhciBuZXdUb3Ag
PSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFu
X2VxdWFsKE1hdGguaHlwb3QoZmluYWxMZWZ0IC0gbmV3TGVmdCwgZmluYWxUb3AgLSBuZXdUb3Ap
LCBNYXRoLmh5cG90KGZpbmFsTGVmdCAtIG9sZExlZnQsIGZpbmFsVG9wIC0gb2xkVG9wKSwgIlNj
cm9sbCBwb3NpdGlvbiBzaG91bGQgbW92ZSB0b3dhcmRzIHRoZSBmaW5hbCBwb3NpdGlvbiIpOwor
ICAgICAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
bmV3TGVmdCwgZmluYWxMZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRp
b24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgZmluYWxUb3AsICJT
Y3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgICAgIG9sZFRvcCA9
IG5ld1RvcDsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICByZWplY3Qo
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKCR7aW5pdGlh
bC5sZWZ0fSwgJHtpbml0aWFsLnRvcH0pIHRvICgke2ZpbmFsTGVmdH0sICR7ZmluYWxUb3B9KSB1
c2luZyAke3Njcm9sbEZ1bmN0aW9ufSgpIGApOworICAgIH0pOworICB9KTsKKworICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5p
dGlhbFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBzY3JvbGxEaXJlY3Rpb25DaGFu
Z2VkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0
OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICBhc3Nl
cnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3RoIiwgMTUwMCwg
NzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25l
KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUu
c2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRv
cDsKKyAgICAgICAgICBpZiAoaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsKKyAgICAgICAgICAgIGlm
IChzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkKSB7CisgICAgICAgICAgICAgIGFzc2VydF9ncmVhdGVy
X3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgZGVjcmVhc2lu
ZyIpOworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9sZFRvcCwgbmV3
VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICBzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkID0gbmV3TGVmdCA8PSBvbGRMZWZ0
ICYmIG5ld1RvcCA8PSBvbGRUb3A7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVw
cyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xk
VG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAg
ICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7CisgICAgICAgICAgICAgICAg
Ly8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAgICAgIGluaXRpYWxTY3Jv
bGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9k
ZSwgInNjcm9sbCIsICJzbW9vdGgiLCA1MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVm
dCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAg
ICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAw
LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9sZExlZnQgPSBuZXdMZWZ0Owor
ICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAg
ICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChkb25lKQorICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Nyb2xsIHBvc2l0aW9ucyB3aGVu
IGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGlu
ZyIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRTY3JvbGwob3ZlcmZsb3dOb2Rl
KTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZhbHNlOworICAgICAgdmFyIG9s
ZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZhciBvbGRUb3AgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAwKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAgICBvYnNlcnZlU2Nyb2xs
aW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAg
ICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgdmFy
IG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgaWYgKCFpbml0aWFs
U2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9s
ZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBr
ZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAmJiBu
ZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBzY3Jv
bGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAgICAg
ICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCA1
MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxM
ZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNo
b3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQg
c3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdU
b3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgc3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAg
ICAgICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3Ag
PSBuZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9
KTsKKyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290
aCBzY3JvbGxpbmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1
YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yNzk5ZmRjYzI5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1y
b290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgaWZyYW1lIGxvYWRlZCAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRp
bmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uOTZkMTFhYjk2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEs
MTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5j
T3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGlu
Z0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZp
b3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9m
IGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIv
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0
bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Nj
cm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJl
aGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9
ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZ
UEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2luOiAwOworICAg
IH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAg
ICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3Ro
OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIw
MDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcs
IHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2Nr
OyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRU
b1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0x
NXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bh
bj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+
CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2FkZWQiKTsKKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAg
dmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3Ag
PSAyNTA7CisgIGlmcmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRU
ZXN0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gaWZyYW1l
Tm9kZS5jb250ZW50RG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICBzdHlsZWRFbGVtZW50
ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1l
bnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
bGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5
IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24s
IG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyBy
ZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAi
aW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1
YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFu
dCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhh
dmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4g
eworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAg
IH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3
aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwLi4wNWViMzI3MmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjkgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFu
IG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIg
c21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLjMzMzNkNjRmODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCkBA
IC0wLDAgKzEsMTcxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVy
bmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFt
ZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9y
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxp
ZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9j
PSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2lu
OiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjog
YXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlv
cjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0n
d2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVu
dCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5s
aW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9
J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwt
YWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFj
azsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4K
KzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2Fk
ZWQiKTsKKyAgdmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2
ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1Jl
dmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZy
YW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgIHNjcm9sbGluZ1dpbmRvdyA9
IGlmcmFtZU5vZGUuY29udGVudFdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9k
ZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9
IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZl
YWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgo
c2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgp
OyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdX
aW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0Jl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsK
KyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIp
OworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Nj
cm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAg
ICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAg
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsK
KyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdX
aW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAp
OworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
ICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5n
V2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24s
ICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50
VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBv
bmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNt
b290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNl
dFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRv
dywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJp
bnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFu
IGluc3RhbnQgc2Nyb2xsaW5nIik7CisKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCA0N2ZkNWUxYTU0Li4zNmY1M2I2MGEzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENo
ZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNj
cm9sbCBiZWhhdmlvciByZWxpZXMgb24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBXZWIgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQg
b24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBFbmFibGUgQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCBvbiBzY3JvbGwgYmVoYXZpb3IgdGVzdHMgYW5kIHVw
ZGF0ZSBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRl
ZmF1bHQtY3NzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDoK
KworMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNo
IGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6CisKIDIwMTktMTItMTAgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1zeW5jIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2luLW9i
amVjdHMvY3Jvc3Mtb3JpZ2luLW9iamVjdHMuaHRtbCBmcm9tIHVzcHRyZWFtCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0
CmluZGV4IDNhYzBhMzdjZmYuLjg3NWE3MjdjOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NCBAQAogCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBoYXMgaW5pdGlhbCB2YWx1ZSBh
dXRvIGFzc2VydF90cnVlOiBzY3JvbGwtYmVoYXZpb3IgZG9lc24ndCBzZWVtIHRvIGJlIHN1cHBv
cnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9yIGRvZXMgbm90IGluaGVyaXQgYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBoYXMg
aW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgZG9lcyBu
b3QgaW5oZXJpdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0
CmluZGV4IDkwNjhiNzk3NTUuLjhkNGNhNjQxNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKIFBBU1MgSW5zdGFudCBzY3Jv
bGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAotRkFJTCBT
bW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU21vb3Ro
IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCmluZGV4IDY5MjVjZjA5MmMuLmZlNDc1YjAzOWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQ
RSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+
VGVzdGluZyBkZWZhdWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dAppbmRleCAyYjkxMjljMWNmLi41M2E5NjFlZjU2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMiwzNSArMiwzNSBA
QAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1G
QUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAor
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJ
TCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
NTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNt
b290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQuaHRtbAppbmRleCAzY2JkNzIyZjcyLi42YzE1OTI5YzlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50
PC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVk
LnR4dAppbmRleCBkOTIyMjU4YWYyLi45N2NhZWEyN2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTMsMzUgKzMsMzUgQEAgUEFTUyBQ
YWdlIGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
NDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190
aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVt
YmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBn
b3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFz
c2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3Qg
MjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQ
QVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1
dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAog
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJh
bWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCmluZGV4IGZjZjc1
YWExZGQuLjZkOWIyMjQyZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9y
IGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiB0
aGUgbWFpbiBmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25n
Ii8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFp
bHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGM2YmU5NjY2MWMuLjM4MjM4NWFhYjQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAg
LTMsMjcgKzMsMjcgQEAgUEFTUyBQYWdlIGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBi
dXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0
MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1
dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3cuaHRtbAppbmRleCA4Yzg4ZWM2ODYxLi5iZjM4NzMwNDI2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUg
aHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVu
dGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRl
c3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBvbiB0aGUg
d2luZG93IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2NhbGU9MSI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dAppbmRleCA3
Y2UxMGMwODk2Li40NDNhODIwZTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3Jv
bGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNj
cm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
c2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xs
LWJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IEVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
c2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50
cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKaW5kZXggM2E4OTA2NTMyYi4uM2YzZDliNzJkMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3Igd2l0aCBz
Y3JvbGxJbnRvVmlldyBmb3IgbmVzdGVkIHNjcm9sbGluZyBub2RlczwvdGl0bGU+CiA8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCmluZGV4IDAwNWQyYjYwNGQuLmVhYTBmZmYw
MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBd
IC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBl
bGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQi
IGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBX
YW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CmluZGV4IGI2ZmExYzJlYzguLjI3OTlmZGNjMjkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0z
LDM1ICszLDM1IEBAIFBBU1MgaWZyYW1lIGxvYWRlZAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlM
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAor
UEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3Ro
YW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
Ci1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBn
b3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3Vi
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3Vi
ZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmcgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAppbmRleCBlNjQxZTUzZTMz
Li5lOGNjYjY2YmU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVt
ZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1l
PC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dAppbmRleCBjYzY2NWViZGI4Li4wNWViMzI3MmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTMsMjcgKzMsMjcgQEAgUEFTUyBp
ZnJhbWUgbG9hZGVkCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJ
TCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xl
c3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3Ro
IHNjcm9sbGluZyAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9u
IHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKaW5kZXggZDkzMWUwMDNkNC4uOTI2ODRkNjc0ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURP
Q1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRp
dGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBh
bmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgogPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0NDk2
Y2YyZGNiLi4wNDFmMzZlYmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC03NDgsNiArNzQ4LDE1IEBAIHdlYmtpdC5vcmcvYi8xODk1OTQg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvcGVuZGlu
Zy1zCiAKIHdlYmtpdC5vcmcvYi8xODgwNzAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zdHJlYW1zL3BpcGluZy9lcnJvci1wcm9wYWdhdGlvbi1iYWNrd2FyZC5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KIAorIyBUZXN0cyBmb3Igc21vb3RoIHNjcm9sbCBiZWhhdmlvciBkbyBub3QgYWxs
IHdvcmsgYW5kIHRoZXkgYXJlIHNsb3csIHNvIGxldCdzIGp1c3Qgc2tpcCB0aGVtLgord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMTkxMzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBbIFNraXAgXQorCisjIFRo
aXMgaXMgZmFpbGluZyBvbiBtYWMtd2sxLCB0cnkgdG8gZmlndXJlIGl0IG91dCBpbiB0aGUgZm9s
bG93LXVwIGJ1Zy4KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS5odG1sIFsgU2tpcCBdCisKIHdlYmtp
dC5vcmcvYi8xODk5MDggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10
aW1pbmcvcmVzb3VyY2VfdGltaW5nLndvcmtlci5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5v
cmcvYi8xODk3NTYgWyBNb2phdmUrIF0gY29tcG9zaXRpbmcvZmlsdGVycy9vcGFjaXR5LWNoYW5n
ZS1vbi1maWx0ZXJlZC1wYWludHMtaW50by1hbmNlc3Rvci5odG1sIFsgUGFzcyBJbWFnZU9ubHlG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTIyMDY4NzMxYy4uMGU4MTRiYmMwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTk2NCw4ICs5NjQsMTAgQEAgc2V0KFdlYkNvcmVfTk9O
X1NWR19JRExfRklMRVMKICAgICBwYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsCiAgICAg
cGFnZS9SZXNpemVPYnNlcnZlckVudHJ5LmlkbAogICAgIHBhZ2UvU2NyZWVuLmlkbAorICAgIHBh
Z2UvU2Nyb2xsQmVoYXZpb3IuaWRsCiAgICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRs
CiAgICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsCisgICAgcGFnZS9TY3JvbGxPcHRp
b25zLmlkbAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAogICAgIHBhZ2UvU2hhcmVEYXRh
LmlkbAogICAgIHBhZ2UvVW5kb0l0ZW0uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmExNmI0NDBhZC4uYTQ4
MTFmYzgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0MCBAQAorMjAxOS0xMi0xMSAgQ2F0aGll
IENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBp
T1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBzdXBwb3J0IG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybS4g
SXQgcmVsaWVzIG9uIFVJU2Nyb2xsVmlldydzCisgICAgICAgIG5hdGl2ZSBzY3JvbGwgYW5pbWF0
aW9uIHN1cHBvcnQgYW5kIGlzIGV4ZWN1dGVkIGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAg
IFRlc3RzOiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxl
bWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbAorCisgICAg
ICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBSZXF1ZXN0cyBhIG5hdGl2ZSBzY3JvbGwgYW5p
bWF0aW9uIGJ5IGNhbGxpbmcgYW5pbWF0ZWQgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKCku
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUpOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIGlmIHRoaXMgaXMgYW4g
YW5pbWF0ZWQgc2Nyb2xsIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOiBVcGRhdGUgdGhlIHNj
cm9sbCBhbmltYXRpb24gc3RhdHVzIGZyb20gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZSk6IEFkZCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbiB0byBpbmRp
Y2F0ZSBpdCdzIGFuaW1hdGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpyZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gY29uc3QpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0RpZENoYW5nZSk6IFVwZGF0ZSB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9s
bCBvciBub3QuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgdGhlIHNj
cm9sbCBpcyBhbmltYXRlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8pOiBJZiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uIGlzIHRy
dWUsIHNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MsIGV2ZW4gaWYg
dGhlIHNjcm9sbCBwb3NpdGlvbiBkb2Vzbid0IGNoYW5nZS4KKyAgICAgICAgTWFpbnRhaW4gdGhl
IHN0YXR1cyBvZiBtX3N0b3BTY3JvbGxBbmltYXRpb24gYW5kIG1fcmVxdWVzdEFuaW1hdGVkU2Ny
b2xsLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJl
bnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQpOiBBbmltYXRlZCBzY3JvbGwgd29uJ3QgY2hhbmdlIHRo
ZSBzY3JvbGwgcG9zaXRpb24gaW1tZWRpYXRlbHksIHNvIGRvbid0IG5vdGlmeSB0aGUgc2Nyb2xs
aW5nIGluZm8gbm93LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OnNldFJlcXVlc3RBbmltYXRlZFNjcm9sbCk6IG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsIGlu
ZGljYXRlcyB0aGF0IHRoaXMgaXMgYW4gYW5pbWF0ZWQgc2Nyb2xsIHJlcXVlc3QuCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Ny
b2xsIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk6IE1haW50YWluIHRoZSBzY3Jv
bGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzIGNvbnN0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbik6IElmIHRoZSBOb2RlIGlzIHBlcmZvcm1pbmcgYSBzY3JvbGwg
YW5pbWF0aW9uLCB0aGUgcHJldmlvdXMgc2Nyb2xsIGFuaW1hdGlvbiBzaG91bGQgc3RvcCBmaXJz
dC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpuZWVkc1N0
b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxUeXBlcy5oOiBBZGQgU2Nyb2xsQmVoYXZpb3JUeXBlIHRvIGluZGljYXRlIGl0J3Mg
aW5zdGFudCBvciBzbW9vdGggc2Nyb2xsLgorICAgICAgICBBZGQgU2Nyb2xsQmVoYXZpb3JTdGF0
dXMgdG8gaW5kaWNhdGUgdGhlIHN0YXR1cyBvZiBzY3JvbGxpbmcuCisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbik6IFVwZGF0ZSBTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OlNjcm9sbGFibGVBcmVhKTogQWRkIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgY29uc3QpOiBNYWludGFpbiBjdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OnNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZz
ZXQpOiBTZW5kIGEgcXVlc3Qgb2YgbmF0aXZlIHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBSZXF1ZXN0cyBhIG5hdGl2
ZSBzY3JvbGwgYW5pbWF0aW9uIGJ5IGNhbGxpbmcgYW5pbWF0ZWQgcmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKCkuCisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVz
IG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgcHJvZ3JhbW1h
dGljIHNtb290aCBzY3JvbGxpbmcgaW4gV2ViS2l0IGZyb20gdGhlIENTU09NIFZpZXcKKyAgICAg
ICAgc3BlY2lmaWNhdGlvbiBbMV0uIFRvIHVzZSB0aGlzIGVmZmVjdCwgd2ViIGRldmVsb3BlcnMg
Y2FuIHBhc3MgYSBiZWhhdmlvciBwYXJhbWV0ZXIgKGF1dG8sCisgICAgICAgIHNtb290aCwgb3Ig
aW5zdGFudCkgdG8gRWxlbWVudC5zY3JvbGwsIEVsZW1lbnQuc2Nyb2xsVG8sIEVsZW1lbnQuc2Ny
b2xsQnksCisgICAgICAgIEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcsIFdpbmRvdy5zY3JvbGwsIFdp
bmRvdy5zY3JvbGxUbyBvciBXaW5kb3cuc2Nyb2xsQnkgWzJdLiBXaGVuIGJlaGF2aW9yCisgICAg
ICAgIGlzIGF1dG8sIHRoZSBpbnN0YW50L3Ntb290aCBjaGFyYWN0ZXJpc3RpYyBpcyBhY3R1YWxs
eSB0YWtlbiBmcm9tIHRoZSB2YWx1ZSBvZiBhIG5ldyBDU1MKKyAgICAgICAgc2Nyb2xsLWJlaGF2
aW9yIHByb3BlcnR5IFszXS4gQm90aCB0aGUgbmV3IENTUyBhbmQgRE9NIGJlaGF2aW9yIGFyZSBw
cm90ZWN0ZWQgYnkgYSBydW50aW1lCisgICAgICAgIGZsYWcuCisKKyAgICAgICAgWzFdIGh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3CisgICAgICAgIFsyXSBodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jZGljdGRlZi1zY3JvbGxvcHRpb25zCisgICAgICAgIFsz
XSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVo
YXZpb3IKKworICAgICAgICBUZXN0czogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbAorICAgICAgICAg
ICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXJvb3QuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbAor
ICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKKyAgICAgICAg
ICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c3ViZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cu
aHRtbAorICAgICAgICAqIFNvdXJjZXMudHh0OiBCdWlsZCBTY3JvbGxBbmltYXRpb25TbW9vdGgu
Y3BwIG9uIGFsbCBwbGF0Zm9ybXMuCisgICAgICAgICogU291cmNlc0dUSy50eHQ6IFJlbW92ZSBT
Y3JvbGxBbmltYXRpb25TbW9vdGguY3BwIHNpbmNlIGl0IGlzIGJ1aWx0IG9uIGFsbCBwbGF0Zm9y
bXMgbm93LgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbEludG9WaWV3KTogUGFzcyBzY3JvbGwgYmVoYXZpb3IsIGlmIGFueS4KKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbFRvKTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlz
IHNtb290aC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNjcm9sbExlZnQpOiBIYW5k
bGUgdGhlIGNhc2Ugd2hlbiBzY3JvbGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6c2V0U2Nyb2xsVG9wKTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xs
IGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9sbEJ5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2Nyb2xsVG8gY29uc3QpOiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiBzY3Jv
bGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICBUaGUgb3B0aW1pemF0aW9uIG9mIGNhbmNl
bCAoMCwgMCkgc2Nyb2xsaW5nIGlzIHNraXBwZWQgaWYgYW4gYW5pbWF0ZWQgc2Nyb2xsIGlzIGlu
IHByb2dyZXNzLgorICAgICAgICBPdGhlcndpc2UsIHRoZSBwcmV2aW91cyBzY3JvbGwgd29uJ3Qg
YmUgc3RvcHBlZCBieSBhIGZvbGxvdy11cCBzY3JvbGwuCisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bik6IFN0YXJ0IGFuIGFuaW1hdGVkIHNjcm9sbC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbjo6c2Nyb2xsKTogRnVuY3Rpb24g
dG8gYW5pbWF0ZSBzY3JvbGxpbmcgdG8gYSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICAgICog
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcDogQnVpbGQgdGhpcyBmaWxlIG9uIGFs
bCBwbGF0Zm9ybXMuIEFkZCBhCisgICAgICAgIHNtb290aEZhY3RvckZvclByb2dyYW1tYXRpY1Nj
cm9sbCBwYXJhbWV0ZXIgdG8gc2xvdyBkb3duIHRoZSBzbW9vdGggc2Nyb2xsaW5nLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVQZXJBeGlzRGF0YSk6IFNjYWxlIHRo
ZSB0aW1lIHBhcmFtZXRlcnMgb2YgdGhlCisgICAgICAgIGFuaW1hdGlvbiBzbyB0aGF0IGl0IGxv
b2tzIHNtb290aGVyLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5o
OiBEZWNsYXJlIHRoZSBjbGFzcyBvbiBhbGwgcGxhdGZvcm1zLgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpT
Y3JvbGxBbmltYXRvcik6IEluaXRpYWxpemUgYW5pbWF0aW9uIG1lbWJlciBmb3IgcHJvZ3JhbW1h
dGljIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxU
b09mZnNldCk6IEFuaW1hdGUgc2Nyb2xsaW5nIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucyk6IENvcHkg
bG9naWMgZnJvbSBTY3JvbGxBbmltYXRpb25TbW9vdGguY3BwLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VTY3JvbGxBbmltYXRpb25zKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFkZEhvcml6b250
YWxTY3JvbGxiYXIpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
OiBOZXcgYW5pbWF0aW9uIG1lbWJlciBmb3Igc21vb3RoIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OmNhbmNl
bEFuaW1hdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6
OlNjcm9sbEFuaW1hdG9yOjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OndpbGxFbmRMaXZl
UmVzaXplKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3Jv
bGxBbmltYXRvcjo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFs
U2Nyb2xsYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oOiBB
ZGQgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgdG8gaW5kaWNhdGUgdGhlIHN0YXR1cyBvZiBzY3JvbGxp
bmcuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6IEZvbGxvdyB0aGUgQ1NTT00gVmlldyBz
cGVjOiBJZiBhIHNjcm9sbCBpcyBpbgorICAgICAgICBwcm9ncmVzcywgd2UgaW50ZXJydXB0IGl0
IGFuZCBjb250aW51ZSB0aGUgc2Nyb2xsIGNhbGwgKGV2ZW4gd2hlbiB3ZSBhcmUgYXQgdGhlIGZp
bmFsIHBvc2l0aW9uKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFscyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUFuaW1hdGlvbik6
IFRvIGF2b2lkIGl0ZXJhdGUgY2FsbGluZywKKyAgICAgICAgbW92ZSB0aGUgcmVxdWVzdFNjcm9s
bFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uKSBjaGVja2luZyBvdXQgb2Ygc2V0U2Nyb2xsT2Zmc2V0
RnJvbUFuaW1hdGlvbigpLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6Y3VycmVudFNjcm9sbEJlaGF2aW9yU3Rh
dHVzIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvckdlbmVyaWM6OnVwZGF0ZVBvc2l0aW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2VsQW5pbWF0aW9ucyk6IENhbGwgcGFyZW50IG1l
bWJlciB0byBoYW5kbGUgcHJvZ3JhbW1hdGljIHNjcm9sbGluZy4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xs
TGVmdCk6IEFkZCBmbGFnIHRvIGluZGljYXRlIGFuaW1hdGVkIG9yIG5vdC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xsVG9wKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb1hQb3NpdGlvbik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQpOiBGb2xsb3cgdGhlIENTU09NIFZp
ZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGludGVycnVw
dCBpdCBhbmQgY29udGludWUgdGhlIHNjcm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJlIGF0IHRo
ZSBmaW5hbAorICAgICAgICBwb3NpdGlvbikuIEl0J3MgU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0
YW50IHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZXF1ZXN0U2Nyb2xs
UG9zaXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
T2Zmc2V0V2l0aEFuaW1hdGlvbik6IERpdHRvLiBUaGlzIGlzIHNpbWlsYXIgdG8gc2Nyb2xsVG9P
ZmZzZXQKKyAgICAgICAgYnV0IGFuaW1hdGVzIHRoZSBzY3JvbGwuIEl0J3MgU2Nyb2xsQmVoYXZp
b3JUeXBlOjpTbW9vdGggc2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNj
cm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNp
YmxlKTogQWdhaW4gZG9uJ3QgZG8gYW4gZWFybHkgcmV0dXJuIGlmIHNjcm9sbCBpcyBpbgorICAg
ICAgICBwcm9ncmVzcy4gV2UgY2FsbCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24gaW5zdGVh
ZCBvZiBzY3JvbGxUb09mZnNldCB3aGVuIGFwcHJvcHJpYXRlLgorICAgICAgICBOb3RlIHRoYXQg
dGhpcyBmdW5jdGlvbiBtYXkgbm90IHdvcmsgd2VsbCBmb3Igc2V2ZXJhbCBuZXN0ZWQgc2Nyb2xs
IGJveGVzIHdpdGggYXQgbGVhc3Qgb25lCisgICAgICAgIGVsZW1lbnQgd2l0aCBzbW9vdGggYmVo
YXZpb3IuIEl0IHdpbGwgaGFuZGxlZCBpbiBidWcgRm9sbG93LgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5oOiBBZGQgc2Nyb2xsIGJlaGF2aW9yIHRvIFNjcm9sbFRlY3RUb1Zpc2li
bGVPcHRpb25zLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldFNjcm9sbExlZnQpOiBBZGQgYW5pbWF0ZWQg
ZmxhZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldFNjcm9sbFRvcCk6IERp
dHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbExlZnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3ApOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVu
Y29uc3RyYWluZWRTY3JvbGxUbyk6CisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGll
Y2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZp
b3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAg
ICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHBhcnNpbmcgc2Nyb2xsLWJlaGF2aW9yIGNzcyBwcm9wZXJ0eSBhbmQgU2Ny
b2xsT3B0aW9ucy4KKworICAgICAgICBUZXN0czogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIElETCBmaWxlcyBmb3IgU2Nyb2xsT3B0aW9ucyBhbmQg
U2Nyb2xsQmVoYXZpb3IuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOiBBZGQgaGVhZGVycyBmb3IgU2Nyb2xsQmVoYXZvciBhbmQgU2Nyb2xs
T3B0aW9ucy4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkIFNjcm9sbEJlaGF2b3IgYW5kIFNj
cm9sbE9wdGlvbnMgaW1wbGVtZW50YXRpb24uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBBZGQgZmlsZXMgdG8gdGhlIGJ1aWxkIHN5c3RlbS4KKyAgICAgICAg
KiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDogSGFuZGxlIHNjcm9sbC1iZWhh
dmlvci4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9y
UHJvcGVydHlJblN0eWxlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydGllcy5qc29uOiBBZGQg
c2Nyb2xsLWJlaGF2aW9yLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOiBBZGQg
a2V5d29yZHMgZm9yIHNjcm9sbC1iZWhhdmlvci4KKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Bh
cnNlckNvbnRleHQuY3BwOiBBZGQgcnVudGltZSBjb25maWcgZm9yIHNjcm9sbC1iZWhhdmlvci4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0Lmg6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyQ29udGV4
dEhhc2g6Omhhc2gpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNw
cDogUmVtb3ZlIHNjcm9sbC1iZWhhdmlvciB0ZW1wbGF0ZXMuIEl0IGlzIGhhbmRsZWQgaW4gdGhl
IHNsb3cgcGF0aCBzaW5jZSBwcm9wZXJ0eSBjYW4gYmUgZGlzYWJsZWQuCisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5
SUQpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3VtZVNjcm9sbEJlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKTogUGFyc2Ugc2Nyb2xsLWJlaGF2aW9y
IChvbmx5IGlmIGVuYWJsZWQpLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnVzZVNtb290aFNjcm9sbGluZyk6IEhlbHBlciBmdW5j
aXRvbiB0byBkZXRlcm1pbmUgdGhlIHNjcm9sbCBiZWhhdmlvciB0byBhcHBseSB0byBhbiBlbGVt
ZW50IGZyb20gdGhlIENTUyBhbmQgRE9NIGJlaGF2aW9yLgorICAgICAgICAqIHBhZ2UvU2Nyb2xs
QmVoYXZpb3IuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxCZWhhdmlvci5pZGw6IEFk
ZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmg6IE1ha2UgdGhpcyBj
bGFzcyBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbi4gQWxzbyByZW1vdmUgdW5uZWNlc3Nhcnkg
Zm9yd2FyZCBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEludG9WaWV3T3B0aW9u
cy5pZGw6IE1ha2UgdGhpcyBjbGFzcyBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbi4KKyAgICAg
ICAgKiBwYWdlL1Njcm9sbE9wdGlvbnMuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxP
cHRpb25zLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxUb09wdGlvbnMuaDogTWFr
ZSB0aGlzIHN0cnVjdCBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbnMuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxUb09wdGlvbnM6OlNjcm9sbFRvT3B0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
Ojpub3JtYWxpemVOb25GaW5pdGVDb29yZGluYXRlc09yRmFsbEJhY2tUbyk6IENvcHkgdGhlIGN1
cnJlbnQgU2Nyb2xsVG9PcHRpb25zIHNvIHRoYXQgdGhlIHNjcm9sbCBiZWhhdmlvciBpcyBwcmVz
ZXJ2ZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xh
c3MgaW5oZXJpdCBmcm9tIFNjcm9sbE9wdGlvbnMuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55
YW1sOiBOZXcgc2V0dGluZyBmb3IgQ1NTT00gVmlldyBzbW9vdGggc2Nyb2xsaW5nLgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOiBIYW5kbGUgJ3Ntb290aCBzY3JvbGxp
bmcnIGJvb2xlYW4gZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjp1c2VTbW9v
dGhTY3JvbGxpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFVz
ZVNtb290aFNjcm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5pdGlh
bFVzZVNtb290aFNjcm9sbGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAq
IHN0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTbW9vdGhTY3JvbGxpbmcpOgorCiAyMDE5LTEyLTEw
ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXhlZCBQ
YXR0ZXJuLmggY29tcGlsZSBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
MGJmYWJlY2E0My4uZTk3MTRjODVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC05MTUsOCArOTE1LDEwIEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3Bh
Z2UvUmVzaXplT2JzZXJ2ZXJDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9SZXNp
emVPYnNlcnZlckVudHJ5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1NjcmVlbi5pZGwgXAor
ICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxCZWhhdmlvci5pZGwgXAogICAgICQoV2ViQ29yZSkv
cGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbE9wdGlv
bnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9wYWdlL1NoYXJlRGF0YS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9VbmRv
SXRlbS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZWU4OWVlM2YwYy4uMmYxNzcyNjBmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCkBAIC04MTYsOCArODE2LDEwIEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1JlbW90ZUZyYW1lLmgKICAgICBwYWdlL1Jl
bmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCiAgICAgcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgKKyAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmgKICAgICBwYWdlL1Njcm9sbEludG9WaWV3T3B0
aW9ucy5oCiAgICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaAorICAgIHBhZ2UvU2Nyb2xs
T3B0aW9ucy5oCiAgICAgcGFnZS9TY3JvbGxUb09wdGlvbnMuaAogICAgIHBhZ2UvU2VjdXJpdHlP
cmlnaW4uaAogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
YmNhNzNjZjllNy4uM2U2ODA0NGYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE2NDcsNiArMTY0Nyw3
IEBAIHBhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwCiBwYWdlL1Jlc291cmNlVXNhZ2VUaHJl
YWQuY3BwCiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCiBwYWdlL1NjcmVlbi5jcHAK
K3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAogcGFnZS9T
ZWN1cml0eU9yaWdpbkRhdGEuY3BwCiBwYWdlL1NlY3VyaXR5UG9saWN5LmNwcApAQCAtMTc1Miw2
ICsxNzUzLDcgQEAgcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAogcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAogcGxhdGZvcm0vU1NMS2V5R2VuZXJhdG9yLmNw
cAogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCitwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguY3BwCiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAogcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC0zMzc2LDggKzMzNzgsMTAgQEAgSlNT
Vkdab29tQW5kUGFuLmNwcAogSlNTVkdab29tRXZlbnQuY3BwCiBKU1NjcmVlbi5jcHAKIEpTU2Ny
aXB0UHJvY2Vzc29yTm9kZS5jcHAKK0pTU2Nyb2xsQmVoYXZpb3IuY3BwCiBKU1Njcm9sbEludG9W
aWV3T3B0aW9ucy5jcHAKIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcAorSlNTY3JvbGxPcHRp
b25zLmNwcAogSlNTY3JvbGxUb09wdGlvbnMuY3BwCiBKU1NlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQuY3BwCiBKU1NlcnZpY2VXb3JrZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CmluZGV4IGMy
YzI3MDliODcuLjU0YjUzNmVkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNH
VEsudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CkBAIC02Myw3ICs2Myw2
IEBAIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuY3BwCiBw
YWdlL3Njcm9sbGluZy9nZW5lcmljL1Njcm9sbGluZ1RocmVhZEdlbmVyaWMuY3BwCiAKIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuY3BwCi1wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguY3BwCiBwbGF0Zm9ybS9Vc2VyQWdlbnRRdWlya3MuY3BwCiAKIHBsYXRmb3JtL2dlbmVy
aWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAzZTZmNTQzM2IuLmJjOTk3MDZlODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTIzOTcsNiArMjM5Nyw4IEBACiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAvKiBW
aXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFFOEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5n
ZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNUVCMCAvKiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDEx
REE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IH07CiAJCTgz
NDQ3NkVGMURBNUJDNUUwMDJCNUVDMSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1QTUx
RTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi87IH07CisJCTgzNDQ3NkVG
MURBNUJDNUUwMDJCNkVCMCAvKiBKU1Njcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyog
SlNTY3JvbGxCZWhhdmlvci5oICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQzEgLyog
SlNTY3JvbGxPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmggKi87
IH07CiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1
QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi87IH07CiAJCTgzNDhCRkFDMUI4
NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDhCRkFBMUI4NTcyOTUwMDkxMkYzNiAvKiBDbGFz
c0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODM0REZBRDAxRjdEQUU1RDAwQzI3MjVCIC8qIFNoYXJl
ZFN0cmluZ0hhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNERGQUNDMUY3REFFNTYwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI0NTEsNiArMjQ1
Myw4IEBACiAJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9uQnViYmxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0M0NUI4RDFE
QzJCNjdDMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzQzU3OTVEMURBNUMzMDEwMDZGOUM4NiAv
KiBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dpY2Fs
UG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFE
QTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZB
Qzg2IC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4M0M1
Nzk1RDFEQTVDMzAxMDA2RkFDOTcgLyogU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDQTggLyogU2Nyb2xsVG9PcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFE
QTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNEMzVBRUMxQzcxODdGQTAwRjcwRDVBIC8q
IFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUVBMUM3MTg3RUQwMEY3MEQ1QSAvKiBYTUxIdHRwUmVx
dWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDM1QUYyMUM3MThEOTAwMEY3MEQ1QSAvKiBK
U1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBKU1hNTEh0dHBS
ZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKQEAgLTEwMTY3LDkgKzEwMTcxLDE0IEBACiAJCTgz
NERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFN0cmluZ0hhc2guY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xs
TG9naWNhbFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bExvZ2ljYWxQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNF
NzFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVo
YXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQmVoYXZpb3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM0
IC8qIFNjcm9sbEJlaGF2aW9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2Nyb2xsQmVoYXZpb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNF
NzFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsVG9PcHRpb25zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dp
Y2FsUG9zaXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbExvZ2ljYWxQb3Np
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIw
MDM1NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNjcm9sbEludG9WaWV3T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU2Nyb2xsQmVoYXZpb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2Nyb2xsT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlv
bnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbFRvT3B0aW9ucy5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTIwQzdEMUE3MUJGQ0MwMDZCRDJBQSAvKiBDU1NG
b250RmFtaWx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZvbnRGYW1p
bHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1NjU3QzYxRUNBQjBFODAwQ0RF
NzJEIC8qIEpTRE9NTWF0cml4SW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0RPTU1hdHJpeEluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTAyOTEsOSArMTAzMDAsMTMgQEAKIAkJODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5h
dGl2ZU5vZGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZl
Tm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMDFEQTVB
NTFFMDBGRkQ4RDQgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkQ4RTUgLyogSlNT
Y3JvbGxJbnRvVmlld09wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1Njcm9sbE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
M0U5QjMwMDFEQTVBNTFFMDBGRkU4RjYgLyogSlNTY3JvbGxUb09wdGlvbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxUb09wdGlvbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkQ4RDQgLyogSlNT
Y3JvbGxMb2dpY2FsUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODNFOUIzMDExREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThENCAv
KiBKU1Njcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
U2Nyb2xsQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDEx
REE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1Njcm9sbE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsVG9PcHRpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1OThCMUY1MDk1OEIwMDNFOEIzMCAvKiBKU0Vy
cm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFcnJvckNh
bGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1OThDMUY1MDk1OEIw
MDNFOEIzMCAvKiBKU0Vycm9yQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNFcnJvckNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIwNzY4LDEwICsyMDc4MSwxNSBAQAogCQkJCUJDRUMwMUJBMEMyNzREQUMwMDlGNEVD
OSAvKiBTY3JlZW4uY3BwICovLAogCQkJCUJDRUMwMUJCMEMyNzREQUMwMDlGNEVDOSAvKiBTY3Jl
ZW4uaCAqLywKIAkJCQlCQ0VDMDFCQzBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmlkbCAqLywK
KwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MzQgLyogU2Nyb2xsQmVoYXZpb3IuY3BwICovLAor
CQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5oICovLAorCQkJ
CTgzNTBDM0U4MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5pZGwgKi8sCiAJCQkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3T3B0aW9ucy5oICovLAog
CQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRs
ICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dpY2FsUG9zaXRp
b24uaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBv
c2l0aW9uLmlkbCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0
aW9ucy5oICovLAorCQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25z
LmlkbCAqLywKIAkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25z
LmggKi8sCiAJCQkJODM1MEMzRTgxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5p
ZGwgKi8sCiAJCQkJQkNEMEUwRjcwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmNw
cCAqLywKQEAgLTI1NTYzLDEwICsyNTU4MSwxNCBAQAogCQkJCTU4QjJGQTAyMjIzMkQ2MEEwMDkz
OEQ2MyAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnkuaCAqLywKIAkJCQlCQ0VDMDFDMDBDMjc0RERE
MDA5RjRFQzkgLyogSlNTY3JlZW4uY3BwICovLAogCQkJCUJDRUMwMUMxMEMyNzREREQwMDlGNEVD
OSAvKiBKU1NjcmVlbi5oICovLAorCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThENCAvKiBKU1Nj
cm9sbEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyogSlNT
Y3JvbGxCZWhhdmlvci5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Nj
cm9sbEludG9WaWV3T3B0aW9ucy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEU1
IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8sCiAJCQkJODNFOUIzMDAxREE1QTUxRTAw
RkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcCAqLywKIAkJCQk4M0U5QjMwMTFE
QTVBNTFFMDBGRkQ4RDQgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCAqLywKKwkJCQk4M0U5
QjMwMDFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmNwcCAqLywKKwkJCQk4M0U5
QjMwMTFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmggKi8sCiAJCQkJODNFOUIz
MDAxREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmNwcCAqLywKIAkJCQk4M0U5
QjMwMTFEQTVBNTFFMDBGRkU4RjYgLyogSlNTY3JvbGxUb09wdGlvbnMuaCAqLywKIAkJCQk3Qzcz
RkIwRjE5MUVGNkY0MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXIuY3BwICovLApAQCAt
MzA5MTIsOCArMzA5MzQsMTAgQEAKIAkJCQk1RTJDNDM2QzFCQ0YwNzFFMDAwMUUyQkMgLyogSlNS
VENUcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFDMzBDMjc0REREMDA5RjRF
QzkgLyogSlNTY3JlZW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUNFMTJCMDNGNjEwMDNB
NTgzQSAvKiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzNDQ3
NkVGMURBNUJDNUUwMDJCNkVCMCAvKiBKU1Njcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQzEgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNUVCMCAvKiBKU1Njcm9s
bExvZ2ljYWxQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJODM0NDc2RUYxREE1QkM1RTAw
MkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUQyIC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRUQwNkFEMTFDNzc3NTQ4MDBGREZBRjEgLyogSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTgyQzI1NjFGMzE0M0NEMDA1OUJBN0MgLyogSlNT
ZXJ2aWNlV29ya2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTE3LDYgKzMyMTQxLDcgQEAKIAkJ
CQk0NEM5OTE4NjBGM0QxRUJFMDA1ODY2NzAgLyogU2Nyb2xsYmFyVGhlbWVJT1MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDOEI4NTNFMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3JvbGxiYXJUaGVtZU1h
Yy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNzE0MDYxNDIxNzBCODAwREIzM0JBIC8qIFNjcm9s
bGJhclRoZW1lTW9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZB
Qzg2IC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE4NEYwNTE0M0JB
N0JEMDA1MUQxNTMgLyogU2Nyb2xsQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2
MDVBRUQxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUY2MkVFODE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzIxNTMsNiArMzIxNzgsNyBAQAogCQkJCTgzQzU3OTVE
MURBNUMzMDEwMDZGOUM5NyAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdBQUZFOEQwMTlDQjg2NzIwMDBGNTZEOCAvKiBTY3JvbGxMYXRjaGluZ1N0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFD
OTcgLyogU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ3ODc1NTQxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNDY3MjkyODFFMERFNjg1MDBBQ0MzRDggLyogU2Nyb2xsU25hcE9mZnNldHNJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDQTggLyogU2Nyb2xsVG9PcHRp
b25zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMWM0ZTM2ZjE0OS4uZDRhYmYyM2I3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKQEAgLTMzOTMsNiArMzM5MywxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVF
eHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAg
ICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlQXV0byk7CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZVRvdWNoKTsKICNlbmRpZgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
U2Nyb2xsQmVoYXZpb3I6CisgICAgICAgICAgICBpZiAoIXN0eWxlLnVzZVNtb290aFNjcm9sbGlu
ZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmll
clZhbHVlKENTU1ZhbHVlQXV0byk7CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVNtb290aCk7CiAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlQZXJzcGVjdGl2ZToKICAgICAgICAgICAgIGlmICghc3R5bGUuaGFzUGVyc3BlY3RpdmUo
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZU5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KaW5k
ZXggNDE1NzhhOTRlZC4uZjk4MmQzZjVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGll
cy5qc29uCkBAIC0zNTU3LDYgKzM1NTcsMTYgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0
dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcvc2hhcGVzLmh0bWwiCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0sCisgICAgICAgICJzY3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAgICAidmFsdWVz
IjogWworICAgICAgICAgICAgICAgICJhdXRvIiwKKyAgICAgICAgICAgICAgICAic21vb3RoIgor
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAg
ICAgICAgICJjYXRlZ29yeSI6ICJjc3NvbS12aWV3IiwKKyAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInNoYXBlLXJlbmRlcmlu
ZyI6IHsKICAgICAgICAgICAgICJpbmhlcml0ZWQiOiB0cnVlLAogICAgICAgICAgICAgInZhbHVl
cyI6IFsKQEAgLTY0ODksNiArNjQ5OSwyMiBAQAogICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0
cHM6Ly93d3cudzMub3JnL1RSL2Nzcy11aS00LyNwcm9wZGVmLXVzZXItc2VsZWN0IgogICAgICAg
ICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Nyb2xsLWJlaGF2aW9yIjogeworICAgICAg
ICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiYXV0byIsCisgICAgICAgICAgICAg
ICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0
aWVzIjogeworICAgICAgICAgICAgICAgICJjb252ZXJ0ZXIiOiAiU21vb3RoU2Nyb2xsaW5nIiwK
KyAgICAgICAgICAgICAgICAibmFtZS1mb3ItbWV0aG9kcyI6ICJVc2VTbW9vdGhTY3JvbGxpbmci
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAgICAgICAgICAgICAg
ICAic3RhdHVzIjogImV4cGVyaW1lbnRhbCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAi
c3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInNjcm9sbC1wYWRkaW5nIjogewogICAgICAgICAg
ICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAiZW5hYmxlLWlmIjog
IkVOQUJMRV9DU1NfU0NST0xMX1NOQVAiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgppbmRleCA4ZGZlM2FiYjIxLi5kYTgyNjllNjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTM4OCw2ICsxMzg4LDEwIEBAIHBhbi15CiBwaW5jaC16b29t
CiAjZW5kaWYKIAorLy8gc2Nyb2xsLWJlaGF2aW9yCisvLyBhdXRvCitzbW9vdGgKKwogLy8gaGFu
Z2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKaW5kZXggNzUzNzE4OGNiOS4uNzFmOWFhNjJj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3Bw
CkBAIC03NSw2ICs3NSw3IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoY29u
c3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAgICAgYXR0YWNobWVu
dEVuYWJsZWQgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmF0dGFj
aG1lbnRFbGVtZW50RW5hYmxlZCgpOwogI2VuZGlmCiAgICAgZGVmZXJyZWRDU1NQYXJzZXJFbmFi
bGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQoKTsKKyAg
ICBzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLkNTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWQoKTsKICAgICB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gZG9jdW1l
bnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxz
ZTsKIH0KIApAQCAtOTksNiArMTAwLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuYXR0
YWNobWVudEVuYWJsZWQgPT0gYi5hdHRhY2htZW50RW5hYmxlZAogI2VuZGlmCiAgICAgICAgICYm
IGEuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVk
CisgICAgICAgICYmIGEuc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIuc2Nyb2xsQmVoYXZpb3JF
bmFibGVkCiAgICAgICAgICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0Rv
Y3VtZW50U2VjdXJpdHlPcmlnaW4KICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09
IGIudXNlU3lzdGVtQXBwZWFyYW5jZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJDb250ZXh0LmgKaW5kZXggODY1MjVmZDcwYy4uYzc0ZGM5NGMyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTY1LDYgKzY1LDcg
QEAgcHVibGljOgogICAgIGJvb2wgYXR0YWNobWVudEVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlm
CiAgICAgYm9vbCBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wg
c2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAgICAvLyBUaGlzIGlzIG9u
bHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgogICAgIGJvb2wgaGFzRG9j
dW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMTYsNyArMTE3LDggQEAgc3RydWN0
IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
ICAgICAgICAgICAgJiBrZXkuYXR0YWNobWVudEVuYWJsZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgPDwgMTEKICNlbmRpZgotICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPDwgMTI7IC8vIEtlZXAgdGhpcyBsYXN0LgorICAgICAgICAg
ICAgJiBrZXkuc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICAgICAgPDwgMTIK
KyAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDw8IDEzOyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAgICAgaGFzaCBePSBXVEY6OmludEhh
c2goYml0cyk7CiAgICAgICAgIHJldHVybiBoYXNoOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRleCAzMWQxMmFiOWFiLi40
MjEyODg5ZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckZhc3RQYXRocy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJG
YXN0UGF0aHMuY3BwCkBAIC02MzYsMTAgKzYzNiw2IEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBhdGhz
Ojppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlk
CiAgICAgICAgICAgICB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3RpY2t5IHx8IHZhbHVlSUQgPT0g
Q1NTVmFsdWVXZWJraXRTdGlja3k7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJlc2l6ZTogLy8gbm9u
ZSB8IGJvdGggfCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBhdXRvCiAgICAgICAgIHJldHVybiB2
YWx1ZUlEID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQm90aCB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlSG9yaXpvbnRhbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVmVydGljYWwg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG87Ci0gICAgLy8gRklYTUUtTkVXUEFSU0VSOiBJbnZl
c3RpZ2F0ZSB0aGlzIHByb3BlcnR5LgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhh
dmlvcjogLy8gYXV0byB8IHNtb290aAotICAgIC8vICAgICBBU1NFUlQoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6Y3Nzb21TbW9vdGhTY3JvbGxFbmFibGVkKCkpOwotICAgIC8vICAgcmV0dXJuIHZh
bHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTbW9vdGg7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVNoYXBlUmVuZGVyaW5nOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9
PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU9wdGltaXplU3BlZWQgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZUNyaXNwZWRnZXMgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUdlb21ldHJp
Y1ByZWNpc2lvbjsKICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlTGluZWpvaW46CkBAIC05Mzks
NyArOTM1LDYgQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5SUQo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlGb250S2Vy
bmluZzoKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5SHlwaGVuczoKICAgICAvLyBjYXNlIENTU1By
b3BlcnR5T3ZlcmZsb3dBbmNob3I6Ci0gICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2
aW9yOgogICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxTbmFwVHlwZToKICAgICAvLyBjYXNl
IENTU1Byb3BlcnR5VGV4dEFsaWduTGFzdDoKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5VGV4dENv
bWJpbmVVcHJpZ2h0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcAppbmRleCBlYmQwZWFmNWY2Li42M2Y1YWI1MmY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjMyNyw2ICsyMzI3
LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBjb25zdW1lU2Nyb2xsU25hcFR5cGUo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAKICNlbmRpZgogCitzdGF0aWMgUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0gcmFuZ2UucGVlaygpLmlkKCk7CisgICAg
aWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVTbW9vdGgp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2Up
OworfQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVyUmFkaXVzQ29ybmVy
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUp
CiB7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEgPSBjb25zdW1l
TGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRp
dmUpOwpAQCAtMzkyNyw2ICszOTM1LDEwIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQ
YXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVNjcm9sbFNuYXBUeXBlOgogICAgICAgICByZXR1cm4gY29uc3VtZVNj
cm9sbFNuYXBUeXBlKG1fcmFuZ2UpOwogI2VuZGlmCisgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9s
bEJlaGF2aW9yOgorICAgICAgICBpZiAoIW1fY29udGV4dC5zY3JvbGxCZWhhdmlvckVuYWJsZWQp
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3Jv
bGxCZWhhdmlvcihtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDoKICAgICAgICAg
cmV0dXJuIGNvbnN1bWVDbGlwKG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKICNpZiBFTkFCTEUo
UE9JTlRFUl9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNzBkOWUxYjBhZS4uYmU1
YTg1MjZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODMyLDcgKzgzMiw2IEBAIHZvaWQg
RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoT3B0aW9uYWw8VmFyaWFudDxib29sLCBTY3JvbGxJbnRv
Vmlld09wdGlvbnM+PiYmIGFyCiAgICAgYm9vbCBpbnNpZGVGaXhlZDsKICAgICBMYXlvdXRSZWN0
IGFic29sdXRlQm91bmRzID0gcmVuZGVyZXIoKS0+YWJzb2x1dGVBbmNob3JSZWN0KCZpbnNpZGVG
aXhlZCk7CiAKLSAgICAvLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQzKTogU3VwcG9ydCBTY3Jv
bGxCZWhhdmlvci4KICAgICBTY3JvbGxJbnRvVmlld09wdGlvbnMgb3B0aW9uczsKICAgICBpZiAo
YXJnKSB7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBhcmcudmFsdWUoKTsKQEAgLTg1MSw3ICs4NTAs
OCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwg
U2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgogICAgICAgICBTZWxlY3Rpb25SZXZlYWxNb2Rl
OjpSZXZlYWwsCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFsaWduWCA6IGFsaWduWSwKICAgICAg
ICAgaXNIb3Jpem9udGFsID8gYWxpZ25ZIDogYWxpZ25YLAotICAgICAgICBTaG91bGRBbGxvd0Ny
b3NzT3JpZ2luU2Nyb2xsaW5nOjpObworICAgICAgICBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Ny
b2xsaW5nOjpObywKKyAgICAgICAgb3B0aW9ucy5iZWhhdmlvci52YWx1ZU9yKFNjcm9sbEJlaGF2
aW9yOjpBdXRvKQogICAgIH07CiAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShh
YnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIHZpc2libGVPcHRpb25zKTsKIH0KQEAgLTkxMiw3
ICs5MTIsNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYg
b3B0aW9ucykKIAogdm9pZCBFbGVtZW50OjpzY3JvbGxCeShkb3VibGUgeCwgZG91YmxlIHkpCiB7
Ci0gICAgc2Nyb2xsQnkoeyB4LCB5IH0pOworICAgIHNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9ucyh4
LCB5KSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25z
JiBvcHRpb25zLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKQEAgLTk0OCwxMyArOTQ4LDE3IEBA
IHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBT
Y3JvbGxDbGFtcGluZyBjbGFtcGluZykKICAgICAgICAgYWRqdXN0Rm9yQWJzb2x1dGVab29tKHJl
bmRlcmVyLT5zY3JvbGxMZWZ0KCksICpyZW5kZXJlciksCiAgICAgICAgIGFkanVzdEZvckFic29s
dXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsVG9wKCksICpyZW5kZXJlcikKICAgICApOwotICAgIHJl
bmRlcmVyLT5zZXRTY3JvbGxMZWZ0KGNsYW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy5sZWZ0
LnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKLSAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKGNs
YW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgY2xhbXBpbmcp
OworICAgIEludFBvaW50IHNjcm9sbFBvc2l0aW9uKAorICAgICAgICBjbGFtcFRvSW50ZWdlcihz
Y3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZl
Wm9vbSgpKSwKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLnRvcC52YWx1
ZSgpICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKQorICAgICk7CisgICAgYm9v
bCBhbmltYXRlZCA9IHVzZVNtb290aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3Iu
dmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0byksICp0aGlzKTsKKyAgICByZW5kZXJlci0+c2V0
U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
YW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxUbyhkb3VibGUg
eCwgZG91YmxlIHkpCiB7Ci0gICAgc2Nyb2xsVG8oeyB4LCB5IH0pOworICAgIHNjcm9sbFRvKFNj
cm9sbFRvT3B0aW9ucyh4LCB5KSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsQnlVbml0cyhp
bnQgdW5pdHMsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMTI4OCwxMyArMTI5
MiwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQpCiAgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlm
IChkb2N1bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKLSAgICAgICAgICAg
IGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGlu
dD4obmV3TGVmdCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVG
YWN0b3IoKSksIGZyYW1lLT52aWV3KCktPnNjcm9sbFkoKSkpOworICAgICAgICBpZiAoYXV0byog
ZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAg
ICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1MDU5CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gZG9jdW1lbnQoKS5kb2N1bWVudEVs
ZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICpkb2N1
bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnNl
dFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4obmV3TGVmdCAqIGZyYW1l
LT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSksIGZyYW1lLT52
aWV3KCktPnNjcm9sbFkoKSksIGFuaW1hdGVkKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcmVuZGVyQm94KCkpIHsKLSAgICAg
ICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoc3RhdGljX2Nhc3Q8aW50PihuZXdMZWZ0ICogcmVu
ZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGlj
KTsKKyAgICAgICAgaW50IGNsYW1wZWRMZWZ0ID0gY2xhbXBUb0ludGVnZXIobmV3TGVmdCAqIHJl
bmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGJvb2wgYW5pbWF0ZWQg
PSB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICp0aGlzKTsKKyAgICAg
ICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoY2xhbXBlZExlZnQsIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYywgYW5pbWF0ZWQpOwogICAgICAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBy
ZW5kZXJlci0+bGF5ZXIoKSkKICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxT
aG91bGRDbGVhckxhdGNoZWRTdGF0ZSh0cnVlKTsKICAgICB9CkBAIC0xMzA1LDEzICsxMzE1LDE5
IEBAIHZvaWQgRWxlbWVudDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3ApCiAgICAgZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlmIChkb2N1
bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKLSAgICAgICAgICAgIGZyYW1l
LT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZyYW1lLT52aWV3KCktPnNjcm9s
bFgoKSwgc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAq
IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKSk7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9
IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkgeworICAgICAgICAgICAgLy8gRklYTUU6
IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgpPworICAgICAgICAg
ICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkK
KyAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgp
ICYmIHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvcjo6QXV0bywgKmRvY3VtZW50KCku
ZG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xs
UG9zaXRpb24oSW50UG9pbnQoZnJhbWUtPnZpZXcoKS0+c2Nyb2xsWCgpLCBzdGF0aWNfY2FzdDxp
bnQ+KG5ld1RvcCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVG
YWN0b3IoKSkpLCBhbmltYXRlZCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKSB7Ci0gICAgICAgIHJlbmRl
cmVyLT5zZXRTY3JvbGxUb3Aoc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiByZW5kZXJlci0+c3R5
bGUoKS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOworICAgICAg
ICBpbnQgY2xhbXBlZFRvcCA9IGNsYW1wVG9JbnRlZ2VyKG5ld1RvcCAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9vdGhT
Y3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICp0aGlzKTsKKyAgICAgICAgcmVuZGVyZXIt
PnNldFNjcm9sbFRvcChjbGFtcGVkVG9wLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1h
dGVkKTsKICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVy
KCkpCiAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRj
aGVkU3RhdGUodHJ1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDA1
NjhiMDY5ZGMuLjI4YjQ2NWYwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE1
OTUsNyArMTU5NSw3IEBAIGRvdWJsZSBET01XaW5kb3c6OmRldmljZVBpeGVsUmF0aW8oKSBjb25z
dAogCiB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5KSBjb25zdAog
ewotICAgIHNjcm9sbEJ5KHsgeCwgeSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMo
eCwgeSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsQnkoY29uc3QgU2Nyb2xsVG9PcHRp
b25zJiBvcHRpb25zKSBjb25zdApAQCAtMTYxNywxMCArMTYxNywxMCBAQCB2b2lkIERPTVdpbmRv
dzo6c2Nyb2xsQnkoY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zKSBjb25zdAogCiB2b2lk
IERPTVdpbmRvdzo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5LCBTY3JvbGxDbGFtcGluZyBj
bGFtcGluZykgY29uc3QKIHsKLSAgICBzY3JvbGxUbyh7IHgsIHkgfSwgY2xhbXBpbmcpOworICAg
IHNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucyh4LCB5KSwgY2xhbXBpbmcpOwogfQogCi12b2lkIERP
TVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3JvbGxD
bGFtcGluZykgY29uc3QKK3ZvaWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09w
dGlvbnMmIG9wdGlvbnMsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKSBjb25zdAogewogICAgIGlm
ICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE2
MzMsMTIgKzE2MzMsMjIgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRv
T3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0CiAgICAgICAgIHZpZXctPmNv
bnRlbnRzU2Nyb2xsUG9zaXRpb24oKS54KCksIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24o
KS55KCkKICAgICApOwogCi0gICAgaWYgKCFzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICYm
ICFzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkgJiYgdmlldy0+Y29udGVudHNTY3JvbGxQb3Np
dGlvbigpID09IEludFBvaW50KDAsIDApKQorICAgIC8vIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9u
IGZvciB0aGUgY29tbW9uIGNhc2Ugb2Ygc2Nyb2xsaW5nIHRvICgwLCAwKSB3aGVuIHRoZSBzY3Jv
bGxlciBpcyBhbHJlYWR5IGF0IHRoZSBvcmlnaW4uCisgICAgLy8gSWYgYW4gYW5pbWF0ZWQgc2Ny
b2xsIGlzIGluIHByb2dyZXNzLCB0aGlzIG9wdGltaXphdGlvbiBpcyBza2lwcGVkIHRvIGVuc3Vy
ZSB0aGF0IHRoZSBhbmltYXRlZCBzY3JvbGwgaXMgcmVhbGx5IHN0b3BwZWQuCisgICAgaWYgKHZp
ZXctPmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVz
OjpOb3RJbkFuaW1hdGlvbiAmJiAhc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Ny
b2xsVG9PcHRpb25zLnRvcC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24o
KSA9PSBJbnRQb2ludCgwLCAwKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZG9jdW1lbnQoKS0+
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBJbnRQb2ludCBs
YXlvdXRQb3Modmlldy0+bWFwRnJvbUNTU1RvTGF5b3V0VW5pdHMoc2Nyb2xsVG9PcHRpb25zLmxl
ZnQudmFsdWUoKSksIHZpZXctPm1hcEZyb21DU1NUb0xheW91dFVuaXRzKHNjcm9sbFRvT3B0aW9u
cy50b3AudmFsdWUoKSkpOworCisgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQo
KS0+c2Nyb2xsaW5nRWxlbWVudCgpPworICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgaWYgKGRvY3VtZW50KCktPmRvY3VtZW50RWxl
bWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3IudmFs
dWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0byksICpkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQo
KSkpIHsKKyAgICAgICAgdmlldy0+c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGxheW91dFBv
cywgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFtcGluZyk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICB2aWV3LT5zZXRDb250ZW50c1Njcm9sbFBvc2l0aW9uKGxheW91dFBvcyk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAwNDAxMmY5ZWZmLi43MzFlMzIy
OTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMjc5LDcgKzIyNzksNyBAQCB2
b2lkIEZyYW1lVmlldzo6c2Nyb2xsRWxlbWVudFRvUmVjdChjb25zdCBFbGVtZW50JiBlbGVtZW50
LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIHNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGJv
dW5kcy54KCkgLSBjZW50ZXJpbmdPZmZzZXRYIC0gcmVjdC54KCksIGJvdW5kcy55KCkgLSBjZW50
ZXJpbmdPZmZzZXRZIC0gcmVjdC55KCkpKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgRnJh
bWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9z
aXRpb24sIGJvb2wgYW5pbWF0ZWQpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywg
c3RyZWFtIDw8ICJGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRp
b24gPDwgIiAsIGNsZWFyaW5nIGFuY2hvciIpOwogCkBAIC0yMjkyLDcgKzIyOTIsMTAgQEAgdm9p
ZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3Jv
bGxQb3NpdGlvbikKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgaWYgKHBh
Z2UgJiYgcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKICAgICAgICAgc2Nyb2xsQW5p
bWF0b3IoKS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocGFnZS0+d2hlZWxFdmVudFRlc3RNb25p
dG9yKCkpOwotICAgIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9u
KTsKKyAgICBpZiAoYW5pbWF0ZWQpCisgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pLCBjdXJyZW50U2Nyb2xs
VHlwZSgpKTsKKyAgICBlbHNlCisgICAgICAgIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uKTsKIAogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKG9sZFNjcm9sbFR5
cGUpOwogfQpAQCAtMzY2MCw2ICszNjYzLDI2IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUbyhj
b25zdCBTY3JvbGxQb3NpdGlvbiYgbmV3UG9zaXRpb24pCiAgICAgZGlkQ2hhbmdlU2Nyb2xsT2Zm
c2V0KCk7CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24o
Y29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xs
VHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOworCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsKKyAgICBp
ZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChv
ZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5
cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoY3VycmVudFNj
cm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZl
QW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsK
KyAgICBpZiAob2Zmc2V0ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAgICBTY3JvbGxh
YmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKG9mZnNldCk7CisgICAgc2V0Q3Vy
cmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKK30KKwogZmxvYXQgRnJhbWVWaWV3
OjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250ZW50KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsK
ICAgICBpZiAoZ3JhbnVsYXJpdHkgIT0gU2Nyb2xsQnlQYWdlIHx8IG9yaWVudGF0aW9uID09IEhv
cml6b250YWxTY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBlMzZmOTk2ODA0
Li5iMzdmMDYwZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTIyMyw3ICsyMjMsNyBA
QCBwdWJsaWM6CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFs
OwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Ny
b2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2Up
IGZpbmFsOwogICAgIHZvaWQgcmVzdG9yZVNjcm9sbGJhcigpOwogICAgIHZvaWQgc2NoZWR1bGVT
Y3JvbGxUb0ZvY3VzZWRFbGVtZW50KFNlbGVjdGlvblJldmVhbE1vZGUpOwogICAgIHZvaWQgc2Ny
b2xsVG9Gb2N1c2VkRWxlbWVudEltbWVkaWF0ZWx5SWZOZWVkZWQoKTsKQEAgLTY1OSw2ICs2NTks
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbmRlckxheWVyRGlkU2Nyb2xsKGNvbnN0IFJlbmRl
ckxheWVyJik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFu
aW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKwog
cHJvdGVjdGVkOgogICAgIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0
JiBjbGlwUmVjdCkgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0
IEludFJlY3QmIHVwZGF0ZVJlY3QpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JvbGxCZWhhdmlvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2
aW9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40ZWQyOWNiNDJi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5j
cHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3Iu
aCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2Jvb2wgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yIGJl
aGF2aW9yLCBFbGVtZW50JiBhc3NvY2lhdGVkRWxlbWVudCkKK3sKKyAgICBpZiAoIWFzc29jaWF0
ZWRFbGVtZW50LmRvY3VtZW50KCkuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkKCkgfHwgIWFzc29jaWF0ZWRFbGVtZW50LnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNz
Y3JvbGxpbmcKKyAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7CisgICAgY2FzZSBTY3JvbGxCZWhhdmlv
cjo6QXV0bzoKKyAgICAgICAgcmV0dXJuIGFzc29jaWF0ZWRFbGVtZW50LnJlbmRlcmVyKCktPnN0
eWxlKCkudXNlU21vb3RoU2Nyb2xsaW5nKCk7CisgICAgY2FzZSBTY3JvbGxCZWhhdmlvcjo6SW5z
dGFudDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OlNt
b290aDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLjFiYWVmODgxZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbEJlaGF2aW9yLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBFbGVtZW50OworCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2aW9yIDog
dWludDhfdCB7CisgICAgQXV0byA9IDAsCisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgKK307CisK
K2Jvb2wgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yLCBFbGVtZW50JiBhc3NvY2lh
dGVkRWxlbWVudCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
Y3JvbGxCZWhhdmlvci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u
ODk3MWFlOTM3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xs
QmVoYXZpb3IuaWRsCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworZW51bSBTY3JvbGxCZWhhdmlvciB7ICJhdXRvIiwgImluc3Rh
bnQiLCAic21vb3RoIiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJ
bnRvVmlld09wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRp
b25zLmgKaW5kZXggOTM5Y2Q3MzQyNS4uZjI3NWYyZmJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oCkBAIC0yMCwxMiArMjAsMTEgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmgiCisjaW5jbHVkZSAiU2Ny
b2xsT3B0aW9ucy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEVsZW1lbnQ7Ci0K
LXN0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnMgeworc3RydWN0IFNjcm9sbEludG9WaWV3T3B0
aW9ucyA6IFNjcm9sbE9wdGlvbnMgewogICAgIE9wdGlvbmFsPFNjcm9sbExvZ2ljYWxQb3NpdGlv
bj4gYmxvY2tQb3NpdGlvbiB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6U3RhcnQgfTsKICAgICBP
cHRpb25hbDxTY3JvbGxMb2dpY2FsUG9zaXRpb24+IGlubGluZVBvc2l0aW9uIHsgU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uOjpOZWFyZXN0IH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3Jv
bGxJbnRvVmlld09wdGlvbnMuaWRsCmluZGV4IGNmOWQxZmQ3NjcuLjFiMjRjNjg2ZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKQEAgLTE3LDgg
KzE3LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLS8vIEZJWE1F
KHdlYmtpdC5vcmcvYi8xODgwNDMpOiBTdXBwb3J0IFNjcm9sbEJlaGF2aW9yLgotZGljdGlvbmFy
eSBTY3JvbGxJbnRvVmlld09wdGlvbnMgeworZGljdGlvbmFyeSBTY3JvbGxJbnRvVmlld09wdGlv
bnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBbSW1wbGVtZW50ZWRBcz1ibG9ja1Bvc2l0aW9uXSBT
Y3JvbGxMb2dpY2FsUG9zaXRpb24gYmxvY2sgPSAic3RhcnQiOwogICAgIFtJbXBsZW1lbnRlZEFz
PWlubGluZVBvc2l0aW9uXSBTY3JvbGxMb2dpY2FsUG9zaXRpb24gaW5saW5lID0gIm5lYXJlc3Qi
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uZTE4NjdjNjAxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJTY3JvbGxCZWhhdmlvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBT
Y3JvbGxPcHRpb25zIHsKKyAgICBPcHRpb25hbDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IgeyBT
Y3JvbGxCZWhhdmlvcjo6QXV0byB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uMzI5ZDZmZjEwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitkaWN0aW9uYXJ5IFNjcm9sbE9wdGlvbnMg
eworICAgIFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yID0gImF1dG8iOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbFRvT3B0aW9ucy5oCmluZGV4IGNlMWNiYTFjN2MuLmY1Nzc0ZDQ0YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaApAQCAtMjgsMTQgKzI4LDIxIEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSAiU2Nyb2xsT3B0aW9ucy5oIgogI2luY2x1ZGUgPGNtYXRo
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
cnVjdCBTY3JvbGxUb09wdGlvbnMgeworc3RydWN0IFNjcm9sbFRvT3B0aW9ucyA6IFNjcm9sbE9w
dGlvbnMgewogICAgIE9wdGlvbmFsPGRvdWJsZT4gbGVmdDsKICAgICBPcHRpb25hbDxkb3VibGU+
IHRvcDsKKworICAgIFNjcm9sbFRvT3B0aW9ucygpID0gZGVmYXVsdDsKKyAgICBTY3JvbGxUb09w
dGlvbnMoZG91YmxlIHgsIGRvdWJsZSB5KQorICAgICAgICA6IGxlZnQoeCkKKyAgICAgICAgLCB0
b3AoeSkKKyAgICB7IH0KIH07CiAKIGlubGluZSBkb3VibGUgbm9ybWFsaXplTm9uRmluaXRlVmFs
dWVPckZhbGxCYWNrVG8oT3B0aW9uYWw8ZG91YmxlPiB2YWx1ZSwgZG91YmxlIGZhbGxiYWNrVmFs
dWUpCkBAIC00Nyw3ICs1NCw3IEBAIGlubGluZSBkb3VibGUgbm9ybWFsaXplTm9uRmluaXRlVmFs
dWVPckZhbGxCYWNrVG8oT3B0aW9uYWw8ZG91YmxlPiB2YWx1ZSwgZG91YmxlCiAvLyBGSVhNRSho
dHRwczovL3dlYmtpdC5vcmcvYi84ODMzOSk6IENvbnNpZGVyIHVzaW5nIEZsb2F0UG9pbnQgb3Ig
RG91YmxlUG9pbnQgZm9yIGZhbGxiYWNrIGFuZCByZXR1cm4gdmFsdWVzLgogaW5saW5lIFNjcm9s
bFRvT3B0aW9ucyBub3JtYWxpemVOb25GaW5pdGVDb29yZGluYXRlc09yRmFsbEJhY2tUbyhjb25z
dCBTY3JvbGxUb09wdGlvbnMmIHZhbHVlLCBkb3VibGUgeCwgZG91YmxlIHkpCiB7Ci0gICAgU2Ny
b2xsVG9PcHRpb25zIG9wdGlvbnM7CisgICAgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMgPSB2YWx1
ZTsKICAgICBvcHRpb25zLmxlZnQgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tU
byh2YWx1ZS5sZWZ0LCB4KTsKICAgICBvcHRpb25zLnRvcCA9IG5vcm1hbGl6ZU5vbkZpbml0ZVZh
bHVlT3JGYWxsQmFja1RvKHZhbHVlLnRvcCwgeSk7CiAgICAgcmV0dXJuIG9wdGlvbnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKaW5kZXggNTEwYmMwNzFhNi4uMmI5YjU1
NDEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbApAQCAtMjYsOCAr
MjYsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQz
KTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsVG9PcHRpb25zIHsK
K2RpY3Rpb25hcnkgU2Nyb2xsVG9PcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7CiAgICAgdW5yZXN0
cmljdGVkIGRvdWJsZSBsZWZ0OwogICAgIHVucmVzdHJpY3RlZCBkb3VibGUgdG9wOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCBiMzI5ZjEyNDc5Li4xZDc5ZjQ1OWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC02MjIsNiArNjIyLDkgQEAgc3ludGhldGljRWRp
dGluZ0NvbW1hbmRzRW5hYmxlZDoKIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIGlu
aXRpYWw6IGZhbHNlCiAKK0NTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6CisgIGluaXRp
YWw6IGZhbHNlCisKIGlucHV0RXZlbnRzRW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwCmluZGV4IDQyOWVlZTlhOTYuLmE5N2VhNDJlODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCkBAIC0yNDgsNyArMjQ4LDE0IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3Jv
CiAKICAgICBib29sIGluQmFja0ZvcndhcmRDYWNoZSA9IGZyYW1lVmlldy0+ZnJhbWUoKS5kb2N1
bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9y
d2FyZENhY2hlOwogICAgIGJvb2wgaW5Qcm9ncmFtbWF0aWNTY3JvbGwgPSBzY3JvbGxhYmxlQXJl
YS5jdXJyZW50U2Nyb2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYzsKLSAgICBp
ZiAoaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5CYWNrRm9yd2FyZENhY2hlKQorCisgICAgYm9v
bCB1cGRhdGVTY3JvbGxQb3NpdGlvbiA9IGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFja0Zv
cndhcmRDYWNoZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgYW5pbWF0ZWQg
PSBzY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKCkgPT0gU2Nyb2xsQmVo
YXZpb3JUeXBlOjpTbW9vdGg7CisgICAgLy8gVGhlIHNjcm9sbCBwb3NpdGlvbiBvZiBhbmltYXRl
ZCBzY3JvbGxpbmcgd2lsbCBiZSBzZXQgYnkgdGhlIFVJIHByb2Nlc3MuIFNvIHNob3VsZG4ndCBz
ZXQgaXQgbm93LgorICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uID0gIWFuaW1hdGVkICYmIHVwZGF0
ZVNjcm9sbFBvc2l0aW9uOworI2VuZGlmCisgICAgaWYgKHVwZGF0ZVNjcm9sbFBvc2l0aW9uKQog
ICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9k
ZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiAKICAgICAvLyBJZiB0aGlzIGZyYW1lIHZp
ZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB3
ZSBkb24ndCB3YW50IHRvIHVwZGF0ZSBvdXIKQEAgLTI2MCw3ICsyNjcsMTQgQEAgYm9vbCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xs
YWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIXN0YXRlTm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhdXRvIHN0YXR1cyA9IGFuaW1hdGVk
ID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5pbWF0aW9uIDogU2Nyb2xsQmVoYXZp
b3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOworICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJl
aGF2aW9yU3RhdHVzKHN0YXR1cyk7CisKKyAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCwgYW5pbWF0ZWQp
OworI2Vsc2UKICAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCk7CisjZW5kaWYKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApAQCAtMjkxLDYgKzMwNSwzMiBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcgogICAg
IG1fdXBkYXRlTm9kZVNjcm9sbFBvc2l0aW9uVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJv
b2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byog
ZnJhbWVWaWV3ID0gZnJhbWVWaWV3Rm9yU2Nyb2xsaW5nTm9kZShub2RlSUQpOworICAgIGlmICgh
ZnJhbWVWaWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobm9kZUlEID09IGZyYW1lVmll
dy0+c2Nyb2xsaW5nTm9kZUlEKCkpIHsKKyAgICAgICAgaWYgKCFpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpCisgICAgICAgICAgICBmcmFtZVZpZXctPnNldFNjcm9sbEJlaGF2aW9yU3RhdHVz
KFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAvLyBPdmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAgICBpZiAoYXV0byogc2Ny
b2xsYWJsZUFyZWEgPSBmcmFtZVZpZXctPnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRChu
b2RlSUQpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAg
ICAgICAgICAgc2Nyb2xsYWJsZUFyZWEtPnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgfQorfQorI2VuZGlmCisKIHZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5j
U2Nyb2xsVGltZXJGaXJlZCgpCiB7CiAgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5j
U2Nyb2xsKG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLm5vZGVJRCwgbV9zY2hlZHVsZWRTY3JvbGxV
cGRhdGUuc2Nyb2xsUG9zaXRpb24sIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLmxheW91dFZpZXdw
b3J0T3JpZ2luLCBTY3JvbGxUeXBlOjpVc2VyLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS51cGRh
dGVMYXllclBvc2l0aW9uQWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA5YmU2OWFhZmIx
Li4zZGUwMWNjMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC01Miw2ICs1Miw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNjcm9sbGluZ1N0YXRlVHJlZVByb3BlcnRpZXNDaGFuZ2VkKCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFz
eW5jU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IE9wdGlv
bmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbik7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCwgYm9v
bCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCiAKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2Vz
KFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbEluZGV4LCB1bnNpZ25lZCB2ZXJ0
aWNhbEluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDcxN2JmYzJhNTUuLjdl
MjE4OGMyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcApAQCAtNTYsNiArNTYsOSBAQCBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShj
b25zdCBTY3JvbGxpbmdTdGF0ZVNjcgogI2VuZGlmCiAgICAgLCBtX3Njcm9sbGFibGVBcmVhUGFy
YW1ldGVycyhzdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkpCiAgICAgLCBtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbChzdGF0ZU5v
ZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkp
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b25XaXRoQW5pbWF0aW9uKHN0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmlt
YXRpb24oKSkKKyNlbmRpZgogICAgICwgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyhzdGF0ZU5v
ZGUuaXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKIHsKICAgICBpZiAoaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbENvbnRhaW5lckxheWVyKSkKQEAgLTIxOSwxMiArMjIyLDIyIEBAIHZvaWQgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoY29u
c3QgU2Nyb2xsYWJsZUFyCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFNjcm9sbGFibGVBcmVhUGFy
YW1zKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2lu
dCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCwgYm9vbCByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uKQoreworICAgIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24gPSByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKKyAgICBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGw7CisgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRp
b24gPSByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uOworICAgIHNldFByb3BlcnR5Q2hhbmdlZChSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbik7Cit9CisjZWxzZQogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
CiB7CiAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uOwogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKICAgICBzZXRQcm9wZXJ0eUNo
YW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQorI2VuZGlmCiAKIHZvaWQgU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRJc01vbml0b3JpbmdXaGVlbEV2ZW50cyhib29sIGlz
TW9uaXRvcmluZ1doZWVsRXZlbnRzKQogewpAQCAtMzE0LDYgKzMyNywxMSBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNj
cm9sbGluZ1N0YXRlVAogICAgIGlmIChtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQg
c2Nyb2xsIHBvc2l0aW9uIHJlcHJlc2VudHMgcHJvZ3JhbW1hdGljIHNjcm9sbCIsIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRo
QW5pbWF0aW9uKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9z
aXRpb24gd2l0aCBhbmltYXRpb24iLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1h
dGlvbik7CisjZW5kaWYKKwogICAgIGlmICghbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0
LmlzRW1wdHkoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJwYXJlbnQgcmVsYXRpdmUgc2Ny
b2xsYWJsZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUuaAppbmRleCA0OTY3YTZjZTgxLi42ZTI1ZDdiYmE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuaApAQCAtMTExLDcgKzExMSwxMiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBGbG9h
dFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb247IH0KICAgICBib29sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOyB9CisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBib29sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9u
OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihj
b25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29s
IHJlcXVlc3RlZFdpdGhBbmltYXRpb24gPSBmYWxzZSk7CisjZWxzZQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGJv
b2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisjZW5kaWYKIAogICAgIGJvb2wgaXNN
b25pdG9yaW5nV2hlZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRvcmluZ1doZWVs
RXZlbnRzOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJc01vbml0b3JpbmdXaGVlbEV2
ZW50cyhib29sKTsKQEAgLTE3MSw2ICsxNzYsOSBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVB
cmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKIAogICAgIGJvb2wgbV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgeyBmYWxz
ZSB9OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uV2l0aEFuaW1hdGlvbiB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1faXNN
b25pdG9yaW5nV2hlZWxFdmVudHMgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDE1MWFjMjlmOGEuLjdhZGRmZWY0
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgK
QEAgLTgyLDggKzgyLDEzIEBAIHB1YmxpYzoKICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5k
ZXJMYXllciBzY3JvbGxpbmcgc3RhdGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZSYsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uOjpTeW5jKSA9IDA7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIENh
bGxlZCBmb3Igc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMgdXBkYXRlcy4KKyAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uo
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIC8qaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKi8pIHsgfQorI2VuZGlmCisKICAgICAvLyBDYWxsZWQgZm9yIHJlcXVlc3RlZCBzY3JvbGwg
cG9zaXRpb24gdXBkYXRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9z
aXRpb24qLywgYm9vbCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLykgeyB9CisgICAg
dmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsKi8sIGJvb2wgLyp3aXRoQW5pbWF0aW9uKi8gPSBmYWxzZSkg
eyB9CiAKICAgICAvLyBEZWxlZ2F0ZWQgc2Nyb2xsaW5nL3pvb21pbmcgaGFzIGNhdXNlZCB0aGUg
dmlld3BvcnQgdG8gY2hhbmdlLCBzbyB1cGRhdGUgdmlld3BvcnQtY29uc3RyYWluZWQgbGF5ZXJz
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYWluRnJhbWVWaWV3cG9ydENoYW5nZWRWaWFEZWxl
Z2F0ZWRTY3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQsIGRvdWJsZSBzY2FsZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHAKaW5kZXggNzNkY2EyOGVmMS4uYTQ1NDdmZGQyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmNwcApAQCAtMTA3LDggKzEwNywxMyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRl
Tgogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxk
cmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewogICAgIGNvbnN0IFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpOwotICAgIGlmIChzY3JvbGxp
bmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKQotICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Ny
b2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChzY3JvbGxpbmdOb2RlSUQoKSwgc2Nyb2xsaW5n
U3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbGluZ1N0YXRlTm9kZS5y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSk7Cisg
ICAgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICB3aXRoQW5pbWF0aW9uID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uV2l0aEFuaW1hdGlvbigpOworI2VuZGlmCisgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9k
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbikpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbGluZ1N0YXRlTm9k
ZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCksIHdpdGhBbmltYXRp
b24pOworICAgIH0KIAogICAgIG1faXNGaXJzdENvbW1pdCA9IGZhbHNlOwogfQpAQCAtMTU3LDIx
ICsxNjIsNDMgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQnkoY29u
c3QgRmxvYXRTaXplJiBkZWx0YSwgU2Nyb2xsUG9zaXRpb24KICAgICBzY3JvbGxUbyhjdXJyZW50
U2Nyb2xsUG9zaXRpb24oKSArIGRlbHRhLCBTY3JvbGxUeXBlOjpVc2VyLCBjbGFtcCk7CiB9CiAK
LXZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZsb2F0UG9p
bnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXAg
Y2xhbXApCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBl
IHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXAsIGJvb2wgbmVlZFN5bmNTY3Jv
bGxQb3NpdGlvbikKKyNlbHNlCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3Jv
bGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBT
Y3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wLCBib29sIC8qbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiov
KQorI2VuZGlmCiB7Ci0gICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0aW9u
KQorICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgeworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIC8vIFNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0
byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIGlmIChyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAm
JiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQorICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNj
cm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uOjpTeW5jKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKHNjcm9sbGluZ05vZGVJRCgpLCBmYWxz
ZSk7CisgICAgICAgIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChmYWxzZSk7CisjZW5kaWYKICAg
ICAgICAgcmV0dXJuOworICAgIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLy8g
SWYgZHVyaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgbmVlZCB0byBzdG9wIGl0IGJlZm9yZSBzdGFy
dGluZyBhIG5ldyBvbmUuCisgICAgaWYgKHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkKKyAg
ICAgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbih0cnVlKTsKKyNlbmRpZgog
ICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKHNjcm9s
bFR5cGUgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKLSAgICAKKwogICAgIG1fY3VycmVu
dFNjcm9sbFBvc2l0aW9uID0gYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwgY2xhbXAp
OwotICAgIAorCiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSAiIDw8IHNjcm9sbGluZ05vZGVJRCgpIDw8ICIgc2Nyb2xs
VG8gIiA8PCBwb3NpdGlvbiA8PCAiIChkZWx0YSBmcm9tIGxhc3QgY29tbWl0dGVkIHBvc2l0aW9u
ICIgPDwgKG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uIC0gbV9jdXJyZW50U2Nyb2xsUG9z
aXRpb24pIDw8ICIpIik7CiAKICAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJlbnRTY3JvbGxQb3Np
dGlvbigpOwogICAgIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKTsKIAogICAgIHNjcm9s
bGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKGZhbHNlKTsKKworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbihmYWxzZSk7CisgICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGZhbHNlKTsKKyNlbmRp
ZgogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9z
aXRpb25DaGFuZ2VkKCkKQEAgLTE3OSw2ICsyMDYsMTAgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiAgICAgcmVwb3NpdGlv
blNjcm9sbGluZ0xheWVycygpOwogICAgIHJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCk7CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghcmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkp
CisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIHNjcm9sbGluZ1RyZWUoKS5ub3RpZnlSZWxh
dGVkTm9kZXNBZnRlclNjcm9sbFBvc2l0aW9uQ2hhbmdlKCp0aGlzKTsKICAgICBzY3JvbGxpbmdU
cmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMpOwogfQpAQCAtMjY2LDYgKzI5
NywzNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhU
ZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcgogICAgIHRzLmR1bXBQcm9wZXJ0eSgic2Ny
b2xsYWJsZSBhcmVhIHBhcmFtZXRlcnMiLCBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycyk7CiB9
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZTo6c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wgYW5pbWF0ZWQpCit7CisgICAgbV9y
ZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgPSBhbmltYXRlZDsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGw7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9vbCBpblByb2dyZXNzKQor
eworICAgIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGluUHJvZ3Jlc3M7Cit9CisKK2Jv
b2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mo
KSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3M7Cit9CisK
K3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3Jv
bGxBbmltYXRpb24oYm9vbCBzdG9wKQoreworICAgIG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFu
aW1hdGlvbiA9IHN0b3A7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6Om5l
ZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX25l
ZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb247Cit9CisjZW5kaWYKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuaAppbmRleCA0Y2JmNGQxYWYwLi5mOWYzMTBkYjljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIEZsb2F0U2l6ZSBzY3JvbGxEZWx0YVNp
bmNlTGFzdENvbW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uIC0g
bV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb247IH0KIAogICAgIC8vIFRoZXNlIGFyZSBpbXBl
cmF0aXZlOyB0aGV5IGFkanVzdCB0aGUgc2Nyb2xsaW5nIGxheWVycy4KLSAgICB2b2lkIHNjcm9s
bFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6VXNlciwgU2Ny
b2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzKTsK
KyAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xs
VHlwZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRv
Q29udGVudEVkZ2VzLCBib29sIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24gPSBmYWxzZSk7CiAgICAg
dm9pZCBzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmLCBTY3JvbGxQb3NpdGlvbkNsYW1wID0gU2Ny
b2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOwogCiAgICAgdm9pZCB3YXNTY3JvbGxl
ZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBPcHRpb25h
bDxGbG9hdFJlY3Q+IG92ZXJyaWRlTGF5b3V0Vmlld3BvcnQgPSB7IH0sIFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsKQEAg
LTkxLDYgKzkxLDE1IEBAIHB1YmxpYzoKICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBz
Y3JvbGxDb250YWluZXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsQ29udGFpbmVyTGF5
ZXI7IH0KICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxlZENvbnRlbnRzTGF5
ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsgfQogCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChib29s
KTsKKyAgICBib29sIHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpIGNvbnN0OworICAgIHZvaWQgc2V0
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sKTsKKyAgICBib29sIHNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3MoKSBjb25zdDsKKyAgICB2b2lkIHNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxB
bmltYXRpb24oYm9vbCk7CisgICAgYm9vbCBuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9u
KCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlE
KTsKIApAQCAtMTQ4LDYgKzE1NywxMiBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVBcmVhUGFy
YW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKICAgICBib29sIG1faXNGaXJzdENv
bW1pdCB7IHRydWUgfTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCBtX3Jl
cXVlc3RBbmltYXRlZFNjcm9sbCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xs
QW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBt
X3Njcm9sbENvbnRhaW5lckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxl
ZENvbnRlbnRzTGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b24uaAppbmRleCBiN2MxZDI0ZWI0Li41MjNhNzdmMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRpb24uaApAQCAtMzIsMTIgKzMyLDE0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOworZW51bSBj
bGFzcyBTY3JvbGxDbGFtcGluZyA6IHVpbnQ4X3Q7CiAKIGNsYXNzIFNjcm9sbEFuaW1hdGlvbiB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U2Ny
b2xsQW5pbWF0aW9uKCkgeyB9OwogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3Jp
ZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCAvKiBzdGVwICovLCBmbG9hdCAvKiBt
dWx0aXBsaWVyICovKSB7IHJldHVybiB0cnVlOyB9OworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwo
Y29uc3QgRmxvYXRQb2ludCYpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKSB7IH07CiAgICAgdmlydHVhbCB2
b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JikgeyB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKaW5kZXggZDA2
NGU2OTM3OS4uMmNhNTc4YTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRpb25TbW9vdGguY3BwCkBAIC0yOCw4ICsyOCw2IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmgiCiAKLSNpZiBFTkFCTEUo
U01PT1RIX1NDUk9MTElORykKLQogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJT
Y3JvbGxhYmxlQXJlYS5oIgogCkBAIC0zOCw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHN0YXRpYyBjb25zdCBkb3VibGUgZnJhbWVSYXRlID0gNjA7CiBzdGF0aWMgY29uc3QgU2Vjb25k
cyB0aWNrVGltZSA9IDFfcyAvIGZyYW1lUmF0ZTsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1pbmlt
dW1UaW1lckludGVydmFsIHsgMV9tcyB9Oworc3RhdGljIGNvbnN0IGRvdWJsZSBzbW9vdGhGYWN0
b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgPSA1OwogCiBTY3JvbGxBbmltYXRpb25TbW9vdGg6OlNj
cm9sbEFuaW1hdGlvblNtb290aChTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0
IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKEZsb2F0UG9pbnQmJik+
JiYgbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVuY3Rpb24pCiAgICAgOiBTY3JvbGxBbmltYXRpb24o
c2Nyb2xsYWJsZUFyZWEpCkBAIC02Nyw5ICs2NiwyMiBAQCBib29sIFNjcm9sbEFuaW1hdGlvblNt
b290aDo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFu
dQogICAgIHJldHVybiBuZWVkVG9TY3JvbGw7CiB9CiAKK3ZvaWQgU2Nyb2xsQW5pbWF0aW9uU21v
b3RoOjpzY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCit7CisgICAgU2Nyb2xsR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeVBhZ2U7CisgICAgYm9vbCBuZWVkVG9TY3Jv
bGwgPSB1cGRhdGVQZXJBeGlzRGF0YShtX2hvcml6b250YWxEYXRhLCBncmFudWxhcml0eSwgcG9z
aXRpb24ueCgpIC0gbV9ob3Jpem9udGFsRGF0YS5jdXJyZW50UG9zaXRpb24sIG1fc2Nyb2xsYWJs
ZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCkueCgpLCBtX3Njcm9sbGFibGVBcmVhLm1heGlt
dW1TY3JvbGxQb3NpdGlvbigpLngoKSwgc21vb3RoRmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xs
KTsKKyAgICBuZWVkVG9TY3JvbGwgfD0KKyAgICAgICAgdXBkYXRlUGVyQXhpc0RhdGEobV92ZXJ0
aWNhbERhdGEsIGdyYW51bGFyaXR5LCBwb3NpdGlvbi55KCkgLSBtX3ZlcnRpY2FsRGF0YS5jdXJy
ZW50UG9zaXRpb24sIG1fc2Nyb2xsYWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCkueSgp
LCBtX3Njcm9sbGFibGVBcmVhLm1heGltdW1TY3JvbGxQb3NpdGlvbigpLnkoKSwgc21vb3RoRmFj
dG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyAgICBpZiAobmVlZFRvU2Nyb2xsICYmICFhbmlt
YXRpb25UaW1lckFjdGl2ZSgpKSB7CisgICAgICAgIG1fc3RhcnRUaW1lID0gbV9ob3Jpem9udGFs
RGF0YS5zdGFydFRpbWU7CisgICAgICAgIGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKKyAgICB9Cit9
OworCiB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6c3RvcCgpCiB7CiAgICAgbV9hbmltYXRp
b25UaW1lci5zdG9wKCk7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlvclN0
YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwogfQogCiB2b2lkIFNj
cm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlVmlzaWJsZUxlbmd0aHMoKQpAQCAtMjQ3LDcgKzI1
OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXRBbmltYXRpb25QYXJhbWV0ZXJzRm9yR3JhbnVs
YXJpdHkoU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsCiAgICAgfQogfQogCi1ib29sIFNjcm9sbEFu
aW1hdGlvblNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmIGRhdGEsIFNjcm9s
bEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9z
aXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uKQorYm9vbCBTY3JvbGxBbmltYXRpb25TbW9v
dGg6OnVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiBkYXRhLCBTY3JvbGxHcmFudWxhcml0
eSBncmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9h
dCBtYXhTY3JvbGxQb3NpdGlvbiwgZG91YmxlIHNtb290aEZhY3RvcikKIHsKICAgICBpZiAoIWRh
dGEuc3RhcnRUaW1lIHx8ICFkZWx0YSB8fCAoZGVsdGEgPCAwKSAhPSAoZGF0YS5kZXNpcmVkUG9z
aXRpb24gLSBkYXRhLmN1cnJlbnRQb3NpdGlvbiA8IDApKSB7CiAgICAgICAgIGRhdGEuZGVzaXJl
ZFBvc2l0aW9uID0gZGF0YS5jdXJyZW50UG9zaXRpb247CkBAIC0yNjQsNiArMjc2LDEyIEBAIGJv
b2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0YSYg
ZGF0YSwgU2Nyb2xsR3JhbnVsYXJpCiAgICAgQ3VydmUgY29hc3RUaW1lQ3VydmU7CiAgICAgZ2V0
QW5pbWF0aW9uUGFyYW1ldGVyc0ZvckdyYW51bGFyaXR5KGdyYW51bGFyaXR5LCBhbmltYXRpb25U
aW1lLCByZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUsIGF0dGFja1RpbWUsIHJlbGVhc2VUaW1lLCBj
b2FzdFRpbWVDdXJ2ZSwgbWF4aW11bUNvYXN0VGltZSk7CiAKKyAgICBhbmltYXRpb25UaW1lICo9
IHNtb290aEZhY3RvcjsKKyAgICByZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUgKj0gc21vb3RoRmFj
dG9yOworICAgIGF0dGFja1RpbWUgKj0gc21vb3RoRmFjdG9yOworICAgIHJlbGVhc2VUaW1lICo9
IHNtb290aEZhY3RvcjsKKyAgICBtYXhpbXVtQ29hc3RUaW1lICo9IHNtb290aEZhY3RvcjsKKwog
ICAgIGRhdGEuZGVzaXJlZFBvc2l0aW9uID0gbmV3UG9zaXRpb247CiAgICAgaWYgKCFkYXRhLnN0
YXJ0VGltZSkKICAgICAgICAgZGF0YS5hdHRhY2tUaW1lID0gYXR0YWNrVGltZTsKQEAgLTM5Miw2
ICs0MTAsOCBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJGaXJl
ZCgpCiAKICAgICBpZiAoY29udGludWVBbmltYXRpb24pCiAgICAgICAgIHN0YXJ0TmV4dFRpbWVy
KHN0ZDo6bWF4KG1pbmltdW1UaW1lckludGVydmFsLCBkZWx0YVRvTmV4dEZyYW1lKSk7CisgICAg
ZWxzZQorICAgICAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiAKICAgICBtX25vdGlmeVBvc2l0
aW9uQ2hhbmdlZEZ1bmN0aW9uKEZsb2F0UG9pbnQobV9ob3Jpem9udGFsRGF0YS5jdXJyZW50UG9z
aXRpb24sIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbikpOwogfQpAQCAtNDA3LDUgKzQy
NywzIEBAIGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckFjdGl2ZSgp
IGNvbnN0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShT
TU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uU21vb3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRpb25TbW9vdGguaAppbmRleCAwMmNjNGVlMmJkLi44MTczZmE3ZTIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaApAQCAtMjcsMTQgKzI3
LDEzIEBACiAKICNpbmNsdWRlICJTY3JvbGxBbmltYXRpb24uaCIKIAotI2lmIEVOQUJMRShTTU9P
VEhfU0NST0xMSU5HKQotCiAjaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CitlbnVtIGNsYXNz
IFNjcm9sbENsYW1waW5nIDogdWludDhfdDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
IGZpbmFsOiBwdWJsaWMgU2Nyb2xsQW5pbWF0aW9uIHsKIHB1YmxpYzoKQEAgLTUxLDYgKzUwLDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0
aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcikgb3Zl
cnJpZGU7CisgICAgdm9pZCBzY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwogICAg
IHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKSBv
dmVycmlkZTsKICAgICB2b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jikg
b3ZlcnJpZGU7CkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGludCB2aXNpYmxl
TGVuZ3RoIHsgMCB9OwogICAgIH07CiAKLSAgICBib29sIHVwZGF0ZVBlckF4aXNEYXRhKFBlckF4
aXNEYXRhJiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3JvbGxQ
b3NpdGlvbiwgZmxvYXQgbWF4U2Nyb2xsUG9zaXRpb24pOworICAgIGJvb2wgdXBkYXRlUGVyQXhp
c0RhdGEoUGVyQXhpc0RhdGEmLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0
IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9hdCBtYXhTY3JvbGxQb3NpdGlvbiwgZG91YmxlIHNtb290
aEZhY3RvciA9IDEpOwogICAgIGJvb2wgYW5pbWF0ZVNjcm9sbChQZXJBeGlzRGF0YSYsIE1vbm90
b25pY1RpbWUgY3VycmVudFRpbWUpOwogCiAgICAgdm9pZCByZXF1ZXN0QW5pbWF0aW9uVGltZXJG
aXJlZCgpOwpAQCAtMTA4LDQgKzEwOCwzIEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGE2MTE4NjgzN2QuLjRkNTk4Yzc1
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiTGF5b3V0U2l6
ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9sbEFu
aW1hdGlvblNtb290aC5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8
YWxnb3JpdGhtPgogCkBAIC01Miw2ICs1MywxOCBAQCBTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5p
bWF0b3IoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKQogI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICAsIG1fc2Nyb2xsQ29udHJv
bGxlcigqdGhpcykKICNlbmRpZgorICAgICwgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGwo
bWFrZVVuaXF1ZTxTY3JvbGxBbmltYXRpb25TbW9vdGg+KHNjcm9sbGFibGVBcmVhLCBtX2N1cnJl
bnRQb3NpdGlvbiwgW3RoaXNdKEZsb2F0UG9pbnQmJiBwb3NpdGlvbikgeworICAgICAgICBhdXRv
IHByZXZpb3VzU2Nyb2xsVHlwZSA9IG1fc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUo
KTsKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRDdXJyZW50U2Nyb2xsVHlwZShTY3JvbGxU
eXBlOjpQcm9ncmFtbWF0aWMpOworICAgICAgICBib29sIHVwZGF0ZWQgPSBtX3Njcm9sbGFibGVB
cmVhLnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShyb3VuZGVkSW50UG9pbnQocG9zaXRpb24p
KTsKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91
c1Njcm9sbFR5cGUpOworICAgICAgICBpZiAodXBkYXRlZCkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBGbG9hdFNpemUgZGVsdGEgPSBwb3NpdGlvbiAtIG1fY3VycmVudFBvc2l0aW9u
OworICAgICAgICBtX2N1cnJlbnRQb3NpdGlvbiA9IFdURk1vdmUocG9zaXRpb24pOworICAgICAg
ICBub3RpZnlQb3NpdGlvbkNoYW5nZWQoZGVsdGEpOworICAgIH0pKQogewogfQogCkBAIC03NSw2
ICs4OCwxNCBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRp
b24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LAogICAgIHJldHVybiB0cnVlOwogfQog
Cit2b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldChjb25zdCBGbG9hdFBvaW50JiBv
ZmZzZXQpCit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGwtPnNldEN1cnJlbnRQ
b3NpdGlvbihtX2N1cnJlbnRQb3NpdGlvbik7CisgICAgYXV0byBuZXdQb3NpdGlvbiA9IFNjcm9s
bGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0LCB0b0Zsb2F0U2l6ZSht
X3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CisgICAgbV9hbmltYXRpb25Qcm9ncmFt
bWF0aWNTY3JvbGwtPnNjcm9sbChuZXdQb3NpdGlvbik7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5z
ZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVB
bmltYXRpb24pOworfQorCiB2b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldFdpdGhv
dXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGluZykKIHsK
ICAgICBGbG9hdFBvaW50IG5ld1Bvc2l0b24gPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRp
b25Gcm9tT2Zmc2V0KG9mZnNldCwgdG9GbG9hdFNpemUobV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxP
cmlnaW4oKSkpOwpAQCAtMjQ1LDQgKzI2NiwzMyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yOjpyZW1v
dmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VAog
fQogI2VuZGlmCiAKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMoKQorewor
I2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCisgICAgbV9hbmltYXRpb25Q
cm9ncmFtbWF0aWNTY3JvbGwtPnN0b3AoKTsKKyNlbmRpZgorfQorCit2b2lkIFNjcm9sbEFuaW1h
dG9yOjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpCit7CisjaWYgIVVTRShSRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUikKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c2Vy
dmljZUFuaW1hdGlvbigpOworI2VuZGlmCit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OndpbGxF
bmRMaXZlUmVzaXplKCkKK3sKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+dXBk
YXRlVmlzaWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmltYXRvcjo6ZGlkQWRkVmVy
dGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikKK3sKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRp
Y1Njcm9sbC0+dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmltYXRv
cjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKQoreworICAgIG1fYW5pbWF0
aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVuZ3RocygpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
aAppbmRleCBhNWM2OWM1M2I3Li45YjdjMDliNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgUGxhdGZvcm1Ub3VjaEV2ZW50OworY2xhc3MgU2Ny
b2xsQW5pbWF0aW9uOwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CiBjbGFzcyBTY3JvbGxiYXI7CiBj
bGFzcyBXaGVlbEV2ZW50VGVzdE1vbml0b3I7CkBAIC02OCw2ICs2OSw3IEBAIHB1YmxpYzoKICAg
ICAvLyBUaGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBhbHdheXMgc2Nyb2xscyBpbW1lZGlh
dGVseSwgbmV2ZXIgYW5pbWF0ZXMuCiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJP
cmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxp
ZXIpOwogCisgICAgdm9pZCBzY3JvbGxUb09mZnNldChjb25zdCBGbG9hdFBvaW50Jik7CiAgICAg
dmlydHVhbCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBv
aW50JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAKICAgICBT
Y3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFi
bGVBcmVhOyB9CkBAIC04NSw4ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJlbnRQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgY29uc3QgRmxvYXRQb2ludCYgY3VycmVu
dFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UG9zaXRpb247IH0KIAotICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWxBbmltYXRpb25zKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNlcnZp
Y2VTY3JvbGxBbmltYXRpb25zKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbEFuaW1hdGlv
bnMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBjb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0IHsgfQogICAgIHZpcnR1
YWwgdm9pZCBtb3VzZUVudGVyZWRDb250ZW50QXJlYSgpIHsgfQpAQCAtOTcsMTYgKzk5LDE2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VJc0Rvd25JblNjcm9sbGJhcihTY3JvbGxi
YXIqLCBib29sKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0TGl2ZVJlc2l6
ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1Jlc2l6ZWQoKSBjb25zdCB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbEVuZExpdmVSZXNpemUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
d2lsbEVuZExpdmVSZXNpemUoKTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGVudEFyZWFEaWRTaG93
KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRBcmVhRGlkSGlkZSgpIHsgfQogCiAgICAg
dmlydHVhbCB2b2lkIGxvY2tPdmVybGF5U2Nyb2xsYmFyU3RhdGVUb0hpZGRlbihib29sKSB7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc0NhbkJlQWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9s
bGJhciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcihTY3Jv
bGxiYXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVZlcnRpY2FsU2Nyb2xsYmFyKFNj
cm9sbGJhciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFy
KFNjcm9sbGJhciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xs
YmFyKFNjcm9sbGJhciopOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRhbFNj
cm9sbGJhcihTY3JvbGxiYXIqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Ny
b2xsYmFyUGFydExheWVycyhTY3JvbGxiYXIqKSB7IH0KQEAgLTE1MSw2ICsxNTMsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgU2Nyb2xsQ29udHJvbGxlciBtX3Njcm9sbENvbnRyb2xsZXI7CiAjZW5kaWYK
ICAgICBGbG9hdFBvaW50IG1fY3VycmVudFBvc2l0aW9uOworCisgICAgc3RkOjp1bmlxdWVfcHRy
PFNjcm9sbEFuaW1hdGlvbj4gbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGw7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApp
bmRleCA4OTExNDkxMDNkLi5mNmQzNTY2NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKQEAgLTU0LDYgKzU0LDIxIEBAIGVudW0gY2xhc3MgU2Nyb2xsUG9zaXRpb25DbGFt
cCA6IHVpbnQ4X3QgewogICAgIFRvQ29udGVudEVkZ2VzLAogfTsKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCitlbnVtIGNsYXNzIFNjcm9sbEJl
aGF2aW9yVHlwZSA6IHVpbnQ4X3QgeworICAgIEluc3RhbnQsCisgICAgU21vb3RoLAorfTsKKyNl
bmRpZgorCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2aW9yU3RhdHVzIDogdWludDhfdCB7CisgICAg
Tm90SW5BbmltYXRpb24sCisgICAgSW5Ob25OYXRpdmVBbmltYXRpb24sCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBJbk5hdGl2ZUFuaW1h
dGlvbiwKKyNlbmRpZgorfTsKKwogaW5saW5lIFNjcm9sbERpcmVjdGlvbiBsb2dpY2FsVG9QaHlz
aWNhbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBpc1ZlcnRpY2FsLCBi
b29sIGlzRmxpcHBlZCkKIHsKICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCBiMTI2YTljMmI3Li4xZDJjMzJlYTc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDYxLDEwICs0NjEsMTQgQEAg
dm9pZCBTY3JvbGxWaWV3Ojpjb21wbGV0ZVVwZGF0ZXNBZnRlclNjcm9sbFRvKGNvbnN0IEludFNp
emUmIHNjcm9sbERlbHRhKQogICAgIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxp
bmcoKTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgYm9vbC8qIGFuaW1h
dGVkKi8pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3Jv
bGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3Vy
cmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpOworI2Vu
ZGlmCisKICAgICBpZiAocHJvaGliaXRzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybjsKIApA
QCAtNDc1LDEzICs0NzksMTcgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihj
b25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAKICAgICBTY3JvbGxQb3NpdGlv
biBuZXdTY3JvbGxQb3NpdGlvbiA9ICFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSA/IGFkanVzdFNjcm9s
bFBvc2l0aW9uV2l0aGluUmFuZ2Uoc2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xsUG9zaXRpb247CiAK
LSAgICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09
IFNjcm9sbFR5cGU6OlVzZXIpICYmIG5ld1Njcm9sbFBvc2l0aW9uID09IHRoaXMtPnNjcm9sbFBv
c2l0aW9uKCkpCisgICAgaWYgKCghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgfHwgY3VycmVudFNjcm9s
bFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKSAmJiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0
dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYgbmV3U2Nyb2xs
UG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5j
ZWxBbmltYXRpb25zKCk7CisKICAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKG5l
d1Njcm9sbFBvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdXBkYXRlU2Nyb2xsYmFy
cyhuZXdTY3JvbGxQb3NpdGlvbik7CisgICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xs
QmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIH0KIAogYm9vbCBTY3JvbGxWaWV3Ojpz
Y3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCkBAIC01MzgsNyArNTQ2LDggQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxi
YXJzKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXNpcmVkUG9zaXRpb24pCiAgICAgCiAgICAgaWYg
KCFtYW5hZ2VzU2Nyb2xsYmFycygpKSB7CiAgICAgICAgIGlmIChzY3JvbGxPcmlnaW5DaGFuZ2Vk
KCkpIHsKLSAgICAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRB
bmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOworICAg
ICAgICAgICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoZGVzaXJlZFBvc2l0aW9u
KSkKKyAgICAgICAgICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0
QW5pbWF0aW9uKHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihkZXNpcmVkUG9zaXRpb24pKTsKICAg
ICAgICAgICAgIHJlc2V0U2Nyb2xsT3JpZ2luQ2hhbmdlZCgpOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCA0MzAxNjBkNmFl
Li41Mzk4MTA4Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0yNjAs
NyArMjYwLDcgQEAgcHVibGljOgogICAgIFNjcm9sbFBvc2l0aW9uIGNhY2hlZFNjcm9sbFBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8g
RnVuY3Rpb25zIGZvciBzY3JvbGxpbmcgdGhlIHZpZXcuCi0gICAgdmlydHVhbCB2b2lkIHNldFNj
cm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJik7CisgICAgdmlydHVhbCB2b2lkIHNl
dFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgYm9vbCBhbmltYXRlZCA9IGZh
bHNlKTsKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEludFNpemUmIHMpIHsgcmV0dXJuIHNldFNj
cm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKCkgKyBzKTsgfQogCiAgICAgLy8gVGhpcyBmdW5j
dGlvbiBzY3JvbGxzIGJ5IGxpbmVzLCBwYWdlcyBvciBwaXhlbHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggOTZkMGYzMDBiMy4uMTUwNzA0YzJkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNzEsNiAr
NzEsOSBAQCBTY3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEoKQogICAgICwgbV9zY3JvbGxP
cmlnaW5DaGFuZ2VkKGZhbHNlKQogICAgICwgbV9jdXJyZW50U2Nyb2xsVHlwZShzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oU2Nyb2xsVHlwZTo6VXNlcikpCiAgICAgLCBtX3Njcm9sbFNob3VsZENsZWFy
TGF0Y2hlZFN0YXRlKGZhbHNlKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShB
U1lOQ19TQ1JPTExJTkcpCisgICAgLCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCkpCisjZW5kaWYKIHsK
IH0KIApAQCAtMTQyLDYgKzE0NSwxMiBAQCBib29sIFNjcm9sbGFibGVBcmVhOjpzY3JvbGwoU2Ny
b2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYQogICAgIHJl
dHVybiBzY3JvbGxBbmltYXRvcigpLnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0
ZXAsIG11bHRpcGxpZXIpOwogfQogCit2b2lkIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNl
dFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGluZykK
K3sKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGFibGVB
cmVhICIgPDwgdGhpcyA8PCAiIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbiAiIDw8IG9mZnNl
dCk7CisgICAgc2Nyb2xsQW5pbWF0b3IoKS5zY3JvbGxUb09mZnNldChvZmZzZXQpOworfQorCiB2
b2lkIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3Qg
RmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBMT0df
V0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGFibGVBcmVhICIgPDwgdGhp
cyA8PCAiIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbiAiIDw8IG9mZnNldCk7CkBAIC0y
MjEsMTYgKzIzMCwxNSBAQCBib29sIFNjcm9sbGFibGVBcmVhOjpoYW5kbGVUb3VjaEV2ZW50KGNv
bnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgdG91Y2hFdmVudCkKIC8vIE5PVEU6IE9ubHkgY2FsbGVk
IGZyb20gSW50ZXJuYWxzIGZvciB0ZXN0aW5nLgogdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2V0U2Ny
b2xsT2Zmc2V0RnJvbUludGVybmFscyhjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKIHsKKyAg
ICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNl
dChvZmZzZXQpKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgc2V0U2Nyb2xsT2Zmc2V0RnJvbUFu
aW1hdGlvbihvZmZzZXQpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZz
ZXRGcm9tQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogewotICAgIFNjcm9s
bFBvc2l0aW9uIHBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCk7Ci0g
ICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShwb3NpdGlvbikpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZChwb3NpdGlvbik7CisgICAgc2Nyb2xs
UG9zaXRpb25DaGFuZ2VkKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKTsKIH0KIAog
dm9pZCBTY3JvbGxhYmxlQXJlYTo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCBkNzQzOGMxNWNkLi41NTY3MmY4MWQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTYyLDcgKzYyLDEx
IEBAIGlubGluZSBpbnQgb2Zmc2V0Rm9yT3JpZW50YXRpb24oU2Nyb2xsT2Zmc2V0IG9mZnNldCwg
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50CiAKIGNsYXNzIFNjcm9sbGFibGVBcmVhIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiB7CiBwdWJsaWM6CisgICAgU2Nyb2xs
QmVoYXZpb3JTdGF0dXMgY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgeyByZXR1cm4gbV9j
dXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXM7IH0KKyAgICB2b2lkIHNldFNjcm9sbEJlaGF2aW9y
U3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzIHN0YXR1cykgeyBtX2N1cnJlbnRTY3JvbGxCZWhh
dmlvclN0YXR1cyA9IHN0YXR1czsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JvbGwo
U2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVk
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlv
bihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCk7CiAgICAgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oU2Nyb2xsYmFy
T3JpZW50YXRpb24sIGZsb2F0IG9mZnNldCk7CiAKQEAgLTI0Miw2ICsyNDYsMTEgQEAgcHVibGlj
OgogICAgIFNjcm9sbFR5cGUgY3VycmVudFNjcm9sbFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxTY3JvbGxUeXBlPihtX2N1cnJlbnRTY3JvbGxUeXBlKTsgfQogICAgIHZvaWQgc2V0
Q3VycmVudFNjcm9sbFR5cGUoU2Nyb2xsVHlwZSBzY3JvbGxUeXBlKSB7IG1fY3VycmVudFNjcm9s
bFR5cGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Nyb2xsVHlwZSk7IH0KIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgU2Nyb2xsQmVo
YXZpb3JUeXBlIGN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxTY3JvbGxCZWhhdmlvclR5cGU+KG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSk7
IH0KKyAgICB2b2lkIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JU
eXBlIHNjcm9sbEJlaGF2aW9yVHlwZSkgeyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorI2VuZGlmCisKICAg
ICBib29sIHNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9z
Y3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZTsgfQogICAgIHZvaWQgc2V0U2Nyb2xsU2hvdWxk
Q2xlYXJMYXRjaGVkU3RhdGUoYm9vbCBzaG91bGRDbGVhcikgeyBtX3Njcm9sbFNob3VsZENsZWFy
TGF0Y2hlZFN0YXRlID0gc2hvdWxkQ2xlYXI7IH0KIApAQCAtMzc4LDYgKzM4Nyw4IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleCB7IDAgfTsK
ICNlbmRpZgogCisgICAgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgbV9jdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMgeyBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gfTsKKwogICAg
IC8vIFRoZXJlIGFyZSA4IHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB3cml0aW5nIG1vZGUgYW5k
IGRpcmVjdGlvbi4gU2Nyb2xsIG9yaWdpbiB3aWxsIGJlIG5vbi16ZXJvIGluIHRoZSB4IG9yIHkg
YXhpcwogICAgIC8vIGlmIHRoZXJlIGlzIGFueSByZXZlcnNlZCBkaXJlY3Rpb24gb3Igd3JpdGlu
Zy1tb2RlLiBUaGUgY29tYmluYXRpb25zIGFyZToKICAgICAvLyB3cml0aW5nLW1vZGUgLyBkaXJl
Y3Rpb24gICAgIHNjcm9sbE9yaWdpbi54KCkgc2V0ICAgIHNjcm9sbE9yaWdpbi55KCkgc2V0CkBA
IC00MDMsNiArNDE0LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3Njcm9sbE9yaWdpbkNo
YW5nZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbFR5cGUgOiAxOyAvLyBTY3Jv
bGxUeXBlCiAgICAgdW5zaWduZWQgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSA6IDE7
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAg
ICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgOiAxOworI2VuZGlmCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAKaW5kZXggMjA4YWY3Yjg0
Ny4uYWQzMzJjMzI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJp
Yy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcApAQCAtMTYyLDYgKzE2Miw4IEBAIHZv
aWQgU2Nyb2xsQW5pbWF0b3JHZW5lcmljOjp3aWxsRW5kTGl2ZVJlc2l6ZSgpCiAKIHZvaWQgU2Ny
b2xsQW5pbWF0b3JHZW5lcmljOjp1cGRhdGVQb3NpdGlvbihGbG9hdFBvaW50JiYgcG9zaXRpb24p
CiB7CisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEucmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
KHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpKQorICAgICAgICByZXR1cm47CiAgICAgRmxvYXRT
aXplIGRlbHRhID0gcG9zaXRpb24gLSBtX2N1cnJlbnRQb3NpdGlvbjsKICAgICBtX2N1cnJlbnRQ
b3NpdGlvbiA9IFdURk1vdmUocG9zaXRpb24pOwogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChk
ZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0KaW5kZXggZjU5MTc2NzJlZS4uNjM3NTNhZDI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtMTE1NSw2ICsxMTU1LDcg
QEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChjb25z
dCBGbG9hdFNpemUmIGRlbHRhKQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpjYW5jZWxBbmlt
YXRpb25zKCkKIHsKKyAgICBTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucygpOwogICAg
IG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZCA9IGZhbHNlOwogCiAgICAgaWYgKHNjcm9sbGJh
clBhaW50VGltZXJJc0FjdGl2ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAppbmRleCBmOGQzYTQ5MjVhLi42ZDFmODU3Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcApAQCAtNTgxLDIwICs1ODEsMjggQEAgc3RhdGljIHZvaWQgc2V0dXBXaGVl
bEV2ZW50TW9uaXRvcihSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgbGF5ZXIuc2Nyb2xsQW5pbWF0
b3IoKS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocGFnZS53aGVlbEV2ZW50VGVzdE1vbml0b3Io
KSk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5kZXJC
b3g6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9v
bCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgaWYgKCFoYXNPdmVy
Zmxvd0NsaXAoKSB8fCAhbGF5ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHNldHVwV2hlZWxF
dmVudE1vbml0b3IoKmxheWVyKCkpOwotICAgIGxheWVyKCktPnNjcm9sbFRvWFBvc2l0aW9uKG5l
d0xlZnQsIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1hQb3Np
dGlvbihuZXdMZWZ0LCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCi12b2lk
IFJlbmRlckJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUgc2Nyb2xsVHlw
ZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsVG9w
KGludCBuZXdUb3AsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xs
Q2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAoKSB8fCAhbGF5
ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHNldHVwV2hlZWxFdmVudE1vbml0b3IoKmxheWVy
KCkpOwotICAgIGxheWVyKCktPnNjcm9sbFRvWVBvc2l0aW9uKG5ld1RvcCwgc2Nyb2xsVHlwZSwg
Y2xhbXBpbmcpOworICAgIGxheWVyKCktPnNjcm9sbFRvWVBvc2l0aW9uKG5ld1RvcCwgc2Nyb2xs
VHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKK30KKwordm9pZCBSZW5kZXJCb3g6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3Jv
bGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3sKKyAgICBp
ZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQorICAgICAgICByZXR1cm47CisgICAg
c2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7CisgICAgbGF5ZXIoKS0+c2Nyb2xsVG9Q
b3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAog
dm9pZCBSZW5kZXJCb3g6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywgY29u
c3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oCmluZGV4IDQ5NTQ4MTQwNTQuLjIyMTkyODA1NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTI0Nyw4ICsyNDcsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBpbnQgc2Nyb2xsVG9wKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgc2Nyb2xsV2lk
dGgoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdDsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5n
ID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxU
b3AoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIGJv
b2wgYW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCk7CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJv
b2wgYW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCk7CisgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYs
IFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3Jv
bGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAKICAgICBMYXlvdXRVbml0IG1hcmdpblRvcCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94LnRvcCgpOyB9CiAgICAgTGF5b3V0VW5pdCBt
YXJnaW5Cb3R0b20oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX21hcmdpbkJveC5ib3R0b20o
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZDg0YWQx
YTFkYS4uNjEzYTZhZmEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCkBAIC0yNTc1LDE2ICsyNTc1LDI0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmFwcGx5UG9zdExh
eW91dFNjcm9sbFBvc2l0aW9uSWZOZWVkZWQoKQogICAgIG1fcG9zdExheW91dFNjcm9sbFBvc2l0
aW9uID0gV1RGOjpudWxsb3B0OwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1hQb3Np
dGlvbihpbnQgeCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGlu
ZykKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBl
IHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewog
ICAgIFNjcm9sbFBvc2l0aW9uIHBvc2l0aW9uKHgsIG1fc2Nyb2xsUG9zaXRpb24ueSgpKTsKLSAg
ICBzY3JvbGxUb09mZnNldChzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3Jv
bGxUeXBlLCBjbGFtcGluZyk7CisgICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xs
VHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xs
VG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcg
Y2xhbXBpbmcpCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Ny
b2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGlu
ZykKIHsKICAgICBTY3JvbGxQb3NpdGlvbiBwb3NpdGlvbihtX3Njcm9sbFBvc2l0aW9uLngoKSwg
eSk7Ci0gICAgc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9u
KSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIHNjcm9sbFRvUG9zaXRpb24ocG9zaXRpb24s
IHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6
OnNjcm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBTY3JvbGxU
eXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQor
eworICAgIGlmIChhbmltYXRlZCkKKyAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9u
KHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5n
KTsKKyAgICBlbHNlCisgICAgICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldEZyb21Qb3Np
dGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKIH0KIAogU2Nyb2xsT2Zmc2V0
IFJlbmRlckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9s
bE9mZnNldCkgY29uc3QKQEAgLTI1OTQsMjIgKzI2MDIsNjggQEAgU2Nyb2xsT2Zmc2V0IFJlbmRl
ckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNl
dCkgY28KIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQoY29uc3QgU2Nyb2xsT2Zm
c2V0JiBzY3JvbGxPZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcg
Y2xhbXBpbmcpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9y
VHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKworICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZpb3JT
dGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pCisg
ICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOworCiAgICAgU2Nyb2xs
T2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6
Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCkgOiBzY3JvbGxPZmZzZXQ7
Ci0gICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisg
ICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpIHsKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgICAg
ICAvLyBJZiBVSVNjcm9sbFZpZXcgaXMgcGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24sIHRo
ZSBzY3JvbGwgb2Zmc2V0IG9mIHRoZSBXZWIgcHJvY2VzcyBtaWdodCBiZSBvdmVycmlkZGVuLgor
ICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGNhbGwgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
IGhlcmUgYW5kIGxldCBpdCBiZSBjaGVja2VkIG9uIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAv
LyBJZiB0aGUgc2Nyb2xsIG9mZnNldCBvbiB0aGUgVUkgcHJvY2VzcyBpcyBkaWZmZXJlbnQsIHRo
ZSBjb3JyZWN0IHNjcm9sbCBvZmZzZXQgbmVlZHMgdG8gc3luYyBiYWNrIHRvIHRoZSBXZWIgcHJv
Y2Vzcy4KKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9s
bEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgICAgIHJlcXVlc3RT
Y3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQoY2xhbXBlZFNjcm9s
bE9mZnNldCkpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvIHBy
ZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVudFNj
cm9sbFR5cGUoc2Nyb2xsVHlwZSk7CiAKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKICNpZiBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Ny
b2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlKCkuc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKLSAgICAg
ICAgaGFuZGxlZCA9IHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25V
cGRhdGUoKnRoaXMsIHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0
KSk7CisgICAgaGFuZGxlZCA9IHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3Np
dGlvbkZyb21PZmZzZXQoY2xhbXBlZFNjcm9sbE9mZnNldCkpOwogI2VuZGlmCiAKLSAgICBpZiAo
IWhhbmRsZWQpCisgICAgaWYgKCFoYW5kbGVkKSB7CiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0
aG91dEFuaW1hdGlvbihjbGFtcGVkU2Nyb2xsT2Zmc2V0LCBjbGFtcGluZyk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlv
bik7CisgICAgfQorCisgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBl
KTsKK30KKworYm9vbCBSZW5kZXJMYXllcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNv
bnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKQorICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
PSBwYWdlKCkuc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLT5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKnRoaXMsIHBvc2l0aW9u
KTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KIAordm9pZCBSZW5kZXJMYXllcjo6c2Ny
b2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGF1dG8g
cHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJyZW50
U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShT
Y3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlv
blVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0
Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyNlbmRpZgorCisgICAgU2Nyb2xsT2Zmc2V0IG5ld1Njcm9sbE9mZnNldCA9IGNsYW1w
aW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQob2Zmc2V0
KSA6IG9mZnNldDsKKyAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Ny
b2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxB
bmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKKyAgICBpZiAobmV3U2Nyb2xsT2Zmc2V0ICE9
IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKG5ld1Njcm9sbE9mZnNldCk7CiAgICAgc2V0Q3VycmVudFNjcm9s
bFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKIH0KIApAQCAtMjY0NSw3ICsyNjk5LDcgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uKQog
I2VuZGlmCiAgICAgfQogICAgIAotICAgIGlmIChtX3Njcm9sbFBvc2l0aW9uID09IG5ld1Bvc2l0
aW9uKSB7CisgICAgaWYgKG1fc2Nyb2xsUG9zaXRpb24gPT0gbmV3UG9zaXRpb24gJiYgY3VycmVu
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5p
bWF0aW9uKSB7CiAgICAgICAgIC8vIEZJWE1FOiBOb3RoaW5nIGd1YXJhbnRlZXMgd2UgZ2V0IGEg
c2Nyb2xsVG8oKSB3aXRoIGFuIHVuY2hhbmdlZCBwb3NpdGlvbiBhdCB0aGUgZW5kIG9mIGEgdXNl
ciBnZXN0dXJlLgogICAgICAgICAvLyBUaGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgcHJvYmFibHkg
bmVlZHMgdG8gbWVzc2FnZSB0aGUgbWFpbiB0aHJlYWQgd2hlbiBhIGdlc3R1cmUgZW5kcy4KICAg
ICAgICAgaWYgKHJlcXVpcmVzU2Nyb2xsUG9zaXRpb25SZWNvbmNpbGlhdGlvbigpKSB7CkBAIC0y
NzkwLDEwICsyODQ0LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUo
Y29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgIExheW91
dFJlY3QgcmV2ZWFsUmVjdCA9IGdldFJlY3RUb0V4cG9zZShsYXllckJvdW5kcywgbG9jYWxFeHBv
c2VSZWN0LCBpbnNpZGVGaXhlZCwgb3B0aW9ucy5hbGlnblgsIG9wdGlvbnMuYWxpZ25ZKTsKIAog
ICAgICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1wU2Nyb2xsT2Zm
c2V0KHNjcm9sbE9mZnNldCgpICsgdG9JbnRTaXplKHJvdW5kZWRJbnRSZWN0KHJldmVhbFJlY3Qp
LmxvY2F0aW9uKCkpKTsKLSAgICAgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xs
T2Zmc2V0KCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpICE9
IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiB8fCBjbGFtcGVkU2Nyb2xsT2Zm
c2V0ICE9IHNjcm9sbE9mZnNldCgpKSB7CiAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgb2xkU2Ny
b2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0KCk7Ci0gICAgICAgICAgICBzY3JvbGxUb09mZnNldChj
bGFtcGVkU2Nyb2xsT2Zmc2V0KTsKLSAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0RGlm
ZmVyZW5jZSA9IHNjcm9sbE9mZnNldCgpIC0gb2xkU2Nyb2xsT2Zmc2V0OworICAgICAgICAgICAg
Ym9vbCBhbmltYXRlZCA9IChib3gtPmVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0
aW9ucy5iZWhhdmlvciwgKmJveC0+ZWxlbWVudCgpKSk7CisgICAgICAgICAgICBzY3JvbGxUb1Bv
c2l0aW9uKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwgU2Ny
b2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7CisgICAgICAgICAgICBJbnRTaXplIHNj
cm9sbE9mZnNldERpZmZlcmVuY2UgPSBjbGFtcGVkU2Nyb2xsT2Zmc2V0IC0gb2xkU2Nyb2xsT2Zm
c2V0OwogICAgICAgICAgICAgbG9jYWxFeHBvc2VSZWN0Lm1vdmUoLXNjcm9sbE9mZnNldERpZmZl
cmVuY2UpOwogICAgICAgICAgICAgbmV3UmVjdCA9IExheW91dFJlY3QoYm94LT5sb2NhbFRvQWJz
b2x1dGVRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobG9jYWxFeHBvc2VSZWN0KSksIFVzZVRyYW5z
Zm9ybXMpLmJvdW5kaW5nQm94KCkpOwogICAgICAgICB9CkBAIC0yODEzLDEwICsyODY4LDEzIEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYg
YWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCB2aWV3
UmVjdCA9IGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoTGVnYWN5SU9TRG9jdW1lbnRWaXNp
YmxlUmVjdCk7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBleHBvc2VSZWN0ID0gZ2V0UmVj
dFRvRXhwb3NlKHZpZXdSZWN0LCBhYnNvbHV0ZVJlY3QsIGluc2lkZUZpeGVkLCBvcHRpb25zLmFs
aWduWCwgb3B0aW9ucy5hbGlnblkpOwogCi0gICAgICAgICAgICAgICAgSW50UG9pbnQgc2Nyb2xs
T2Zmc2V0KHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkpKTsKKyAgICAgICAg
ICAgICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbihyb3VuZGVkSW50UG9pbnQoZXhwb3NlUmVj
dC5sb2NhdGlvbigpKSk7CiAgICAgICAgICAgICAgICAgLy8gQWRqdXN0IG9mZnNldHMgaWYgdGhl
eSdyZSBvdXRzaWRlIG9mIHRoZSBhbGxvd2FibGUgcmFuZ2UuCi0gICAgICAgICAgICAgICAgc2Ny
b2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2ludCgpLCBJ
bnRQb2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKLSAgICAgICAgICAgICAgICBmcmFt
ZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBz
Y3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2lu
dCgpLCBJbnRQb2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKKyAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBjb250ZW50RG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxl
bWVudCgpPworICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9IG93
bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCkgJiYgb3duZXJFbGVtZW50LT5jb250ZW50RG9j
dW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMu
YmVoYXZpb3IsICpvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1bWVudEVsZW1l
bnQoKSk7CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBhbmltYXRlZCk7CiAKICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5zaG91
bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nID09IFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3Jv
bGxpbmc6OlllcyB8fCBmcmFtZVZpZXcuc2FmZVRvUHJvcGFnYXRlU2Nyb2xsVG9QYXJlbnQoKSkg
ewogICAgICAgICAgICAgICAgICAgICBwYXJlbnRMYXllciA9IG93bmVyRWxlbWVudC0+cmVuZGVy
ZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKTsKQEAgLTI4NTUsNyArMjkxMywxMCBAQCB2b2lkIFJlbmRl
ckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVj
dCwgYm9vbCBpbnNpZAogICAgICAgICAgICAgLy8gQXZvaWQgc2Nyb2xsaW5nIHRvIHRoZSByb3Vu
ZGVkIHZhbHVlIG9mIHJldmVhbFJlY3QubG9jYXRpb24oKSBpZiB3ZSBkb24ndCBhY3R1YWxseSBu
ZWVkIHRvIHNjcm9sbAogICAgICAgICAgICAgaWYgKHJldmVhbFJlY3QgIT0gdmlld1JlY3QpIHsK
ICAgICAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbFBvc2l0aW9uID0gcm91
bmRlZEludFBvaW50KHJldmVhbFJlY3QubG9jYXRpb24oKSkuY29uc3RyYWluZWRCZXR3ZWVuKG1p
blNjcm9sbFBvc2l0aW9uLCBtYXhTY3JvbGxQb3NpdGlvbik7Ci0gICAgICAgICAgICAgICAgZnJh
bWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7CisgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxl
bWVudCgpPworICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9IHJl
bmRlcmVyKCkuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxp
bmcob3B0aW9ucy5iZWhhdmlvciwgKnJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1l
bnQoKSk7CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1w
ZWRTY3JvbGxQb3NpdGlvbiwgYW5pbWF0ZWQpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICAvLyBUaGlzIGlzIHRoZSBvdXRlcm1vc3QgdmlldyBvZiBhIHdlYiBwYWdlLCBzbyBhZnRlciBz
Y3JvbGxpbmcgdGhpcyB2aWV3IHdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CmluZGV4IDZjYTQyMmI3YjIuLjhjOTc3ODM3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAj
aW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHRyLmgiCisjaW5jbHVkZSAi
U2Nyb2xsQmVoYXZpb3IuaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1ZGUg
PG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtMTM0LDYgKzEzNSw3IEBAIHN0
cnVjdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9ucyB7CiAgICAgY29uc3QgU2Nyb2xsQWxpZ25t
ZW50JiBhbGlnblggeyBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQgfTsKICAg
ICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSB7IFNjcm9sbEFsaWdubWVudDo6YWxpZ25D
ZW50ZXJJZk5lZWRlZCB9OwogICAgIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgc2hv
dWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyB7IFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3Jv
bGxpbmc6Ok5vIH07CisgICAgU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IgeyBTY3JvbGxCZWhhdmlv
cjo6QXV0byB9OwogfTsKIAogY2xhc3MgUmVuZGVyTGF5ZXIgZmluYWwgOiBwdWJsaWMgU2Nyb2xs
YWJsZUFyZWEgewpAQCAtNDM5LDkgKzQ0MSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxC
eVJlY3Vyc2l2ZWx5KGNvbnN0IEludFNpemUmIGRlbHRhLCBTY3JvbGxhYmxlQXJlYSoqIHNjcm9s
bGVkQXJlYSA9IG51bGxwdHIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09m
ZnNldChjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJvZ3Jh
bW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBTY3Jv
bGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxD
bGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAotICAgIHZvaWQgc2Nyb2xsVG9Y
UG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBp
bmc6OkNsYW1wZWQpOwotICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5
cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIGJvb2wg
cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgb3ZlcnJp
ZGU7CisKKyAgICB2b2lkIHNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlLCBib29s
IGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAg
ICB2b2lkIHNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlLCBib29sIGFuaW1hdGVk
LCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2b2lkIHNj
cm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlLCBib29sIGFu
aW1hdGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAogICAg
IC8vIFRoZXNlIGFyZSBvbmx5IHVzZWQgYnkgbWFycXVlZS4KICAgICB2b2lkIHNjcm9sbFRvWE9m
ZnNldChpbnQgeCkgeyBzY3JvbGxUb09mZnNldChTY3JvbGxPZmZzZXQoeCwgc2Nyb2xsT2Zmc2V0
KCkueSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6VW5jbGFt
cGVkKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4
IDI1Y2QyZDMzYTcuLmMzM2U5MDYwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAKQEAgLTc0Myw3ICs3NDMsNyBAQCBpbnQgUmVuZGVyTGlzdEJveDo6c2Ny
b2xsTGVmdCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6
c2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW5k
ZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xh
bXBpbmcpCiB7CiB9CiAKQEAgLTc2MCw3ICs3NjAsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cFdoZWVs
RXZlbnRUZXN0TW9uaXRvcihSZW5kZXJMaXN0Qm94JiByZW5kZXJlcikKICAgICByZW5kZXJlci5z
Y3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihyZW5kZXJlci5wYWdlKCku
d2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwogfQogCi12b2lkIFJlbmRlckxpc3RCb3g6OnNldFNj
cm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgUmVu
ZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJvb2wsIFNj
cm9sbENsYW1waW5nKQogewogICAgIC8vIERldGVybWluZSBhbiBpbmRleCBhbmQgc2Nyb2xsIHRv
IGl0LiAgICAKICAgICBpbnQgaW5kZXggPSBuZXdUb3AgLyBpdGVtSGVpZ2h0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAppbmRleCA2NWQ5MjI2YjNhLi4yNWM5MDY1
MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTEwNiw4
ICsxMDYsOCBAQCBwcml2YXRlOgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlkZTsK
ICAgICBpbnQgc2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsSGVp
Z2h0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGlu
dCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Ny
b2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsK
KyAgICB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1w
aW5nKSBvdmVycmlkZTsKIAogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVl
c3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29u
dGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rp
b24pIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IDllZTg4ODg2NzEuLjRkZjdkMzE4
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0zNzYsMTMgKzM3NiwxMyBAQCBpbnQgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjpzY3JvbGxUb3AoKSBjb25zdAogICAgIHJldHVybiBSZW5kZXJC
bG9ja0Zsb3c6OnNjcm9sbFRvcCgpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZTo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcpCit2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsTGVmdChpbnQg
bmV3TGVmdCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpCiB7CiAgICAgaWYgKGlu
bmVyVGV4dEVsZW1lbnQoKSkKICAgICAgICAgaW5uZXJUZXh0RWxlbWVudCgpLT5zZXRTY3JvbGxM
ZWZ0KG5ld0xlZnQpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0
U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3Jv
bGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxlbWVu
dCgpKQogICAgICAgICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbFRvcChuZXdUb3ApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5oCmluZGV4IDNmNTc4NmRmZTQuLjY2NmFhMzE0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKQEAg
LTU3LDggKzU3LDggQEAgcHJpdmF0ZToKICAgICBpbnQgc2Nyb2xsVG9wKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgaW50IHNjcm9sbFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IHNjcm9s
bEhlaWdodCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNj
cm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFNjcm9sbFRv
cChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxD
bGFtcGluZykgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3Jv
bGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIEVsZW1lbnQqKiBzdG9wRWxlbWVu
dCA9IG51bGxwdHIsIFJlbmRlckJveCogc3RhcnRCb3ggPSBudWxscHRyLCBjb25zdCBJbnRQb2lu
dCYgd2hlZWxFdmVudEFic29sdXRlUG9pbnQgPSBJbnRQb2ludCgpKSBmaW5hbDsKICAgICBib29s
IGxvZ2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHks
IGZsb2F0IG11bHRpcGxpZXIgPSAxLCBFbGVtZW50Kiogc3RvcEVsZW1lbnQgPSAwKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA1
ZGNiMjFjNjQ2Li4wMDdhNGQxMzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaApAQCAtNzM2LDYgKzczNiw4IEBAIHB1YmxpYzoKICAgICBib29sIHVz
ZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBtX3JhcmVJbmhlcml0ZWRE
YXRhLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nOyB9CiAjZW5kaWYKIAorICAgIGJvb2wgdXNl
U21vb3RoU2Nyb2xsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+
dXNlU21vb3RoU2Nyb2xsaW5nOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAg
IFRleHRTaXplQWRqdXN0bWVudCB0ZXh0U2l6ZUFkanVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFy
ZUluaGVyaXRlZERhdGEtPnRleHRTaXplQWRqdXN0OyB9CiAgICAgQXV0b3NpemVTdGF0dXMgYXV0
b3NpemVTdGF0dXMoKSBjb25zdDsKQEAgLTEyNjcsNiArMTI2OSw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoYm9vbCB2KSB7IFNFVF9WQVIobV9yYXJl
SW5oZXJpdGVkRGF0YSwgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZywgdik7IH0KICNlbmRpZgog
CisgICAgdm9pZCBzZXRVc2VTbW9vdGhTY3JvbGxpbmcoYm9vbCB2KSB7IFNFVF9WQVIobV9yYXJl
Tm9uSW5oZXJpdGVkRGF0YSwgdXNlU21vb3RoU2Nyb2xsaW5nLCB2KTsgfQorCiAjaWYgRU5BQkxF
KFRFWFRfQVVUT1NJWklORykKICAgICB2b2lkIHNldFRleHRTaXplQWRqdXN0KFRleHRTaXplQWRq
dXN0bWVudCBhZGp1c3RtZW50KSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgdGV4dFNp
emVBZGp1c3QsIGFkanVzdG1lbnQpOyB9CiAgICAgdm9pZCBzZXRBdXRvc2l6ZVN0YXR1cyhBdXRv
c2l6ZVN0YXR1cyk7CkBAIC0xNzA0LDYgKzE3MDgsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJv
b2wgaW5pdGlhbFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxzZTsgfQog
I2VuZGlmCiAKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNlU21vb3RoU2Nyb2xsaW5nKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKwogICAgIHN0YXRpYyBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBpbml0
aWFsRmlsdGVyKCkgeyBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmlsdGVyT3BlcmF0aW9ucz4gb3Bz
OyByZXR1cm4gb3BzOyB9CiAgICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRp
YWxBcHBsZUNvbG9yRmlsdGVyKCkgeyBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmlsdGVyT3BlcmF0
aW9ucz4gb3BzOyByZXR1cm4gb3BzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCBm
YjMyMDgyMzM3Li5kMmE1MzFmYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC04Nyw2
ICs4Nyw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEoKQogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KHN0YXRpY19jYXN0PHVuc2lnbmVkPihS
ZW5kZXJTdHlsZTo6aW5pdGlhbEJhY2tmYWNlVmlzaWJpbGl0eSgpKSkKICAgICAsIHVzZXJEcmFn
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZXJEcmFnKCkpKQog
ICAgICwgdGV4dE92ZXJmbG93KHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5p
dGlhbFRleHRPdmVyZmxvdygpKSkKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcoKSkpCiAg
ICAgLCBtYXJnaW5CZWZvcmVDb2xsYXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTWFyZ2luQ29s
bGFwc2U6OkNvbGxhcHNlKSkKICAgICAsIG1hcmdpbkFmdGVyQ29sbGFwc2Uoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KE1hcmdpbkNvbGxhcHNlOjpDb2xsYXBzZSkpCiAgICAgLCBhcHBlYXJhbmNlKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEFwcGVhcmFuY2UoKSkpCkBA
IC0xODAsNiArMTgxLDcgQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIGJhY2tmYWNl
VmlzaWJpbGl0eShvLmJhY2tmYWNlVmlzaWJpbGl0eSkKICAgICAsIHVzZXJEcmFnKG8udXNlckRy
YWcpCiAgICAgLCB0ZXh0T3ZlcmZsb3coby50ZXh0T3ZlcmZsb3cpCisgICAgLCB1c2VTbW9vdGhT
Y3JvbGxpbmcoby51c2VTbW9vdGhTY3JvbGxpbmcpCiAgICAgLCBtYXJnaW5CZWZvcmVDb2xsYXBz
ZShvLm1hcmdpbkJlZm9yZUNvbGxhcHNlKQogICAgICwgbWFyZ2luQWZ0ZXJDb2xsYXBzZShvLm1h
cmdpbkFmdGVyQ29sbGFwc2UpCiAgICAgLCBhcHBlYXJhbmNlKG8uYXBwZWFyYW5jZSkKQEAgLTI3
OCw2ICsyODAsNyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0o
Y29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBiYWNrZmFj
ZVZpc2liaWxpdHkgPT0gby5iYWNrZmFjZVZpc2liaWxpdHkKICAgICAgICAgJiYgdXNlckRyYWcg
PT0gby51c2VyRHJhZwogICAgICAgICAmJiB0ZXh0T3ZlcmZsb3cgPT0gby50ZXh0T3ZlcmZsb3cK
KyAgICAgICAgJiYgdXNlU21vb3RoU2Nyb2xsaW5nID09IG8udXNlU21vb3RoU2Nyb2xsaW5nCiAg
ICAgICAgICYmIG1hcmdpbkJlZm9yZUNvbGxhcHNlID09IG8ubWFyZ2luQmVmb3JlQ29sbGFwc2UK
ICAgICAgICAgJiYgbWFyZ2luQWZ0ZXJDb2xsYXBzZSA9PSBvLm1hcmdpbkFmdGVyQ29sbGFwc2UK
ICAgICAgICAgJiYgYXBwZWFyYW5jZSA9PSBvLmFwcGVhcmFuY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5o
CmluZGV4IDE5YzU5MWIyZDEuLjE2YTI4NTEzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAt
MTgxLDYgKzE4MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHVzZXJEcmFnIDogMjsgLy8g
VXNlckRyYWcKICAgICB1bnNpZ25lZCB0ZXh0T3ZlcmZsb3cgOiAxOyAvLyBXaGV0aGVyIG9yIG5v
dCBsaW5lcyB0aGF0IHNwaWxsIG91dCBzaG91bGQgYmUgdHJ1bmNhdGVkIHdpdGggIi4uLiIKKyAg
ICB1bnNpZ25lZCB1c2VTbW9vdGhTY3JvbGxpbmcgOiAxOyAvLyBTY3JvbGxCZWhhdmlvcgogICAg
IHVuc2lnbmVkIG1hcmdpbkJlZm9yZUNvbGxhcHNlIDogMjsgLy8gTWFyZ2luQ29sbGFwc2UKICAg
ICB1bnNpZ25lZCBtYXJnaW5BZnRlckNvbGxhcHNlIDogMjsgLy8gTWFyZ2luQ29sbGFwc2UKICAg
ICB1bnNpZ25lZCBhcHBlYXJhbmNlIDogNjsgLy8gRUFwcGVhcmFuY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKaW5kZXggN2YzZjBjYmM0ZS4uZTM4MjA0
ZjY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVy
dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgK
QEAgLTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgY29udmVydE92ZXJm
bG93U2Nyb2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAjZW5kaWYKICAg
ICBzdGF0aWMgRm9udEZlYXR1cmVTZXR0aW5ncyBjb252ZXJ0Rm9udEZlYXR1cmVTZXR0aW5ncyhC
dWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOworICAgIHN0YXRpYyBib29sIGNvbnZlcnRT
bW9vdGhTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0
aWMgRm9udFNlbGVjdGlvblZhbHVlIGNvbnZlcnRGb250V2VpZ2h0RnJvbVZhbHVlKGNvbnN0IENT
U1ZhbHVlJik7CiAgICAgc3RhdGljIEZvbnRTZWxlY3Rpb25WYWx1ZSBjb252ZXJ0Rm9udFN0cmV0
Y2hGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgT3B0aW9uYWw8Rm9udFNl
bGVjdGlvblZhbHVlPiBjb252ZXJ0Rm9udFN0eWxlRnJvbVZhbHVlKGNvbnN0IENTU1ZhbHVlJik7
CkBAIC0xNDAzLDYgKzE0MDQsMTEgQEAgaW5saW5lIGJvb2wgQnVpbGRlckNvbnZlcnRlcjo6Y29u
dmVydE92ZXJmbG93U2Nyb2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1YKIH0KICNlbmRp
ZgogCitpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U21vb3RoU2Nyb2xsaW5n
KEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gZG93
bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS52YWx1ZUlEKCkgPT0gQ1NTVmFsdWVTbW9v
dGg7Cit9CisKIGlubGluZSBTVkdMZW5ndGhWYWx1ZSBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0
U1ZHTGVuZ3RoVmFsdWUoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQogewog
ICAgIHJldHVybiBTVkdMZW5ndGhWYWx1ZTo6ZnJvbUNTU1ByaW1pdGl2ZVZhbHVlKGRvd25jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IGUwNzc3OTYyZDUuLjcyNDAwODEwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKQEAgLTE3NDYsNyArMTc0Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVy
bmFsczo6dW5jb25zdHJhaW5lZFNjcm9sbFRvKEVsZW1lbnQmIGVsZW1lbnQsIGRvdWJsZSB4LCBk
CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCi0gICAgZWxlbWVudC5zY3JvbGxU
byh7IHgsIHkgfSwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CisgICAgZWxlbWVudC5zY3Jv
bGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSksIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOwog
ICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg0NTJlN2Y5MS4uYjI4YWE0ZDBjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxOS0xMi0xMSAgQ2F0aGllIENoZW4gIDxjYXRo
aWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhh
dmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9u
IHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIENTU09NIHNtb290
aCBzY3JvbGxpbmcgYXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuIE9uIGlvcyBwbGF0Zm9ybSwg
dXNlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaW50ZXJmYWNlcyB0byBwZXJm
b3JtYW5jZSBzbW9vdGggc2Nyb2xsIGFuZCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhl
IFdlYiBwcm9jZXNzLgorCisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZT46OmVuY29kZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZT46OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXApOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAocG9pbnRz
RXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbCk6IEhlbHAgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdHdv
IGZsb2F0IHBvaW50cyBhcmUgbm90IGVxdWFsIGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwu
CisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Ny
b2xsT3JpZ2luOmFuaW1hdGVkOl0pOiBBZGQgYW5pbWF0ZWQgZmxhZyB0byBzdGFydCBhIGFuaW1h
dGVkIHNjcm9sbCBpZiBuZWVkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBzY3JvbGxWaWV3RGlk
RW5kU2Nyb2xsaW5nQW5pbWF0aW9uOl0pOiBTZW5kIHNyb2xsIGVuZCBtZXNzYWdlIHRvIHRoZSBX
ZWIgcHJvY2Vzcy4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQ
b3NpdGlvbjpzY3JvbGxPcmlnaW46XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnJlcXVlc3RTY3JvbGxXaXRoQW5p
bWF0aW9uKTogUHJvdmlkZSBpbnRlcmZhY2UgZm9yIGFuaW1hdGVkIHNjcm9sbGluZy4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHk6OmNvbW1pdExheWVyVHJlZSk6IEFkZCBhbmltYXRlZCBmbGFnLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKTogU3luYyB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBX
ZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhbmltYXRlZCBzY3Jv
bGxpbmcgaW5mbyB0byBtX3JlcXVlc3RlZFNjcm9sbEluZm8uCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogU3luYyBzY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzRGlkQ2hhbmdlKTogRGl0dG8uIEl0J3Mgc3BlY2lmaWMgdG8gdGhlIHJvb3Qgbm9k
ZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdU
cmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6IEFkZCBhbmltYXRlZCBpbmZvLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6
OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTog
RGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdUcmVlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1Mu
bW06CisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxW
aWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOl0pOiBTZW5kIHNjb2xsIGVuZCBpbmZvIHRvIHRo
ZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTogSWYgdGhlIHNjcm9sbCBw
b3NpdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MgaXNuJ3QgZXF1YWwgdG8gdGhlIFVJIHByb2Nlc3Ms
CisgICAgICAgIHRoZSBzY3JvbGwgcG9zaXRpb24gc2hvdWxkIGJlIHN5bmNocm9uaXplZCwgZXZl
biB0aGVyZSdzIG5vIHNjcm9sbGluZyBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAg
ICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9z
aXRpb25TY3JvbGxpbmdMYXllcnMpOiBDYWxsaW5nIHRoZSBuYXRpdmUgYW5pbWF0ZWQgc2Nyb2xs
aW5nIGludGVyZmFjZSBmb3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgSWYgdGhlcmUncyBhIHNj
cm9sbCBhbmltYXRpb24gcGVyZm9ybWluZywgaXQgc2hvdWxkIGJlIHN0b3BwZWQgZmlyc3QsIHRo
ZW4gc3RhcnQgYSBuZXcgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0
aW9uKTogU3luYyBzY3JvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnJlcXVlc3RTY3JvbGwpOiBUbyBjYWxsIGRpZmZlcmVudCBmdW5jdGlvbnMgZm9yIHNtb290
aCBhbmQgaW5zdGFudCBzY3JvbGwuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3NDaGFuZ2VkRm9yTm9kZSk6CisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGll
Y2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZp
b3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA1MDA5CisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcgYXMgYW4gZXhw
ZXJpbWVudGFsIGZlYXR1cmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAxOS0xMi0xMCAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgbG9hZCBz
b29uZXIgb24gc3dpcGUgYmFjay9mb3J3YXJkIG5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAppbmRleCBkN2IxZTE5Mzcy
Li41NzQ0ZTFjODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xNTIsNiArMTUyLDkgQEAgdm9pZCBBcmd1bWVudENvZGVy
PFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdAogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zLCBzY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMpCiAgICAg
U0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKQogICAgIFNDUk9MTElO
R19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBTQ1JPTExJTkdfTk9ERV9FTkNP
REUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwg
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKQorI2VuZGlmCiAKICAgICBpZiAo
bm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxDb250YWluZXJMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8R3JhcGhp
Y3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNjcm9sbENvbnRhaW5lckxheWVyKCkpOwpA
QCAtMjYwLDcgKzI2MywxNCBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9sbAogICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgYm9v
bCBzY3JvbGxXaXRoQW5pbWF0aW9uOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNjcm9s
bFdpdGhBbmltYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBub2Rl
LnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCByZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxXaXRoQW5pbWF0aW9uKTsKKyNlbHNlCiAgICAgICAgIG5v
ZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKG5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVy
TGF5ZXIpKSB7CkBAIC02MDgsNiArNjE4LDkgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFt
JiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAg
ICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewog
ICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24iLCBub2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJl
cXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0aWMiLCBub2RlLnJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwt
cG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0
aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICghY2hhbmdlZFByb3BlcnRp
ZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwKaW5kZXggMmU3YjRiNGZlNC4uZmViMmMzZjg0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzI0LDYgKzEzMjQsMTMgQEAgQmxvY2tp
bmdPZlNtYWxsUGx1Z2luc0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlN0
b3AgcGx1Z2lucyBzbWFsbGVyIHRoYW4gYSBjZXJ0YWluIHRocmVzaG9sZCBmcm9tIGxvYWRpbmcu
IgogICBjYXRlZ29yeTogaW50ZXJuYWwKIAorQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVO
YW1lOiAiQ1NTT00gVmlldyBTbW9vdGggU2Nyb2xsaW5nIgorICBodW1hblJlYWRhYmxlRGVzY3Jp
cHRpb246ICJFbmFibGUgRE9NIEFQSSBhbmQgQ1NTIHByb3BlcnR5IGZvciAnc21vb3RoJyBzY3Jv
bGwgYmVoYXZpb3IiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogV2ViQW5pbWF0aW9uc0Vu
YWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzMzU0YWM2ZWVjLi4x
MDhlNGMwM2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KQEAgLTE2MTcsNiArMTYxNywxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcG9pbnRz
RXF1YWxJbkRldmljZVBpeGVscyhDR1BvaW50IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2aWNlUwog
ICAgICAgICAmJiBmYWJzKGEueSAqIGRldmljZVNjYWxlRmFjdG9yIC0gYi55ICogZGV2aWNlU2Nh
bGVGYWN0b3IpIDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKIH0KIAor
c3RhdGljIGlubGluZSBib29sIHBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoQ0dQb2lu
dCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIHJldHVybiBD
R1JvdW5kKGEueCAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueCAqIGRldmljZVNj
YWxlRmFjdG9yKQorICAgICAgICAmJiBDR1JvdW5kKGEueSAqIGRldmljZVNjYWxlRmFjdG9yKSA9
PSBDR1JvdW5kKGIueSAqIGRldmljZVNjYWxlRmFjdG9yKTsKK30KIHN0YXRpYyBDR1NpemUgcm91
bmRTY3JvbGxWaWV3Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2Us
IENHU2l6ZSBjb250ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IHBh
Z2UuZGV2aWNlU2NhbGVGYWN0b3IoKTsKQEAgLTIzNDEsOSArMjM0NiwxMCBAQCBzdGF0aWMgV2Vi
Q29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9p
bnQgY29udGVudE9mZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2Vl
bihXZWJDb3JlOjpGbG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNvbnRl
bnRPZmZzZXQpKTsKIH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246
KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3Jl
OjpJbnRQb2ludClzY3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBv
c2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjoo
V2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7
Ci0gICAgaWYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3
cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RS
ZXNpemluZykKKyAgICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBwZWQu
CisgICAgaWYgKCFhbmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8
fCBfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVw
ZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6
RmxvYXRQb2ludCBjb250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9s
bE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3Jp
Z2luKSk7CkBAIC0yMzU3LDEzICsyMzYzLDIxIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50
IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAK
ICAgICBbX3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CiAK
LSAgICBpZiAoIUNHUG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzLCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Njcm9s
bFZpZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0
ZXNdOworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1dCBp
biB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4KKyAg
ICAvLyBXZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhlcmUu
CisgICAgaWYgKCFwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZzZXRJ
blNjcm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBfcGFn
ZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50
T2Zmc2V0OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDphbmlt
YXRlZF07CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBhbnl0
aGluZywgdGhlcmUgd291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRlIHNl
bnQgdG8gdGhlIGNvbnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtlZXAg
dGhlIGludmFsaWQgY29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAgICAg
ICAvLyBUbyBzeW5jaHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2NyZWVu
LCB3ZSBzZW5kIHRoZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdlLT5y
ZXNlbmRMYXN0VmlzaWJsZUNvbnRlbnRSZWN0cygpOworICAgICAgICAvLyBJZiBfc2Nyb2xsVmll
dyB3b24ndCBjaGFuZ2UsIHdlIHN0aWxsIG5lZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nlc3MgdGhh
dCB0aGUgYW5pbWF0aW9uIHN0b3BwZWQuCisgICAgICAgIGlmIChhbmltYXRlZCkgeworICAgICAg
ICAgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRv
ciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgICAgICAgICBpZiAo
Y29vcmRpbmF0b3IpCisgICAgICAgICAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVS
b290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CisgICAg
ICAgIH0KICAgICB9CiB9CiAKQEAgLTI4NzksNiArMjg5MywxMCBAQCBzdGF0aWMgV2ViQ29yZTo6
RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29u
dGVudE9mZgogLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNj
cm9sbFZpZXcgKilzY3JvbGxWaWV3CiB7CiAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGluZ107
CisKKyAgICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5h
dG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICBpZiAoY29vcmRp
bmF0b3IpCisgICAgICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOwogfQogCiAtICh2b2lkKV9zY3Jv
bGxWaWV3RGlkSW50ZXJydXB0RGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJ
bnRlcm5hbC5oCmluZGV4IDQzNTA4MGYzMjQuLjVjYjVmNTgxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC05
Nyw3ICs5Nyw3IEBAIHN0cnVjdCBQcmludEluZm87CiAKIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdT
bmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3Q7CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNj
cm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9y
aWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luOworLSAodm9pZClfc2Nyb2xsVG9D
b250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24g
c2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6KEJP
T0wpYW5pbWF0ZWQ7CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0
YXJnZXRSZWN0IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNjcm9s
bERpc3RhbmNlOihmbG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFuY2U7CiAtIChkb3VibGUpX2luaXRp
YWxTY2FsZUZhY3RvcjsKIC0gKGRvdWJsZSlfY29udGVudFpvb21TY2FsZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlODQ4MjRmZDg1Li5kZTNkMzM2NzlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDggQEAgcHVibGljOgog
ICAgIC8vIFRlbGwgdGhlIHZpZXcgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBwb3NpdGlvbiwgYW5k
IHdoZXRoZXIgdGhpcyB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgogICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmln
aW4pIHsgfQorCiAgICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiAobm90
IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwgYmVj
YXVzZSBvZiBzY2FsaW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0
UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDM4MGYxMjQ0NDMuLjBhNDJmOTQ0OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBA
IC0yMjQsOCArMjI0LDE0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6
Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAKICAgICAvLyBIYW5k
bGUgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzIGZyb20gdGhlIHNjcm9sbGluZyB0
cmVlIHRyYW5zYWN0aW9uIGFmdGVyIGRpZENvbW1pdExheWVyVHJlZSgpCiAgICAgLy8gaGFzIHVw
ZGF0ZWQgdGhlIHZpZXcgc2l6ZSBiYXNlZCBvbiB0aGUgY29udGVudCBzaXplLgotICAgIGlmIChy
ZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpCi0gICAgICAg
IG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCkpOwor
ICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUp
IHsKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJ
bmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAsIGxheWVyVHJlZVRyYW5z
YWN0aW9uLnNjcm9sbE9yaWdpbigpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAg
ICAgICwgcmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0V2l0aEFuaW1hdGlvbgorI2VuZGlmCisg
ICAgICAgICAgICApOworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQog
CiAgICAgaWYgKG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0KSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggNDgyM2Y3NmE5Ny4u
MWQ0MGE2YTZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5LmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6CiB9
CiAKIC8vIFRoaXMgY29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUuCi12b2lkIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9z
aXRpb24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwg
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
KQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9k
ZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9p
bnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0
Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKIHsK
ICAgICAvLyBTY3JvbGwgdXBkYXRlcyBmb3IgdGhlIG1haW4gZnJhbWUgYXJlIHNlbnQgdmlhIFdl
YlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cygpCiAgICAgLy8gc28gZG9uJ3Qg
c2VuZCB0aGVtIGhlcmUuCkBAIC0yMjIsMjEgKzIyMiw0MSBAQCB2b2lkIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05v
ZGVJRAogICAgIG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVTY3JvbGxWaWV3RGlkU2Nyb2xs
KCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fc2Nyb2xs
aW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpICYmICFpbnN0YW50U2Nyb2xs
RGlkU3RvcEFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworI2Vsc2UKICAgICBpZiAobV9zY3Jv
bGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKCkpCiAgICAgICAgIHJldHVy
bjsKKyNlbmRpZgogCiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OlNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoc2Nyb2xsZWRO
b2RlSUQsIG5ld1Njcm9sbFBvc2l0aW9uLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID09
IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpKTsKIH0KIAotdm9pZCBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xs
KFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKK3ZvaWQgUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9s
bChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9s
bFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFu
aW1hdGlvbikKIHsKICAgICBpZiAoc2Nyb2xsZWROb2RlSUQgPT0gcm9vdFNjcm9sbGluZ05vZGVJ
RCgpICYmIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbykgewogICAgICAgICBtX3JlcXVlc3RlZFNjcm9s
bEluZm8tPnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgPSB0cnVlOwogICAgICAgICBtX3Jl
cXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGw7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAg
bV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0V2l0aEFuaW1hdGlvbiA9IHdpdGhBbmltYXRp
b247CisjZW5kaWYKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwogICAgIH0KIH0KIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGlu
Z1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNj
cm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShz
Y3JvbGxlZE5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKSk7Cit9CisKK3ZvaWQg
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5v
ZGUocm9vdFNjcm9sbGluZ05vZGVJRCgpLCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsK
K30KKyNlbmRpZgorCiBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Ny
b2xsaW5nVHJlZUFzVGV4dCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhNzY5
NDNmMjQuLjgxMTVlNDc3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaApAQCAtNTUsOSArNTUsMTQgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5Jik7CiAgICAgdmlydHVh
bCB+UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOwogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKTsKKyNlbmRpZgorCiAgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJvY2VzcyB0aGF0IHRo
ZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNjcm9sbGluZyB0cmVl
KQotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29u
c3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBX
ZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLSAgICB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xs
UG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3
cG9ydE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBp
bnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IGZhbHNlKTsKKyAgICB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSk7CiAKICAgICBXZWJDb3Jl
OjpUcmFja2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3RyaW5n
JiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKIApAQCAtODAsNiArODUsOSBA
QCBwdWJsaWM6CiAgICAgc3RydWN0IFJlcXVlc3RlZFNjcm9sbEluZm8gewogICAgICAgICBib29s
IHJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgeyB9OwogICAgICAgICBib29sIHJlcXVlc3RJ
c1Byb2dyYW1tYXRpY1Njcm9sbCB7IH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAg
ICAgYm9vbCByZXF1ZXN0V2l0aEFuaW1hdGlvbiB7IH07CisjZW5kaWYKICAgICAgICAgV2ViQ29y
ZTo6RmxvYXRQb2ludCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICB9OwogICAgIHZvaWQg
Y29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
VHJhbnNhY3Rpb24mLCBSZXF1ZXN0ZWRTY3JvbGxJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5jcHAKaW5kZXggYWZhYmJjMWVhZS4uZTZlYjQ4YmQ5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcApAQCAtMTA0LDEyICsxMDQsMTYgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdU
cmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZSYKICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkpCiAg
ICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2luID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZT4obm9kZSkubGF5b3V0Vmlld3BvcnQoKS5sb2NhdGlvbigpOwogCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5jdXJy
ZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb24sIG5vZGUubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpICYm
ICFub2RlLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKTsKKyNlbHNlCiAgICAgbV9zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5n
Tm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3Jp
Z2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyNlbmRpZgogfQogCi12b2lkIFJl
bW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xs
aW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wg
cmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6
c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBj
b25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24pCiB7Ci0gICAgbV9zY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQ
b3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgbV9zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBz
Y3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgd2l0aEFuaW1hdGlv
bik7CiB9CiAKIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3Jl
YXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGlu
Z05vZGVJRCBub2RlSUQpCkBAIC0xNDMsNiArMTQ3LDEzIEBAIFJlZjxTY3JvbGxpbmdUcmVlTm9k
ZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5n
Tm9kCiAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9k
ZUlEKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGlu
Z1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hh
bmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKQoreworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxp
bmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShub2RlSUQsIGlz
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cit9CisjZW5kaWYKKwogdm9pZCBSZW1vdGVTY3Jv
bGxpbmdUcmVlOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkKIHsKICAg
ICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRD
aGFuZ2Uobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1Ry
ZWUuaAppbmRleCAyM2JhYzA2YTNiLi4wZjllMDk0OTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdU
cmVlLmgKQEAgLTUyLDcgKzUyLDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5JiBzY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkgY29uc3QgeyBy
ZXR1cm4gbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5OyB9CiAKICAgICB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJiwg
V2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFdlYkNvcmU6OlNjcm9sbGlu
Z0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Nyb2xsaW5n
VHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwpIG92ZXJyaWRlOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0
c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJv
b2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlKSBvdmVycmlkZTsKKworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKSBvdmVycmlkZTsKKyNlbmRpZgogCiAgICAgdm9pZCBjdXJyZW50U25h
cFBvaW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVk
IGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaApp
bmRleCBlNjM3ZDYxNTMyLi4wMGI0ZGJjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaApAQCAtNTcsNiArNTcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxEaWRFbmQoKSBjb25zdDsKICAgICB2b2lkIHNj
cm9sbFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxWaWV3
RGlkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9mZnNldCwgYm9vbCBp
blVzZXJJbnRlcmFjdGlvbik7CisgICAgdm9pZCBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5p
bWF0aW9uKCk7CiAKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKHVu
c2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBjb25zdDsKICAgICBDQUxheWVy
ICpzY3JvbGxMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUy5tbQppbmRleCBlNzY4OTgzNzU4Li44NDg4NjNhODFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1t
CkBAIC0xNTIsNiArMTUyLDExIEBACiAgICAgfQogfQogCistICh2b2lkKXNjcm9sbFZpZXdEaWRF
bmRTY3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKK3sKKyAgICBf
c2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1h
dGlvbigpOworfQorCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogLSAoQ0dQb2ludClfc2Ny
b2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNldEZvck9mZnNl
dDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRpb24gc3RhcnRQ
b2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludClsb2NhdGlvbkluVmll
dyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2FsVmVsb2NpdHk6
KGlub3V0IGRvdWJsZSAqKXZ2CiB7CkBAIC0zMDAsMTUgKzMwNSwzNiBAQCB2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihj
b25zdCBTY3JvbAogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVy
dHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikp
IHsKICAgICAgICAgYXV0byBzY3JvbGxUeXBlID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpID8gU2Nyb2xsVHlw
ZTo6UHJvZ3JhbW1hdGljIDogU2Nyb2xsVHlwZTo6VXNlcjsKLSAgICAgICAgc2Nyb2xsaW5nTm9k
ZSgpLnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigp
LCBzY3JvbGxUeXBlKTsKKyAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ05vZGUo
KS5zZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwodHJ1ZSk7CisgICAgICAgIC8vIElmIHRoZSBzY3Jv
bGwgcG9zaXRpb25zIGFyZSBub3QgdGhlIHNhbWUsIHRoZXJlJ3MgYSBwb3NzaWJpbGl0eSB0aGF0
IHRoZSBzY3JvbGwgb2Zmc2V0IGZyb20gdGhlIFdlYiBwcm9jZXNzIGhhcyBiZWVuIG92ZXJyaWRk
ZW4uCisgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIHNjcm9sbCBwb3NpdGlvbiBuZWVkIHRv
IGJlIHNlbnQgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBib29sIHNob3VsZFN5bmNTY3Jv
bGxQb3NpdGlvbiA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxQb3NpdGlvbigpICE9IHNjcm9s
bGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgc2Nyb2xsaW5nTm9k
ZSgpLnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigp
LCBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywgc2hvdWxk
U3luY1Njcm9sbFBvc2l0aW9uKTsKICAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpCiB7Ci0gICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW3Njcm9sbFZpZXcoKSBzZXRDb250ZW50
T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOwotICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBib29sIGFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBzY3Jv
bGxpbmdOb2RlKCkuc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpOworICAgIGJvb2wgbmVlZFRv
U3RvcEFuaW1hdGlvbiA9IHNjcm9sbGluZ05vZGUoKS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5p
bWF0aW9uKCk7CisgICAgaWYgKG5lZWRUb1N0b3BBbmltYXRpb24gJiYgYW5pbWF0aW9uSW5Qcm9n
cmVzcykgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Nj
cm9sbFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbFZpZXcoKS5jb250ZW50T2Zmc2V0IGFu
aW1hdGVkOk5PXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0KKwor
ICAgIGlmIChzY3JvbGxpbmdOb2RlKCkucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkpIHsKKyAgICAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0
Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpIGFuaW1h
dGVkOllFU107CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKworICAgICAgICBz
Y3JvbGxpbmdOb2RlKCkuc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyh0cnVlKTsKKyAgICB9
IGVsc2UgaWYgKCFhbmltYXRpb25JblByb2dyZXNzIHx8IG5lZWRUb1N0b3BBbmltYXRpb24pIHsK
KyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3
KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgp
XTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0KIH0KIAogdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxXaWxsU3RhcnQoKSBj
b25zdApAQCAtMzM1LDYgKzM2MSwxNSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludAogICAgIHNj
cm9sbGluZ05vZGUoKS53YXNTY3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKHNjcm9sbFBvc2l0
aW9uLCB7IH0sIGluVXNlckludGVyYWN0aW9uID8gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
bjo6U3luYyA6IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiB9CiAKK3ZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZEVuZFNj
cm9sbGluZ0FuaW1hdGlvbigpCit7CisgICAgYXV0byYgbm9kZSA9IHNjcm9sbGluZ05vZGUoKTsK
KyAgICBpZiAoIShub2RlLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpICYmIG5vZGUuc2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcygpKSkgeworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5n
VHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9kZS5zY3JvbGxp
bmdOb2RlSUQoKSwgZmFsc2UpOworICAgICAgICBub2RlLnNldFNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MoZmFsc2UpOworICAgIH0KK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25lZCBo
b3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3QKIHsKICAgICBpZiAobV91cGRhdGlu
Z0Zyb21TdGF0ZU5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBkYjJjZTA3OWNhLi5kMDlmNjA3YWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTE3NjcsOSArMTc2NywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBSZWdpb24mIHJlZ2lvbikKICAgICBwYWdlQ2xpZW50
KCkuc2V0Vmlld05lZWRzRGlzcGxheShyZWdpb24pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50
UG9pbnQmIHNjcm9sbE9yaWdpbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U2Nyb2xsKGNv
bnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3Jp
Z2luLCBjb25zdCBib29sIHdpdGhBbmltYXRpb24pCiB7Ci0gICAgcGFnZUNsaWVudCgpLnJlcXVl
c3RTY3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgaWYgKHdpdGhBbmlt
YXRpb24pCisgICAgICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihz
Y3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2VDbGll
bnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOwogfQogCiBX
ZWJDb3JlOjpGbG9hdFBvaW50IFdlYlBhZ2VQcm94eTo6dmlld1Njcm9sbFBvc2l0aW9uKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYWUzODUyMjIxZC4u
YWYwN2VhNDkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTYx
Myw3ICs2MTMsNyBAQCBwdWJsaWM6CiAgICAgUGFnZUNsaWVudCYgcGFnZUNsaWVudCgpIGNvbnN0
OwogCiAgICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYp
OwotICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3Jv
bGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbik7CisgICAg
dm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBib29sIHdpdGhBbmlt
YXRpb24gPSBmYWxzZSk7CiAgICAgCiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xs
UG9zaXRpb24oKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaAppbmRleCBkNmM4YzM4ZDRhLi41MTk4ZWY0NDJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtNTcsNiAr
NTcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBj
cmVhdGVEcmF3aW5nQXJlYVByb3h5KFdlYlByb2Nlc3NQcm94eSYpIG92ZXJyaWRlOwogICAgIHZv
aWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKSBvdmVycmlkZTsK
ICAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIG92ZXJyaWRl
OworICAgIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxP
cmlnaW4pIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0
aW9uKCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJyaWRl
OwogICAgIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggZGM5Zjc0YzQ5
YS4uMmMzMGM0YmMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQpAQCAtOTUsNyArOTUsMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6
c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBSZWdpb24mKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJ
bnRQb2ludCYgc2Nyb2xsT3JpZ2luKQogewotICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVu
dFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW5d
OworICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBv
c2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6Tk9dOworfQorCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKK3sKKyAg
ICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlv
biBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOllFU107CiB9CiAKIFdlYkNvcmU6
OkZsb2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDhl
NjQ5MzU1NDUuLjNkMzQ1ZDc2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC03Myw2ICs3MywxMCBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2Rl
SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHN5bmNM
YXllclBvc2l0aW9uKTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZv
ck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNp
Z25lZCB2ZXJ0aWNhbCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCisKICAgICBX
ZWJQYWdlKiBtX3dlYlBhZ2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KaW5kZXggMmMwOThh
MTA5Ny4uNTM3ZmQzNGQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUsOSBA
QAogbWVzc2FnZXMgLT4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IgewogICAgIFNjcm9sbFBv
c2l0aW9uQ2hhbmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCBXZWJDb3JlOjpGbG9hdFBvaW50
IHNjcm9sbFBvc2l0aW9uLCBib29sIHN5bmNMYXllclBvc2l0aW9uKTsKICAgICBDdXJyZW50U25h
cFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgdW5zaWduZWQgaG9y
aXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJ
RCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4IDgzNTQ0MWQzMTkuLjY4OWQ1NTYy
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IubW0KQEAgLTEwNCw2ICsxMDQsMTMgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvcjo6Y3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZShTY3JvbGxpbmcKICAg
ICBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhub2RlSUQsIGhvcml6b250YWwsIHZlcnRpY2Fs
KTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUoV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MpCit7CisgICAgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhub2RlSUQsIGlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCmluZGV4IGI5ZGFlMmNlMTAuLmJjZjVlYjhhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRo
aWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhh
dmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAg
ICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBB
ZGQgcnVuIHRpbWUgZmxhZyBmb3IgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nLgorCisgICAgICAg
ICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogSGFuZGxlIENTU09NVmlld1Nt
b290aFNjcm9sbGluZyBieS4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgor
ICAgICAgICAoW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKTogRGlzYWJsZSBDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmcgYnkgZGVmYXVsdC4KKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgQ1NT
T01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZF0pOiBHZXR0ZXIuCisgICAgICAgICgtW1dlYlBy
ZWZlcmVuY2VzIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6XSk6IFNldHRlci4K
KyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2Vk
Ol0pOgorCiAyMDE5LTEyLTA5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbmFtZSBtZWRpYSBpbiB0aGUgR1BVIHByb2Nlc3MgcHJlZmVyZW5jZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNDQxYjVhODc3Ni4uYzY3OWZiZDZkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCkBAIC0xODgsNiArMTg4LDcgQEAKICNkZWZpbmUgV2ViS2l0RGlyZWN0b3J5
VXBsb2FkRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVk
IgogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAi
V2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIK
ICNkZWZpbmUgV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAi
V2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFJlbW90ZVBs
YXliYWNrRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRSZW1vdGVQbGF5YmFja0VuYWJsZWQi
CiAjZGVmaW5lIFdlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
U3VidGxlQ3J5cHRvRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDQ3ZjdjNzVkZGEuLmNkMjM2NzQ0ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpA
QCAtNjYzLDYgKzY2Myw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgICAgIEBZRVMsIFdlYktp
dENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAorICAgICAgICBATk8s
IFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAg
ICAgICBAWUVTLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlya0tleSwK
ICAgICAgICAgQE5PLCBXZWJLaXRBbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JD
cmVkZW50aWFsc0tleSwKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtMzE4MSw2ICszMTgy
LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBbc2Vs
ZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NT
T01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2b2lk
KXNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6KEJPT0wpZmxhZworeworICAgIFtz
ZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xs
aW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiAtIChCT09MKXdlYkFuaW1hdGlvbnNFbmFi
bGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0V2ViQW5pbWF0
aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDU5NzU4ZTIzMzUu
LjA5MTE5MzFkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjMyLDYgKzYzMiw3IEBAIGV4dGVybiBO
U1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0
aW9uIFdFQktJVF9ERVBSCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHZpc3VhbFZpZXdw
b3J0QVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbGFyZ2VJbWFn
ZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYW5pbWF0
ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
amF2YVNjcmlwdE1hcmt1cEVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KaW5kZXggNDdhYWUzMjhkYi4uNjY3MDM1OWUxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjk5Miw2ICsyOTkyLDcgQEAgc3Rh
dGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmsoKQogICAgIHNldHRpbmdz
LnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgdmlzdWFsVmlld3BvcnRB
UElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0U3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5h
YmxlZChbcHJlZmVyZW5jZXMgc3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZF0pOwogICAg
IHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIENT
U09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQoW3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0XSk7CiAKICAgICBzd2l0Y2ggKFtwcmVmZXJlbmNlcyBzdG9yYWdlQmxvY2tp
bmdQb2xpY3ldKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNDIwMTRkOTlkNS4u
ZTdjYTZmNzIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2gg
YnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmlkbDogSGFuZGxlIHNtb290aCBzY3JvbGxpbmcgb3B0aW9uLgorICAgICAgICAq
IFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcmVmZXJl
bmNlcy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZh
dWx0U2V0dGluZ3MpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldENTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6IERpdHRv
LgorICAgICAgICAqIFdlYlZpZXcuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYlZpZXc6Om5vdGlm
eVByZWZlcmVuY2VzQ2hhbmdlZCk6CisKIDIwMTktMTItMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBQYWdlQ29uZmlndXJhdGlvbjo6ZHJhZ0NsaWVudCBzaG91
bGQgdXNlIGEgc21hcnQgcG9pbnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5kZXggYTcx
NzYyMjIxYi4uY2NmZjlmMDU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
SW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0yMjMs
NiArMjIzLDggQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU2IDogSVdlYlByZWZl
cmVuY2VzUHJpdmF0ZTUKICAgICBIUkVTVUxUIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChb
aW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOworICAgIEhSRVNVTFQg
c2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAg
ICAgSFJFU1VMVCBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKiBl
bmFibGVkKTsKICAgICBIUkVTVUxUIHNldEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChbaW5dIEJP
T0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoW291dCwg
cmV0dmFsXSBCT09MICplbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggMDk5Mzc0MjBlNC4uMDhjNDU2NzI3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKQEAgLTIwOSw2ICsyMDksNyBAQAogI2RlZmluZSBXZWJLaXRTZXJ2ZXJUaW1pbmdFbmFi
bGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZCIKIAogI2RlZmluZSBX
ZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0Q1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVy
ZW5jZUtleSAiV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkIgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggOTVlYmVhMjY4Yy4uYzhlMjI1YWE0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMzM5LDYg
KzMzOSw4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3Mo
KQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFJlc2l6
ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCisgICAg
Q0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdENTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKKwogICAg
IENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRDb3JlTWF0aE1MRW5h
YmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgQ0ZEaWN0aW9uYXJ5
QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVk
UHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CkBAIC0yMjgzLDYgKzIyODUsMjAgQEAg
SFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0Q29yZU1hdGhNTEVuYWJsZWQoQk9PTCBlbmFibGVk
KQogICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCit7CisgICAgaWYg
KCFlbmFibGVkKQorICAgICAgICByZXR1cm4gRV9QT0lOVEVSOworICAgICplbmFibGVkID0gYm9v
bFZhbHVlRm9yS2V5KFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJl
bmNlS2V5KTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6
c2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChCT09MIGVuYWJsZWQpCit7CisgICAg
c2V0Qm9vbFZhbHVlKFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJl
bmNlS2V5LCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19PSzsKK30KKwogSFJFU1VMVCBXZWJQcmVm
ZXJlbmNlczo6cmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkK
IHsKICAgICBpZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5j
ZXMuaAppbmRleCAxZGFhYTczMDI1Li42MDY2ZTQ2NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI3MSw2ICsyNzEsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01WaWV3
U2Nyb2xsaW5nQVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoQk9PTCk7Cisg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKEJPT0wpOwogICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQo
X091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRG
ZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChfT3V0XyBCT09MKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGEwNDQ4YmIwMTMuLmQyYjIyZjA0NzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01MzE4LDYgKzUzMTgsMTEgQEAgSFJF
U1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiog
bm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01W
aWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCghIWVuYWJsZWQpOwogCisgICAgaHIgPSBwcmVmc1ByaXZh
dGUtPkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoJmVuYWJsZWQpOworICAgIGlmIChG
QUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCghIWVuYWJsZWQpOworCiAgICAgaHIgPSBwcmVmZXJlbmNl
cy0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikp
CiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAwMGRhYmU3M2Y0Li5lOWExMjhiMDI2IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTkt
MTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHA6
CisgICAgICAgIChUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMpOiBQYXJzZSBDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
Lmg6IEFkZCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkLCBkaXNhYmxlZCBieSBkZWZh
dWx0LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAg
ICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOiBTZXQgQ1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZCBmcm9tIHRoZSB0ZXN0IG9wdGlvbnMuCisKIDIwMTktMTItMTAg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBBUEkg
dGVzdCBmYWlsdXJlIGFmdGVyIHIyNTMzNTEKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNw
cAppbmRleCA3YzlhZTU5OTRhLi4yMzdjOTg4NzhmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuY3BwCkBAIC0xNDIsNiArMTQyLDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNv
bnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUKICAg
ICAgICAgICAgIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBwYXJzZUJvb2xlYW5UZXN0SGVh
ZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpS
ZXNpemVPYnNlcnZlckVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlUmVzaXplT2JzZXJ2ZXIg
PSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIikKKyAg
ICAgICAgICAgIGVuYWJsZUNTU09NVmlld1Ntb290aFNjcm9sbGluZyA9IHBhcnNlQm9vbGVhblRl
c3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVu
dGFsOkNvcmVNYXRoTUxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZUNvcmVNYXRoTUwgPSBw
YXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkg
PT0gImV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZCIpCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuaAppbmRleCBlNTMzNWU4MzExLi5mN2U4ZDI5MTFkIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTUwLDYgKzUwLDcgQEAgc3RydWN0IFRlc3RPcHRpb25z
IHsKICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAgIGJvb2wgYWRDbGlj
a0F0dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVSZXNpemVPYnNl
cnZlciB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcg
eyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlQ29yZU1hdGhNTCB7IGZhbHNlIH07CiAgICAgYm9v
bCBlbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUFz
eW5jQ2xpcGJvYXJkQVBJIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQppbmRleCBjY2ZmZTA1NWQzLi42N2NhZWE3MThkIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMDI5LDYgKzEwMjksNyBAQCBz
dGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RPcHRp
b25zJiBvcHRpb25zKQogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0aW9u
cy5lbmFibGVDU1NMb2dpY2FsOwogICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlvbkVu
YWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CiAgICAgcHJlZmVyZW5j
ZXMucmVzaXplT2JzZXJ2ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXNpemVPYnNlcnZlcjsK
KyAgICBwcmVmZXJlbmNlcy5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkID0gb3B0aW9u
cy5lbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmc7CiAgICAgcHJlZmVyZW5jZXMuY29yZU1h
dGhNTEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNvcmVNYXRoTUw7CiAgICAgcHJlZmVyZW5jZXMu
cmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJlcXVlc3RJZGxlQ2Fs
bGJhY2s7CiAgICAgcHJlZmVyZW5jZXMuYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkID0gb3B0aW9u
cy5lbmFibGVBc3luY0NsaXBib2FyZEFQSTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385400</attachid>
            <date>2019-12-11 09:06:42 -0800</date>
            <delta_ts>2019-12-11 09:25:36 -0800</delta_ts>
            <desc>native-animation-for-review</desc>
            <filename>upload_31.diff</filename>
            <type>text/plain</type>
            <size>152010</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MmMyMWFjMDgxLi43NTQzNzBiOGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2lu
ZyBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQu
IEluIG9yZGVyIHRvIHRlc3QgcHJvcGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9y
IHRlc3QgdG8gZmFzdC9zY3JvbGxpbmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2
ZVNjcm9sbGluZyk6CisgICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9s
bE5vZGUpOgorICAgICAgICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0
bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKIDIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0
aGUgV2ViIHByb2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uMGEwOTY4ZTAyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzCkBAIC0w
LDAgKzEsODcgQEAKK2Z1bmN0aW9uIG9ic2VydmVTY3JvbGxpbmcoZWxlbWVudHMsIGNhbGxiYWNr
KSB7CisgIGlmICghQXJyYXkuaXNBcnJheShlbGVtZW50cykpCisgICAgICBlbGVtZW50cyA9IFtl
bGVtZW50c107CisgIHZhciBsYXN0Q2hhbmdlZEZyYW1lID0gMDsKKyAgdmFyIGxhc3RMZWZ0ID0g
bmV3IE1hcCgpOworICB2YXIgbGFzdFRvcCA9IG5ldyBNYXAoKTsKKyAgZWxlbWVudHMuZm9yRWFj
aCgoZWxlbWVudCkgPT4geworICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9s
bExlZnQpOworICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsVG9wKTsKKyAg
fSk7CisgIGZ1bmN0aW9uIHRpY2soZnJhbWVzKSB7CisgICAgLy8gV2UgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lIGVpdGhlciBmb3IgNTAwIGZyYW1lcyBvciB1bnRpbCAyMCBmcmFtZXMgd2l0aAorICAg
IC8vIG5vIGNoYW5nZSBoYXZlIGJlZW4gb2JzZXJ2ZWQuCisgICAgaWYgKGZyYW1lcyA+PSA1MDAg
fHwgZnJhbWVzIC0gbGFzdENoYW5nZWRGcmFtZSA+IDIwKSB7CisgICAgICBjYWxsYmFjayh0cnVl
KTsKKyAgICB9IGVsc2UgeworICAgICAgdmFyIHNjcm9sbEhhcHBlbmVkID0gZWxlbWVudHMuc29t
ZSgoZWxlbWVudCkgPT4geworICAgICAgICByZXR1cm4gZWxlbWVudC5zY3JvbGxMZWZ0ICE9IGxh
c3RMZWZ0LmdldChlbGVtZW50KSB8fCBlbGVtZW50LnNjcm9sbFRvcCAhPSBsYXN0VG9wLmdldChl
bGVtZW50KTsKKyAgICAgIH0pOworICAgICAgaWYgKHNjcm9sbEhhcHBlbmVkKSB7CisgICAgICAg
IGxhc3RDaGFuZ2VkRnJhbWUgPSBmcmFtZXM7CisgICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVs
ZW1lbnQpID0+IHsKKyAgICAgICAgICBsYXN0TGVmdC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3Jv
bGxMZWZ0KTsKKyAgICAgICAgICBsYXN0VG9wLnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbFRv
cCk7CisgICAgICAgIH0pOworICAgICAgICBjYWxsYmFjayhmYWxzZSk7CisgICAgICB9CisgICAg
ICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljay5iaW5kKG51bGwsIGZyYW1lcyArIDEpKTsKKyAg
ICB9CisgIH0KKyAgdGljaygwKTsKK30KKworZnVuY3Rpb24gd2FpdEZvclNjcm9sbEVuZChlbGVt
ZW50cykgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICBvYnNlcnZl
U2Nyb2xsaW5nKGVsZW1lbnRzLCAoZG9uZSkgPT4geworICAgICAgaWYgKGRvbmUpCisgICAgICAg
IHJlc29sdmUoKTsKKyAgICB9KTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0U2Nyb2xsKHNj
cm9sbGluZ0VsZW1lbnQpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhl
IGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsKKyAg
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwgYmVoYXZpb3I6ICJpbnN0
YW50In0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhlIGVsZW1lbnQgcG9z
aXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOworICBzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rp
b24gc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgY2xhc3NOYW1lKSB7CisgIHN0eWxl
ZEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYXV0b0JlaGF2aW9yIiwgInNtb290aEJlaGF2aW9y
Iik7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpOworfQorCitmdW5j
dGlvbiBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlv
ciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdz
ID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7Cisg
IHN3aXRjaCAoc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBjYXNlICJzY3JvbGxJbnRvVmlldyI6Cisg
ICAgICBhcmdzLmlubGluZSA9ICJzdGFydCI7CisgICAgICBhcmdzLmJsb2NrID0gInN0YXJ0IjsK
KyAgICAgIGVsZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyhhcmdzKTsKKyAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0Owor
ICAgICAgYXJncy50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3A7CisgICAgICBzY3JvbGxpbmdFbGVt
ZW50W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKKyAgICAgIGJyZWFrOworICB9Cit9CisKK2Z1bmN0
aW9uIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlv
ciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdz
ID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7Cisg
IGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7CisgIGFyZ3MudG9wID0gZWxlbWVudFRv
UmV2ZWFsVG9wOworICBzY3JvbGxpbmdXaW5kb3dbc2Nyb2xsRnVuY3Rpb25dKGFyZ3MpOworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44ZDRjYTY0MTU1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNz
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgSW5zdGFudCBzY3JvbGxpbmcg
b2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAorUEFTUyBTbW9vdGgg
c2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLjM1YzY1MDNhYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKQEAgLTAsMCAr
MSw1MiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBkZWZh
dWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMg
V2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwt
YmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xs
YWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdo
dDogMjAwcHg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlk
PSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6
IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVk
ZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9j
azsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50
VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAt
MTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3Nw
YW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgc2Nyb2xsaW5nRWxlbWVudCA9
IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBl
bGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIHZhciBzY3JvbGxGdW5jdGlvbiA9ICJzY3JvbGwi
OworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50IiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgIH0sICJJbnN0YW50IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdp
dGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJTbW9vdGgg
c2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciIpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41M2E5NjFlZjU2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACisKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhl
ciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQzOGRm
ZmRlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBF
IGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlv
ciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87Cisg
ICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgIH0KKyAgLmF1dG9CZWhhdmlv
ciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7
CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJs
b2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4K
KyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9
ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9z
cGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFj
a2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2
YXIgc2Nyb2xsaW5nRWxlbWVudCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIHN0eWxlZEVsZW1lbnQg
PSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIg
ZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNj
cm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsK
KyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGws
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
cmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9u
LCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOwor
CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1
dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNj
cm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAg
IH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgIH0pOworICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICB9KTsK
KworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVs
ZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xs
aW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45N2Nh
ZWEyN2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzcgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQzMjVi
NGI5ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEsMTY5IEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dT
Y3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMn
IGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUg
cm9vdCBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250
ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIg
aHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZp
b3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
b20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBt
YXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBh
dXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9v
dGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdl
Q29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+Cisg
IDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlz
cGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5k
OiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFz
eW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50LCBzdHlsZWRF
bGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5j
dGlvbigpIHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dDsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBh
Z2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJw
eCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVp
Z2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cu
aW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5p
bm5lckhlaWdodCkgKiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVu
dFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVs
ZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygo
KSA9PiB7IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOyB9KTsKKworICAgIFsic2Nyb2xs
IiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Ny
b2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5n
RWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZl
KCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsg
cmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0
aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7Cisg
ICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGws
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3Jv
bGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9s
bEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAg
ICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsK
KworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhC
ZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZv
clNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQg
LyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5z
dGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIp
OworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXdpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MC4uMzgyMzg1YWFiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjkgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290
aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBv
biB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uOTA1N2IwY2QxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApA
QCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRl
cm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVz
dGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIG9uIHRoZSB3
aW5kb3cgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCxtaW5pbXVtLXNjYWxlPTEsaW5pdGlhbC1zY2FsZT0xIj4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2
aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9y
IHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBhZ2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4KKyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxz
Y3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0gYXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAg
dmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBh
Z2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nV2luZG93
ID0gd2luZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7
CisgICAgcGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkg
KiA1ICsgInB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cu
aW5uZXJIZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCAr
IHdpbmRvdy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsg
d2luZG93LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQg
PSBlbGVtZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUu
dG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2Nh
bGxiYWNrKCgpID0+IHsgcmVzZXRTY3JvbGxGb3JXaW5kb3cod2luZG93KTsgfSk7CisKKyAgICBb
InNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9u
KSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZv
cldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
c2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVh
bFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkg
PT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVu
KCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVu
Y3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9s
bEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
Mik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5n
Iik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDAp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5n
IHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9s
bGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi40NDNhODIwZTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHNjcm9sbEludG9WaWV3IHdp
dGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
Y3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDViNWQ4ZDdjNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50
b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciB3aXRoIHNjcm9s
bEludG9WaWV3IGZvciBuZXN0ZWQgc2Nyb2xsaW5nIG5vZGVzPC90aXRsZT4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLD
qWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVm
LXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisg
IC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICBoZWlnaHQ6IDIwMHB4Owor
ICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
IH0KKyAgLmdyYWRpZW50IHsKKyAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVn
LCByZWQsIGdyZWVuKTsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxk
aXY+CisgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0
aDogNDUwcHgiPgorICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9v
dGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiA0MDBweCI+CisgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
PGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAzNTBweCI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMzAw
cHgiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJs
ZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiAyNTBweCI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAy
MDBweCI+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImVs
ZW1lbnRUb1JldmVhbCIgc3R5bGU9IndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICA8
L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAg
PGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgPC9kaXY+Cisg
ICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1
MDBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
Ly8gVGhlIENTU09NLVZpZXcgc3BlYyBhbmQgaW1wbGVtZW50YXRpb25zIGZvbGxvdyBkaWZmZXJl
bnQgYWxnb3JpdGhtcyAoc2Nyb2xscyBwZXJmb3JtZWQgaW4gcGFyYWxsZWwsIGFzIGlubmVyLXRv
LW91dGVyIHNlcXVlbmNlIG9yIGFzIG91dGVyLXRvLWlubmVyIHNlcXVlbmNlKS4KKyAgLy8gU2Vl
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMTI3CisgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgdmFyIGRpdnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
c2Nyb2xsYWJsZSIpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGFibGVEaXYpOworICAgICAgfSk7CisgICAgICBlbGVt
ZW50VG9SZXZlYWwuc2Nyb2xsSW50b1ZpZXcoe2lubGluZTogInN0YXJ0IiwgYmxvY2s6ICJzdGFy
dCIsIGJlaGF2aW9yOiAiYXV0byJ9KTsKKyAgICAgIHZhciBzY3JvbGxUb3AgPSBuZXcgTWFwKCk7
CisgICAgICB2YXIgaXNTbW9vdGggPSBuZXcgTWFwKCk7CisgICAgICBkaXZzLmZvckVhY2goKHNj
cm9sbGFibGVEaXYpID0+IHsKKyAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2LCBz
Y3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgIGlzU21vb3RoLnNldChzY3JvbGxhYmxl
RGl2LCBzY3JvbGxhYmxlRGl2LmNsYXNzTGlzdC5jb250YWlucygic21vb3RoQmVoYXZpb3IiKSk7
CisgICAgICAgIC8vIElmIHNjcm9sbCBvcGVyYXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIGluIHBh
cmFsbGVsLCBzY3JvbGwgYm94ZXMgd2l0aCBpbnN0YW50IGJlaGF2aW9yIG1pZ2h0IGFsc28gbmVl
ZCB0byB3YWl0IGZvciB0aGVpciBwcmVkZWNlc3NvcnMuCisgICAgICAgIGlmIChpc1Ntb290aC5n
ZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxUb3Au
Z2V0KHNjcm9sbGFibGVEaXYpLCA1MDAsICJFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNo
b3VsZCBub3Qgc2Nyb2xsIGltbWVkaWF0ZWx5Iik7CisgICAgICB9KTsKKworICAgICAgb2JzZXJ2
ZVNjcm9sbGluZyhBcnJheS5mcm9tKGRpdnMpLCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRy
eSB7CisgICAgICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKHNjcm9sbFRvcC5nZXQoc2Nyb2xsYWJsZURpdiks
IHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsK
KyAgICAgICAgICAgIGlmICghaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAg
ICAgICBhc3NlcnRfYW55KGFzc2VydF9lcXVhbHMsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCBb
MCwgNTAwXSwgIkVsZW1lbnQgd2l0aCBpbnN0YW50IGJlaGF2aW9yIHNob3VsZCBqdW1wIHRvIHRo
ZSBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsIDUwMCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2
LCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0gY2F0
Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9u
ZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgInNjcm9s
bEludG9WaWV3IHdpdGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhh
dmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44
NTVhNmE2MTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIwIEBACisKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3Ro
IHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BB
U1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9t
ICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRv
ICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4g
cGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5n
IHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxU
bygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9s
bGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20g
KDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNj
cm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGgg
c2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAK
K1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBm
cm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwg
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0
byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRp
b25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUw
MCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAs
IDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hl
biBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmcgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxp
bmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1w
b3NpdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wYTQx
YjhiMDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTAsMCArMSwxNTEgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsIHBvc2l0
aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yPC90aXRs
ZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3
aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92
ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAw
MHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywg
cmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3
aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1Jl
dmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4
OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4K
KyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIEZvciBzbW9vdGggYmVoYXZpb3IsIGV2
b2x1dGlvbiBvZiBzY3JvbGwgcG9zaXRpb25zIG92ZXIgdGltZSBpcyBub3Qgc3BlY2lmaWVkIGJ5
IENTU09NIFZpZXcuCisgIC8vIFRoaXMgdGVzdCByZWxpZXMgb24gdGhlIG1pbmltYWwgYXNzdW1w
dGlvbiB0aGF0IHNjcm9sbCBwb3NpdGlvbiBmdW5jdGlvbnMgYXJlIG1vbm90b25pYy4KKyAgWyJz
Y3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNo
KGZ1bmN0aW9uKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgW3tsZWZ0OjAsIHRvcDowfSwge2xlZnQ6
MTAwMCwgdG9wOjB9LCB7bGVmdDowLCB0b3A6NTAwfSwge2xlZnQ6MTAwMCwgdG9wOjUwMH1dLmZv
ckVhY2goKGluaXRpYWwpID0+IHsKKyAgICAgIHZhciBmaW5hbExlZnQgPSA1MDA7CisgICAgICB2
YXIgZmluYWxUb3AgPSAyNTA7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAg
c2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIGluaXRpYWwubGVm
dCwgaW5pdGlhbC50b3ApOworICAgICAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNj
cm9sbExlZnQ7CisgICAgICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCBpbml0aWFsLmxlZnQsICJTY3JvbGxM
ZWZ0IHNob3VsZCBiZSBhdCBpbml0aWFsIHBvc2l0aW9uIik7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhvbGRUb3AsIGluaXRpYWwudG9wLCAiU2Nyb2xsVG9wIHNob3VsZCBiZSBhdCBpbml0aWFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgaWYgKHNjcm9sbEZ1bmN0aW9uID09PSAic2Nyb2xsQnki
KQorICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAi
c21vb3RoIiwgZmluYWxMZWZ0IC0gaW5pdGlhbC5sZWZ0LCBmaW5hbFRvcCAtIGluaXRpYWwudG9w
KTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwg
c2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBmaW5hbExlZnQsIGZpbmFsVG9wKTsKKyAgICAgICAg
ICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Ny
b2xsTGVmdDsKKyAgICAgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxU
b3A7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoTWF0aC5oeXBvdChmaW5h
bExlZnQgLSBuZXdMZWZ0LCBmaW5hbFRvcCAtIG5ld1RvcCksIE1hdGguaHlwb3QoZmluYWxMZWZ0
IC0gb2xkTGVmdCwgZmluYWxUb3AgLSBvbGRUb3ApLCAiU2Nyb2xsIHBvc2l0aW9uIHNob3VsZCBt
b3ZlIHRvd2FyZHMgdGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIGlmIChkb25l
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCBmaW5hbExlZnQsICJT
Y3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3VG9wLCBmaW5hbFRvcCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2gg
ZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBvbGRMZWZ0
ID0gbmV3TGVmdDsKKyAgICAgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICAgICAg
fSBjYXRjaChlKSB7CisgICAgICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgICAgfSwgYFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoJHtpbml0aWFsLmxlZnR9LCAke2luaXRpYWwudG9w
fSkgdG8gKCR7ZmluYWxMZWZ0fSwgJHtmaW5hbFRvcH0pIHVzaW5nICR7c2Nyb2xsRnVuY3Rpb259
KCkgYCk7CisgICAgfSk7CisgIH0pOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRT
Y3JvbGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZh
bHNlOworICAgICAgdmFyIHNjcm9sbERpcmVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKKyAgICAgIHZh
ciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0g
b3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7
CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJm
bG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNj
cm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAg
IHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmIChpbml0
aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgaWYgKHNjcm9sbERpcmVjdGlvbkNoYW5n
ZWQpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRMZWZ0LCBu
ZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFz
c2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMg
ZGVjcmVhc2luZyIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgIHNjcm9sbERp
cmVjdGlvbkNoYW5nZWQgPSBuZXdMZWZ0IDw9IG9sZExlZnQgJiYgbmV3VG9wIDw9IG9sZFRvcDsK
KyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFs
KG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAg
ICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRv
cCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAm
JiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBz
Y3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIs
IDUwMCwgMjUwKTsKKyAgICAgICAgICAgICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bExlZnQ7CisgICAgICAgICAgICAgICAgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsK
KyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBy
ZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3As
IDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAg
ICB9CisgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3
VG9wOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7Cisg
ICAgfSk7CisgIH0sICJTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Ny
b2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICByZXNldFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxT
Y3JvbGxBYm9ydGVkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3Ro
IiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5j
dGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoIWluaXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAg
ICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9s
bExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFu
X2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAg
ICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAwICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAg
ICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFsIHNjcm9sbC4KKyAgICAgICAgICAgICAgICBp
bml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShv
dmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIDUwMCwgMjUwKTsKKyAgICAgICAgICAg
ICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAg
bmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0
aW9uIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9s
bFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9u
Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Nyb2xsVG9wIHNo
b3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9s
ZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBj
YXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChk
b25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFuIGlu
c3RhbnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAuLjI3OTlmZGNjMjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzcgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBz
Y3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BB
U1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45NmQxMWFiOTYyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1s
PjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0Pgor
PGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIgd2lkdGg9IjQw
MHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgorICA8c3R5bGU+
CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRvQmVoYXZpb3Ig
eworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21vb3RoQmVoYXZp
b3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8L3N0eWxlPgor
ICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsg
YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Jz4KKyAgICAg
IDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0
OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHlsZT0nZGlzcGxh
eTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWln
aHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2PgorICA8L2Jv
ZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFtZUxvYWRUZXN0
ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5nRWxlbWVudCwg
c3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVm
dCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkg
PT4geworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9k
ZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisg
ICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5m
b3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZl
KSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7
CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
YXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAg
ICAgfSk7CisgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Ny
b2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAs
IDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhl
bigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7CisgIH0pKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA1ZWIzMjcyZjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBAQAorCitQ
QVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2lu
ZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMzMzM2Q2NGY4
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzEgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVu
dC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIg
d2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgor
ICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRv
QmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21v
b3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8
L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6
IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7
Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHls
ZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2
PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFt
ZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5n
V2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBlbGVtZW50VG9S
ZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICBpZnJh
bWVOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5zdGVwX2Z1bmNf
ZG9uZSgoKSA9PiB7CisgICAgc2Nyb2xsaW5nV2luZG93ID0gaWZyYW1lTm9kZS5jb250ZW50V2lu
ZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9kZS5jb250ZW50RG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisgICAgWyJzY3JvbGwi
LCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4gewor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3co
c2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGlu
Z1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRv
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAp
OworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwg
Imluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChz
Y3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3co
c2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
YCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJz
Y3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7
CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxX
aW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsK
KworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNmFlNTZlYzc3Li5hNDgxMWZjODAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8
Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwg
YmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRm
b3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5
MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNl
ZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
c3VwcG9ydCBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0uIEl0IHJlbGll
cyBvbiBVSVNjcm9sbFZpZXcncworICAgICAgICBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBw
b3J0IGFuZCBpcyBleGVjdXRlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBUZXN0czog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1w
b3NpdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKworICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBi
eSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVk
IHNjcm9sbCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5p
bWF0aW9uIHN0YXR1cyBmcm9tIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOiBB
ZGQgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gdG8gaW5kaWNhdGUgaXQn
cyBhbmltYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOiBEaXR0
by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6cmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2UpOiBVcGRhdGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFk
ZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90
LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRT
dGF0ZUFmdGVyQ2hpbGRyZW4pOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIHRoZSBzY3JvbGwgaXMg
YW5pbWF0ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGU6OnNjcm9sbFRvKTogSWYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiBpcyB0cnVlLCBzZW5k
IHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLCBldmVuIGlmIHRoZSBzY3Jv
bGwgcG9zaXRpb24gZG9lc24ndCBjaGFuZ2UuCisgICAgICAgIE1haW50YWluIHRoZSBzdGF0dXMg
b2YgbV9zdG9wU2Nyb2xsQW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xs
UG9zaXRpb25DaGFuZ2VkKTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xs
IHBvc2l0aW9uIGltbWVkaWF0ZWx5LCBzbyBkb24ndCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZv
IG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRS
ZXF1ZXN0QW5pbWF0ZWRTY3JvbGwpOiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCBpbmRpY2F0ZXMg
dGhhdCB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0LgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRlZFNjcm9sbCBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1h
dGlvbiBzdGF0dXMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3Jv
bGxBbmltYXRpb24pOiBJZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlv
biwgdGhlIHByZXZpb3VzIHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
VHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQg
b3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGlu
ZGljYXRlIHRoZSBzdGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRp
b24pOiBVcGRhdGUgU2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpTY3JvbGxh
YmxlQXJlYSk6IEFkZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVh
OjpjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9s
bEJlaGF2aW9yVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRDdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogU2Vu
ZCBhIHF1ZXN0IG9mIG5hdGl2ZSBzY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xs
IGFuaW1hdGlvbiBieSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZSgpLgorCiAyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4K
IAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBTY3Jv
bGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
aW5kZXggOTM5Y2U0YmVlMi4uNzMxZTMyMjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtMzY2OCw2ICszNjY4LDE0IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5CiAgICAgYXV0
byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOwogICAgIHNldEN1cnJl
bnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBl
KFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBz
ZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCisKICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkg
PT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQogICAgICAgICBz
Y3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKICAgICBpZiAob2Zmc2V0ICE9IHRo
aXMtPnNjcm9sbE9mZnNldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA0MjllZWU5YTk2
Li5hOTdlYTQyZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4LDcgKzI0OCwxNCBA
QCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVw
ZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUg
PSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
IT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29sIGluUHJvZ3JhbW1h
dGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxU
eXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFj
a0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSBpblByb2dy
YW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBib29sIGFuaW1hdGVkID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbEJl
aGF2aW9yVHlwZSgpID09IFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoOworICAgIC8vIFRoZSBz
Y3JvbGwgcG9zaXRpb24gb2YgYW5pbWF0ZWQgc2Nyb2xsaW5nIHdpbGwgYmUgc2V0IGJ5IHRoZSBV
SSBwcm9jZXNzLiBTbyBzaG91bGRuJ3Qgc2V0IGl0IG5vdy4KKyAgICB1cGRhdGVTY3JvbGxQb3Np
dGlvbiA9ICFhbmltYXRlZCAmJiB1cGRhdGVTY3JvbGxQb3NpdGlvbjsKKyNlbmRpZgorICAgIGlm
ICh1cGRhdGVTY3JvbGxQb3NpdGlvbikKICAgICAgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRl
ckFzeW5jU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHsgfSwgU2Nyb2xs
VHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwog
CiAgICAgLy8gSWYgdGhpcyBmcmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0IGludG8g
dGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCkBAIC0y
NjAsNyArMjY3LDE0IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3JvCiAgICAgaWYgKCFzdGF0ZU5v
ZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgYXV0byBzdGF0dXMgPSBhbmltYXRlZCA/IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2
ZUFuaW1hdGlvbiA6IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbjsKKyAgICBz
Y3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhzdGF0dXMpOworCisgICAgc3Rh
dGVOb2RlLT5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9n
cmFtbWF0aWNTY3JvbGwsIGFuaW1hdGVkKTsKKyNlbHNlCiAgICAgc3RhdGVOb2RlLT5zZXRSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9ncmFtbWF0aWNTY3JvbGwp
OworI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI5MSw2ICszMDUsMzIgQEAgdm9p
ZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9u
QWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBtX3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVy
LnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGlu
Z05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAg
IGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3
LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5Bbmlt
YXRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xs
IGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxh
YmxlQXJlYUZvclNjcm9sbExheWVySUQobm9kZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3Jv
bGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwor
ICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5u
b2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxl
ZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9z
Y2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRlTGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4uM2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQ
cm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVw
ZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0
IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRP
cmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsK
KyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6
b250YWxJbmRleCwgdW5zaWduZWQgdmVydGljYWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
LmNwcAppbmRleCA3MTdiZmMyYTU1Li43ZTIxODhjMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgog
ICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVh
UGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
LCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2RlLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7
CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0y
MTksMTIgKzIyMiwyMiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5
Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFtcyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29s
IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlv
bikKK3sKKyAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb247CisgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworICAgIG1fcmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uID0gcmVxdWVzdGVkV2l0aEFuaW1hdGlvbjsKKyAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOworfQorI2Vsc2UK
IHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogewogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b24gPSByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGw7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKTsK
IH0KKyNlbmRpZgogCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cykKIHsKQEAgLTMx
NCw2ICszMjcsMTEgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVQKICAgICBpZiAobV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiAgICAgICAgIHRz
LmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiByZXByZXNlbnRzIHByb2dy
YW1tYXRpYyBzY3JvbGwiLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dy
YW1tYXRpY1Njcm9sbCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbikKKyAgICAgICAgdHMuZHVtcFByb3Bl
cnR5KCJyZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHdpdGggYW5pbWF0aW9uIiwgbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pOworI2VuZGlmCisKICAgICBpZiAoIW1fcGFy
ZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHRzLmR1bXBQcm9w
ZXJ0eSgicGFyZW50IHJlbGF0aXZlIHNjcm9sbGFibGUgcmVjdCIsIG1fcGFyZW50UmVsYXRpdmVT
Y3JvbGxhYmxlUmVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNDk2N2E2Y2U4MS4u
NmUyNWQ3YmJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKQEAgLTExMSw3ICsxMTEsMTIgQEAg
cHVibGljOgogCiAgICAgY29uc3QgRmxvYXRQb2ludCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOyB9CiAgICAgYm9vbCBy
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSBjb25z
dCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbDsgfQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGJvb2wgcmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uID0gZmFsc2Up
OworI2Vsc2UKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
OworI2VuZGlmCiAKICAgICBib29sIGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50czsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0SXNNb25pdG9yaW5nV2hlZWxFdmVudHMoYm9vbCk7CkBAIC0xNzEsNiArMTc2LDkgQEAg
cHJpdmF0ZToKICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnM7CiAKICAgICBib29sIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsIHsgZmFsc2UgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGJvb2wgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24geyBmYWxzZSB9
OworI2VuZGlmCiAgICAgYm9vbCBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzIHsgZmFsc2UgfTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApp
bmRleCAxNTFhYzI5ZjhhLi43YWRkZmVmNGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC04Miw4ICs4MiwxMyBAQCBwdWJsaWM6CiAgICAg
Ly8gVXBkYXRlcyBGcmFtZVZpZXcvUmVuZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBHcmFw
aGljc0xheWVycy4KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwo
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
ID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgPSAwOwogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBDYWxsZWQgZm9yIHNjcm9sbCBhbmltYXRpb24gc3RhdHVz
IHVwZGF0ZXMuCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCAv
KmlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyovKSB7IH0KKyNlbmRpZgorCiAgICAgLy8gQ2Fs
bGVkIGZvciByZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMuCi0gICAgdmlydHVhbCB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25z
dCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJl
cXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgLypzY3JvbGxQ
b3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCovLCBib29sIC8q
d2l0aEFuaW1hdGlvbiovID0gZmFsc2UpIHsgfQogCiAgICAgLy8gRGVsZWdhdGVkIHNjcm9sbGlu
Zy96b29taW5nIGhhcyBjYXVzZWQgdGhlIHZpZXdwb3J0IHRvIGNoYW5nZSwgc28gdXBkYXRlIHZp
ZXdwb3J0LWNvbnN0cmFpbmVkIGxheWVycwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbWFpbkZy
YW1lVmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGxheW91dFZpZXdwb3J0
LCBkb3VibGUgc2NhbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDczZGNhMjhlZjEu
LmE0NTQ3ZmRkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTEwNyw4ICsxMDcsMTMg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVCZWZvcmVDaGls
ZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU4KIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0
YXRlTm9kZSkKIHsKICAgICBjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUmIHNjcm9s
bGluZ1N0YXRlTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4oc3Rh
dGVOb2RlKTsKLSAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkKLSAg
ICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Ny
b2xsaW5nTm9kZUlEKCksIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bigpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsKCkpOworICAgIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlOwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgd2l0aEFuaW1hdGlvbiA9IHNjcm9sbGluZ1N0
YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKTsKKyNlbmRpZgor
ICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CisgICAgICAgIHNj
cm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05v
ZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Ny
b2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCgpLCB3aXRoQW5pbWF0aW9uKTsKKyAgICB9CiAKICAgICBtX2lzRmlyc3RDb21t
aXQgPSBmYWxzZTsKIH0KQEAgLTE1NywyMSArMTYyLDQzIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU6OnNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIFNjcm9sbFBvc2l0
aW9uCiAgICAgc2Nyb2xsVG8oY3VycmVudFNjcm9sbFBvc2l0aW9uKCkgKyBkZWx0YSwgU2Nyb2xs
VHlwZTo6VXNlciwgY2xhbXApOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxU
eXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Cit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBv
aW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1w
IGNsYW1wLCBib29sIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24pCisjZWxzZQordm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24s
IFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcCBjbGFtcCwgYm9vbCAv
Km5lZWRTeW5jU2Nyb2xsUG9zaXRpb24qLykKKyNlbmRpZgogewotICAgIGlmIChwb3NpdGlvbiA9
PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikKKyAgICBpZiAocG9zaXRpb24gPT0gbV9jdXJyZW50
U2Nyb2xsUG9zaXRpb24pIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICAvLyBT
ZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAo
cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgJiYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbikKKyAgICAg
ICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcywg
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYyk7CisgICAgICAgIHNjcm9sbGluZ1Ry
ZWUoKS5zY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5n
ZShzY3JvbGxpbmdOb2RlSUQoKSwgZmFsc2UpOworICAgICAgICBzZXRSZXF1ZXN0QW5pbWF0ZWRT
Y3JvbGwoZmFsc2UpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgIC8vIElmIGR1cmluZyBhIHNjcm9sbCBhbmltYXRpb24sIG5l
ZWQgdG8gc3RvcCBpdCBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgb25lLgorICAgIGlmIChzY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKCkpCisgICAgICAgIHNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxB
bmltYXRpb24odHJ1ZSk7CisjZW5kaWYKICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0SXNIYW5kbGlu
Z1Byb2dyYW1tYXRpY1Njcm9sbChzY3JvbGxUeXBlID09IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRp
Yyk7Ci0gICAgCisKICAgICBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IGFkanVzdGVkU2Nyb2xs
UG9zaXRpb24ocG9zaXRpb24sIGNsYW1wKTsKLSAgICAKKwogICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUgIiA8PCBzY3Jv
bGxpbmdOb2RlSUQoKSA8PCAiIHNjcm9sbFRvICIgPDwgcG9zaXRpb24gPDwgIiAoZGVsdGEgZnJv
bSBsYXN0IGNvbW1pdHRlZCBwb3NpdGlvbiAiIDw8IChtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3Np
dGlvbiAtIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSA8PCAiKSIpOwogCiAgICAgdXBkYXRlVmll
d3BvcnRGb3JDdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKICAgICBjdXJyZW50U2Nyb2xsUG9zaXRp
b25DaGFuZ2VkKCk7CiAKICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0SXNIYW5kbGluZ1Byb2dyYW1t
YXRpY1Njcm9sbChmYWxzZSk7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNldE5l
ZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oZmFsc2UpOworICAgIHNldFJlcXVlc3RBbmlt
YXRlZFNjcm9sbChmYWxzZSk7CisjZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCkBAIC0xNzksNiArMjA2LDEw
IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3NpdGlv
bkNoYW5nZWQoKQogICAgIHJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKTsKICAgICByZXBvc2l0
aW9uUmVsYXRlZExheWVycygpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAo
IXJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKQorICAgICAgICByZXR1cm47CisjZW5kaWYKICAgICBz
Y3JvbGxpbmdUcmVlKCkubm90aWZ5UmVsYXRlZE5vZGVzQWZ0ZXJTY3JvbGxQb3NpdGlvbkNoYW5n
ZSgqdGhpcyk7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xs
KCp0aGlzKTsKIH0KQEAgLTI2Niw2ICsyOTcsMzcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNjcm9sbGluZ1N0YXRlVHIK
ICAgICB0cy5kdW1wUHJvcGVydHkoInNjcm9sbGFibGUgYXJlYSBwYXJhbWV0ZXJzIiwgbV9zY3Jv
bGxhYmxlQXJlYVBhcmFtZXRlcnMpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3Zv
aWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChi
b29sIGFuaW1hdGVkKQoreworICAgIG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsID0gYW5pbWF0ZWQ7
Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRlZFNj
cm9sbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsOworfQor
Cit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKGJvb2wgaW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MgPSBpblByb2dyZXNzOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpz
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxB
bmltYXRpb25JblByb2dyZXNzOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGJvb2wgc3RvcCkKK3sKKyAgICBt
X25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24gPSBzdG9wOworfQorCitib29sIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uOwor
fQorI2VuZGlmCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNGNiZjRkMWFmMC4uZjlmMzEw
ZGI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAg
ICBGbG9hdFNpemUgc2Nyb2xsRGVsdGFTaW5jZUxhc3RDb21taXQoKSBjb25zdCB7IHJldHVybiBt
X2N1cnJlbnRTY3JvbGxQb3NpdGlvbiAtIG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uOyB9
CiAKICAgICAvLyBUaGVzZSBhcmUgaW1wZXJhdGl2ZTsgdGhleSBhZGp1c3QgdGhlIHNjcm9sbGlu
ZyBsYXllcnMuCi0gICAgdm9pZCBzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsVHlw
ZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlv
bkNsYW1wOjpUb0NvbnRlbnRFZGdlcyk7CisgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBGbG9hdFBv
aW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9sbFBvc2l0aW9uQ2xhbXAg
PSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywgYm9vbCBuZWVkU3luY1Njcm9s
bFBvc2l0aW9uID0gZmFsc2UpOwogICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiwg
U2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2Vz
KTsKIAogICAgIHZvaWQgd2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9h
dFBvaW50JiBwb3NpdGlvbiwgT3B0aW9uYWw8RmxvYXRSZWN0PiBvdmVycmlkZUxheW91dFZpZXdw
b3J0ID0geyB9LCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbjo6U3luYyk7CkBAIC05MSw2ICs5MSwxNSBAQCBwdWJsaWM6CiAgICAgY29u
c3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBtX3Njcm9sbENvbnRhaW5lckxheWVyOyB9CiAgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRh
dGlvbiYgc2Nyb2xsZWRDb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxlZENv
bnRlbnRzTGF5ZXI7IH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzZXRS
ZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCk7CisgICAgYm9vbCByZXF1ZXN0QW5pbWF0ZWRTY3Jv
bGwoKSBjb25zdDsKKyAgICB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9vbCk7
CisgICAgYm9vbCBzY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkgY29uc3Q7CisgICAgdm9pZCBz
ZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGJvb2wpOworICAgIGJvb2wgbmVlZHNT
dG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0OworI2VuZGlmCisKIHByb3RlY3RlZDoK
ICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5n
Tm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKQEAgLTE0OCw2ICsxNTcsMTIgQEAgcHJpdmF0
ZToKICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnM7CiAgICAgYm9vbCBtX2lzRmlyc3RDb21taXQgeyB0cnVlIH07CiAKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIGJvb2wgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9zY3JvbGxBbmltYXRpb25JblByb2dyZXNzIHsgZmFsc2UgfTsKKyAgICBib29s
IG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbiB7IGZhbHNlIH07CisjZW5kaWYKKwog
ICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxDb250YWluZXJMYXllcjsKICAgICBMYXll
clJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IGY0NTdiMTU2MWUuLmY2ZDM1NjY1ZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtNTQsMTEgKzU0LDE5IEBAIGVudW0g
Y2xhc3MgU2Nyb2xsUG9zaXRpb25DbGFtcCA6IHVpbnQ4X3QgewogICAgIFRvQ29udGVudEVkZ2Vz
LAogfTsKIAotLy8gRklYTUU6IEFkZCBhbm90aGVyIHN0YXR1cyBJbk5hdGl2ZUFuaW1hdGlvbiB0
byBpbmRpY2F0ZSBuYXRpdmUgc2Nyb2xsaW5nIGlzIGluIHByb2dyZXNzLgotLy8gU2VlOiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKK2VudW0gY2xhc3MgU2Nyb2xs
QmVoYXZpb3JUeXBlIDogdWludDhfdCB7CisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgsCit9Owor
I2VuZGlmCisKIGVudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgOiB1aW50OF90IHsKICAg
ICBOb3RJbkFuaW1hdGlvbiwKICAgICBJbk5vbk5hdGl2ZUFuaW1hdGlvbiwKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEluTmF0aXZlQW5p
bWF0aW9uLAorI2VuZGlmCiB9OwogCiBpbmxpbmUgU2Nyb2xsRGlyZWN0aW9uIGxvZ2ljYWxUb1Bo
eXNpY2FsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGlzVmVydGljYWws
IGJvb2wgaXNGbGlwcGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRl
eCA4ZTZiMGM2NTM1Li4xZDJjMzJlYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmNwcApAQCAtNDY1LDYgKzQ2NSwxMCBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgYm9vbC8qCiB7CiAg
ICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxWaWV3OjpzZXRT
Y3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKIAorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJl
aGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpOworI2VuZGlmCisKICAgICBp
ZiAocHJvaGliaXRzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGE4YjYwMzdmYmMuLjE1MDcwNGMy
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTcx
LDYgKzcxLDkgQEAgU2Nyb2xsYWJsZUFyZWE6OlNjcm9sbGFibGVBcmVhKCkKICAgICAsIG1fc2Ny
b2xsT3JpZ2luQ2hhbmdlZChmYWxzZSkKICAgICAsIG1fY3VycmVudFNjcm9sbFR5cGUoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFNjcm9sbFR5cGU6OlVzZXIpKQogICAgICwgbV9zY3JvbGxTaG91bGRD
bGVhckxhdGNoZWRTdGF0ZShmYWxzZSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQorICAgICwgbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpKQorI2VuZGlm
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDdk
OTc5MDcxODUuLjU1NjcyZjgxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaApAQCAtMjQ2LDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsVHlwZSBjdXJy
ZW50U2Nyb2xsVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbFR5cGU+KG1f
Y3VycmVudFNjcm9sbFR5cGUpOyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsVHlwZShTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihzY3JvbGxUeXBlKTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3VycmVudFNjcm9s
bEJlaGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbEJlaGF2aW9y
VHlwZT4obV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQgc2V0Q3VycmVu
dFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVoYXZpb3JUeXBl
KSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihz
Y3JvbGxCZWhhdmlvclR5cGUpOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xsU2hvdWxkQ2xl
YXJMYXRjaGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hl
ZFN0YXRlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZShib29s
IHNob3VsZENsZWFyKSB7IG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUgPSBzaG91bGRD
bGVhcjsgfQogCkBAIC00MDksNiArNDE0LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3Nj
cm9sbE9yaWdpbkNoYW5nZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbFR5cGUg
OiAxOyAvLyBTY3JvbGxUeXBlCiAgICAgdW5zaWduZWQgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNo
ZWRTdGF0ZSA6IDE7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKKyAgICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgOiAxOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBjZWEwZDkxNmE2Li42MTNhNmFmYTM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI2MDIsMTIgKzI2MDIsMjQg
QEAgU2Nyb2xsT2Zmc2V0IFJlbmRlckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBTY3Jv
bGxPZmZzZXQmIHNjcm9sbE9mZnNldCkgY28KIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9P
ZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiBzY3JvbGxPZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZp
b3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlmIChj
dXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5O
b25OYXRpdmVBbmltYXRpb24pCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0
aW9ucygpOwogCiAgICAgU2Nyb2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcGlu
ZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9m
ZnNldCkgOiBzY3JvbGxPZmZzZXQ7Ci0gICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhp
cy0+c2Nyb2xsT2Zmc2V0KCkpCisgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+
c2Nyb2xsT2Zmc2V0KCkpIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKQorICAgICAgICAvLyBJZiBVSVNjcm9sbFZpZXcgaXMgcGVyZm9ybWluZyBh
IHNjcm9sbCBhbmltYXRpb24sIHRoZSBzY3JvbGwgb2Zmc2V0IG9mIHRoZSBXZWIgcHJvY2VzcyBt
aWdodCBiZSBvdmVycmlkZGVuLgorICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGNhbGwgcmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlIGhlcmUgYW5kIGxldCBpdCBiZSBjaGVja2VkIG9uIHRoZSBV
SSBwcm9jZXNzLgorICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIG9mZnNldCBvbiB0aGUgVUkgcHJv
Y2VzcyBpcyBkaWZmZXJlbnQsIHRoZSBjb3JyZWN0IHNjcm9sbCBvZmZzZXQgbmVlZHMgdG8gc3lu
YyBiYWNrIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhh
dmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2ZUFuaW1hdGlvbikK
KyAgICAgICAgICAgIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZy
b21PZmZzZXQoY2xhbXBlZFNjcm9sbE9mZnNldCkpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsK
KyAgICB9CiAKICAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBl
KCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CkBAIC0yNjM5LDYgKzI2
NTEsMTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNv
bnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGwKICAgICBhdXRvIHByZXZpb3VzU2Nyb2xs
VHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Ny
b2xsVHlwZSk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JU
eXBlOjpTbW9vdGgpOworICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xs
UG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKSB7CisgICAgICAgIHNldEN1cnJlbnRTY3JvbGxU
eXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYK
KwogICAgIFNjcm9sbE9mZnNldCBuZXdTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KG9mZnNldCkgOiBvZmZzZXQ7CiAg
ICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5j
ZWxBbmltYXRpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ0MzU1Y2IwMGQuLmIyOGFhNGQwY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hl
bkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3Ig
cmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUg
cGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEFkZCBDU1NPTSBzbW9vdGggc2Ny
b2xsaW5nIGFzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlLiBPbiBpb3MgcGxhdGZvcm0sIHVzZSBu
YXRpdmUgYW5pbWF0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGludGVyZmFjZXMgdG8gcGVyZm9ybWFu
Y2Ugc21vb3RoIHNjcm9sbCBhbmQgc2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIg
cHJvY2Vzcy4KKworICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU+OjplbmNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU+OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpkdW1wKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKHBvaW50c0VxdWFs
SW5Sb3VuZFRvRGV2aWNlUGl4ZWwpOiBIZWxwIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHR3byBmbG9h
dCBwb2ludHMgYXJlIG5vdCBlcXVhbCBidXQgaW4gdGhlIHNhbWUgZGV2aWNlIHBpeGVsLgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbE9y
aWdpbjphbmltYXRlZDpdKTogQWRkIGFuaW1hdGVkIGZsYWcgdG8gc3RhcnQgYSBhbmltYXRlZCBz
Y3JvbGwgaWYgbmVlZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld0RpZEVuZFNj
cm9sbGluZ0FuaW1hdGlvbjpdKTogU2VuZCBzcm9sbCBlbmQgbWVzc2FnZSB0byB0aGUgV2ViIHBy
b2Nlc3MuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRp
b246c2Nyb2xsT3JpZ2luOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5o
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlv
bik6IFByb3ZpZGUgaW50ZXJmYWNlIGZvciBhbmltYXRlZCBzY3JvbGxpbmcuCisgICAgICAgICog
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpj
b21taXRMYXllclRyZWUpOiBBZGQgYW5pbWF0ZWQgZmxhZy4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdU
cmVlTm9kZURpZFNjcm9sbCk6IFN5bmMgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHBy
b2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBBZGQgYW5pbWF0ZWQgc2Nyb2xsaW5n
IGluZm8gdG8gbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IFN5bmMgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB0
byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0RpZENoYW5nZSk6IERpdHRvLiBJdCdzIHNwZWNpZmljIHRvIHRoZSByb290IG5vZGUuCisg
ICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6
c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOiBBZGQgYW5pbWF0ZWQgaW5mby4KKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3Jv
bGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IERpdHRv
LgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJl
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tOgor
ICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld0Rp
ZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjpdKTogU2VuZCBzY29sbCBlbmQgaW5mbyB0byB0aGUgV2Vi
IHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IElmIHRoZSBzY3JvbGwgcG9zaXRp
b24gb2YgdGhlIFdlYiBwcm9jZXNzIGlzbid0IGVxdWFsIHRvIHRoZSBVSSBwcm9jZXNzLAorICAg
ICAgICB0aGUgc2Nyb2xsIHBvc2l0aW9uIHNob3VsZCBiZSBzeW5jaHJvbml6ZWQsIGV2ZW4gdGhl
cmUncyBubyBzY3JvbGxpbmcgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAo
V2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpyZXBvc2l0aW9u
U2Nyb2xsaW5nTGF5ZXJzKTogQ2FsbGluZyB0aGUgbmF0aXZlIGFuaW1hdGVkIHNjcm9sbGluZyBp
bnRlcmZhY2UgZm9yIHNtb290aCBzY3JvbGwuCisgICAgICAgIElmIHRoZXJlJ3MgYSBzY3JvbGwg
YW5pbWF0aW9uIHBlcmZvcm1pbmcsIGl0IHNob3VsZCBiZSBzdG9wcGVkIGZpcnN0LCB0aGVuIHN0
YXJ0IGEgbmV3IHNjcm9sbGluZy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbik6
IFN5bmMgc2Nyb2xsIGVuZCBpbmZvIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZXF1ZXN0U2Nyb2xsKTogVG8gY2FsbCBkaWZmZXJlbnQgZnVuY3Rpb25zIGZvciBzbW9vdGggYW5k
IGluc3RhbnQgc2Nyb2xsLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlcXVlc3RTY3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNz
Q2hhbmdlZEZvck5vZGUpOgorCiAyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5A
aWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBh
cnNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0
aW9uLmNwcAppbmRleCBkN2IxZTE5MzcyLi41NzQ0ZTFjODZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JU
cmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xNTIsNiArMTUy
LDkgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdAogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zLCBzY3JvbGxh
YmxlQXJlYVBhcmFtZXRlcnMpCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
blJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpS
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0
aW9uKQorI2VuZGlmCiAKICAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNj
cm9sbENvbnRhaW5lckxheWVyKCkpOwpAQCAtMjYwLDcgKzI2MywxNCBAQCBib29sIEFyZ3VtZW50
Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFNjcm9sbAogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICAgICAgYm9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uOworICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHNjcm9sbFdpdGhBbmltYXRpb24pKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBub2RlLnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxXaXRoQW5pbWF0
aW9uKTsKKyNlbHNlCiAgICAgICAgIG5vZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Ny
b2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAgICAg
fQogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjE4LDkgQEAgc3Rh
dGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlJiBub2RlLCBib29sIGMKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBu
b2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3Rl
ZC1zY3JvbGwtcG9zaXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwogICAg
ICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJvZ3Jh
bWF0aWMiLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbCgpKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1wUHJv
cGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBub2RlLnJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0KIAog
ICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMzM1
NGFjNmVlYy4uMTA4ZTRjMDNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xNjE3LDYgKzE2MTcsMTEgQEAgc3RhdGljIGlubGluZSBi
b29sIHBvaW50c0VxdWFsSW5EZXZpY2VQaXhlbHMoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZsb2F0
IGRldmljZVMKICAgICAgICAgJiYgZmFicyhhLnkgKiBkZXZpY2VTY2FsZUZhY3RvciAtIGIueSAq
IGRldmljZVNjYWxlRmFjdG9yKSA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9u
KCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBp
eGVsKENHUG9pbnQgYSwgQ0dQb2ludCBiLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAg
ICByZXR1cm4gQ0dSb3VuZChhLnggKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChiLngg
KiBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICAgICAgJiYgQ0dSb3VuZChhLnkgKiBkZXZpY2VTY2Fs
ZUZhY3RvcikgPT0gQ0dSb3VuZChiLnkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CiBzdGF0aWMg
Q0dTaXplIHJvdW5kU2Nyb2xsVmlld0NvbnRlbnRTaXplKGNvbnN0IFdlYktpdDo6V2ViUGFnZVBy
b3h5JiBwYWdlLCBDR1NpemUgY29udGVudFNpemUpCiB7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IgPSBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCk7CkBAIC0yMzQxLDkgKzIzNDYsMTAgQEAg
c3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3Jl
OjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKICAgICByZXR1cm4gY29udGVudE9mZnNldC5jb25zdHJh
aW5lZEJldHdlZW4oV2ViQ29yZTo6RmxvYXRQb2ludCgpLCBXZWJDb3JlOjpGbG9hdFBvaW50KG1h
eGltdW1Db250ZW50T2Zmc2V0KSk7CiB9CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9s
bFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdp
bjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luCistICh2b2lkKV9zY3JvbGxUb0NvbnRl
bnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3Jv
bGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDooQk9PTClh
bmltYXRlZAogewotICAgIGlmIChfY29tbWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uIHx8IF9k
eW5hbWljVmlld3BvcnRVcGRhdGVNb2RlICE9IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRl
TW9kZTo6Tm90UmVzaXppbmcpCisgICAgLy8gQW5pbWF0ZWQgc2Nyb2xsaW5nIHNob3VsZG4ndCBi
ZSBza2lwcGVkLgorICAgIGlmICghYW5pbWF0ZWQgJiYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xs
UG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWlj
Vmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZnNldCA9IFdlYkNvcmU6OlNjcm9sbGFibGVB
cmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHRvRmxvYXRTaXpl
KHNjcm9sbE9yaWdpbikpOwpAQCAtMjM1NywxMyArMjM2MywyMSBAQCBzdGF0aWMgV2ViQ29yZTo6
RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29u
dGVudE9mZgogCiAgICAgW19zY3JvbGxWaWV3IF9zdG9wU2Nyb2xsaW5nQW5kWm9vbWluZ0FuaW1h
dGlvbnNdOwogCi0gICAgaWYgKCFDR1BvaW50RXF1YWxUb1BvaW50KGNvbnRlbnRPZmZzZXRJblNj
cm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdKSkKLSAgICAg
ICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldEluU2Nyb2xsVmll
d0Nvb3JkaW5hdGVzXTsKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhleSBhcmUgbm90IGVx
dWFsLCBidXQgaW4gdGhlIHNhbWUgZGV2aWNlIHBpeGVsLCBzbyBfc2Nyb2xsVmlldyB3b24ndCBj
aGFuZ2UuCisgICAgLy8gV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIHJvdW5kIHRvIGRldmljZSBw
aXhlbCBoZXJlLgorICAgIGlmICghcG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbChjb250
ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFtfc2Nyb2xsVmlldyBjb250ZW50T2Zm
c2V0XSwgX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpKQorICAgICAgICBbX3Njcm9sbFZpZXcg
c2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMgYW5p
bWF0ZWQ6YW5pbWF0ZWRdOwogICAgIGVsc2UgewogICAgICAgICAvLyBJZiB3ZSBoYXZlbid0IGNo
YW5nZWQgYW55dGhpbmcsIHRoZXJlIHdvdWxkIG5vdCBiZSBhbnkgVmlzaWJsZUNvbnRlbnRSZWN0
IHVwZGF0ZSBzZW50IHRvIHRoZSBjb250ZW50LgogICAgICAgICAvLyBUaGUgV2ViUHJvY2VzcyB3
b3VsZCBrZWVwIHRoZSBpbnZhbGlkIGNvbnRlbnRPZmZzZXQgYXMgaXRzIHNjcm9sbCBwb3NpdGlv
bi4KICAgICAgICAgLy8gVG8gc3luY2hyb25pemUgdGhlIFdlYlByb2Nlc3Mgd2l0aCB3aGF0IGlz
IG9uIHNjcmVlbiwgd2Ugc2VuZCB0aGUgVmlzaWJsZUNvbnRlbnRSZWN0IGFnYWluLgogICAgICAg
ICBfcGFnZS0+cmVzZW5kTGFzdFZpc2libGVDb250ZW50UmVjdHMoKTsKKyAgICAgICAgLy8gSWYg
X3Njcm9sbFZpZXcgd29uJ3QgY2hhbmdlLCB3ZSBzdGlsbCBuZWVkIHRvIHRlbGwgdGhlIFdlYiBw
cm9jZXNzIHRoYXQgdGhlIGFuaW1hdGlvbiBzdG9wcGVkLgorICAgICAgICBpZiAoYW5pbWF0ZWQp
IHsKKyAgICAgICAgICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSog
Y29vcmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOworICAgICAg
ICAgICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9yLT5zY3Jv
bGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFs
c2UpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0yODc5LDYgKzI4OTMsMTAgQEAgc3RhdGlj
IFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9h
dFBvaW50IGNvbnRlbnRPZmYKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1h
dGlvbjooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewogICAgIFtzZWxmIF9kaWRGaW5pc2hT
Y3JvbGxpbmddOworCisgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
KiBjb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAg
aWYgKGNvb3JkaW5hdG9yKQorICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZVJvb3RO
b2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsKIH0KIAogLSAo
dm9pZClfc2Nyb2xsVmlld0RpZEludGVycnVwdERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3ICop
c2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA0MzUwODBmMzI0Li41Y2I1ZjU4MTcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaApAQCAtOTcsNyArOTcsNyBAQCBzdHJ1Y3QgUHJpbnRJbmZvOwogCiAtIChSZWZQdHI8V2Vi
S2l0OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90OwogCi0tICh2b2lkKV9zY3JvbGxU
b0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlv
biBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbjsKKy0gKHZvaWQp
X3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9s
bFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFu
aW1hdGVkOihCT09MKWFuaW1hdGVkOwogLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3JlOjpG
bG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIG1p
bmltdW1TY3JvbGxEaXN0YW5jZTooZmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNlOwogLSAoZG91
YmxlKV9pbml0aWFsU2NhbGVGYWN0b3I7CiAtIChkb3VibGUpX2NvbnRlbnRab29tU2NhbGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZTg0ODI0ZmQ4NS4uZGUzZDMzNjc5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTgxLDYgKzE4MSw4IEBA
IHB1YmxpYzoKICAgICAvLyBUZWxsIHRoZSB2aWV3IHRvIHNjcm9sbCB0byB0aGUgZ2l2ZW4gcG9z
aXRpb24sIGFuZCB3aGV0aGVyIHRoaXMgd2FzIGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4KICAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3Jv
bGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgPSAwOwog
CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
c2Nyb2xsT3JpZ2luKSB7IH0KKwogICAgIC8vIFJldHVybiB0aGUgY3VycmVudCBzY3JvbGwgcG9z
aXRpb24gKG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgV2ViQ29yZSBzY3JvbGwgcG9z
aXRpb24sIGJlY2F1c2Ugb2Ygc2NhbGluZywgaW5zZXRzIGV0Yy4pCiAgICAgdmlydHVhbCBXZWJD
b3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpID0gMDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCAzODBmMTI0NDQzLi4w
YTQyZjk0NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5tbQpAQCAtMjI0LDggKzIyNCwxNCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OmNvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFucwogCiAg
ICAgLy8gSGFuZGxlIHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gdXBkYXRlcyBmcm9tIHRoZSBz
Y3JvbGxpbmcgdHJlZSB0cmFuc2FjdGlvbiBhZnRlciBkaWRDb21taXRMYXllclRyZWUoKQogICAg
IC8vIGhhcyB1cGRhdGVkIHRoZSB2aWV3IHNpemUgYmFzZWQgb24gdGhlIGNvbnRlbnQgc2l6ZS4K
LSAgICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRl
KQotICAgICAgICBtX3dlYlBhZ2VQcm94eS5yZXF1ZXN0U2Nyb2xsKHJlcXVlc3RlZFNjcm9sbElu
Zm8ucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbE9y
aWdpbigpKTsKKyAgICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBvc2l0
aW9uVXBkYXRlKSB7CisgICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVz
dGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbgorICAgICAgICAgICAgLCBsYXll
clRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgICAgICAgICAsIHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdFdpdGhBbmltYXRpb24K
KyNlbmRpZgorICAgICAgICAgICAgKTsKKyAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKIAogICAgIGlmIChtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDQ4
MjNmNzZhOTcuLjFkNDBhNmE2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdl
YkNvcmU6OgogfQogCiAvLyBUaGlzIGNvbWVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlLgotdm9p
ZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNj
cm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5l
d1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3Bv
cnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbikKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xs
aW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25z
dCBGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2lu
dD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmlt
YXRpb24pCiB7CiAgICAgLy8gU2Nyb2xsIHVwZGF0ZXMgZm9yIHRoZSBtYWluIGZyYW1lIGFyZSBz
ZW50IHZpYSBXZWJQYWdlUHJveHk6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoKQogICAgIC8v
IHNvIGRvbid0IHNlbmQgdGhlbSBoZXJlLgpAQCAtMjIyLDIxICsyMjIsNDEgQEAgdm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChT
Y3JvbGxpbmdOb2RlSUQKICAgICBtX3dlYlBhZ2VQcm94eS5zY3JvbGxpbmdOb2RlU2Nyb2xsVmll
d0RpZFNjcm9sbCgpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlm
IChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSAmJiAhaW5z
dGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKyNlbHNlCiAgICAg
aWYgKG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpKQogICAg
ICAgICByZXR1cm47CisjZW5kaWYKIAogICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2Rl
KHNjcm9sbGVkTm9kZUlELCBuZXdTY3JvbGxQb3NpdGlvbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bkFjdGlvbiA9PSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSk7CiB9CiAKLXZv
aWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCit2
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVx
dWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBi
b29sIHdpdGhBbmltYXRpb24pCiB7CiAgICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RTY3Jv
bGxpbmdOb2RlSUQoKSAmJiBtX3JlcXVlc3RlZFNjcm9sbEluZm8pIHsKICAgICAgICAgbV9yZXF1
ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlID0gdHJ1ZTsKICAg
ICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3JvbGwg
PSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdFdpdGhBbmltYXRpb24gPSB3
aXRoQW5pbWF0aW9uOworI2VuZGlmCiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKICAgICB9CiB9CiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShX
ZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdl
ZEZvck5vZGUoc2Nyb2xsZWROb2RlSUQsIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOwor
fQorCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVS
b290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0No
YW5nZWRGb3JOb2RlKHJvb3RTY3JvbGxpbmdOb2RlSUQoKSwgaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKSk7Cit9CisjZW5kaWYKKwogU3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHk6OnNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9sbGlu
Z1RyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaApp
bmRleCAxYTc2OTQzZjI0Li44MTE1ZTQ3N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAgLTU1LDkgKzU1LDE0IEBAIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYpOwog
ICAgIHZpcnR1YWwgflJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVSb290
Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKKwogICAgIC8vIEluZm9ybSB0aGUgd2ViIHByb2Nl
c3MgdGhhdCB0aGUgc2Nyb2xsIHBvc2l0aW9uIGNoYW5nZWQgKGNhbGxlZCBmcm9tIHRoZSBzY3Jv
bGxpbmcgdHJlZSkKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9z
aXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9y
dE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7Ci0gICAgdm9p
ZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJ
RCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNj
cm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiYg
bGF5b3V0Vmlld3BvcnRPcmlnaW4sIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rp
b24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24gPSBmYWxzZSk7CisgICAgdm9p
ZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJ
RCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogCiAg
ICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnROYW1lLCBXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CiAKQEAgLTgw
LDYgKzg1LDkgQEAgcHVibGljOgogICAgIHN0cnVjdCBSZXF1ZXN0ZWRTY3JvbGxJbmZvIHsKICAg
ICAgICAgYm9vbCByZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlIHsgfTsKICAgICAgICAgYm9v
bCByZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3JvbGwgeyB9OworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgICAgIGJvb2wgcmVxdWVzdFdpdGhBbmltYXRpb24geyB9OworI2VuZGlmCiAgICAg
ICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgfTsK
ICAgICB2b2lkIGNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclRyYW5zYWN0aW9uJiwgUmVxdWVzdGVkU2Nyb2xsSW5mbyYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGFmYWJiYzFlYWUuLmU2ZWI0OGJkOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTEwNCwxMiArMTA0LDE2IEBAIHZvaWQgUmVtb3Rl
U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUmCiAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+
KG5vZGUpKQogICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbiA9IGRvd25jYXN0PFNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpLmxheW91dFZpZXdwb3J0KCkubG9jYXRpb24o
KTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRv
clByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCks
IG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3Jv
bGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBub2RlLm5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmlt
YXRpb24oKSAmJiAhbm9kZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSk7CisjZWxzZQogICAgIG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChub2Rl
LnNjcm9sbGluZ05vZGVJRCgpLCBub2RlLmN1cnJlbnRTY3JvbGxQb3NpdGlvbigpLCBsYXlvdXRW
aWV3cG9ydE9yaWdpbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CisjZW5kaWYKIH0K
IAotdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCit2b2lkIFJlbW90ZVNjcm9s
bGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIG1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJ
RCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xs
KG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIHdp
dGhBbmltYXRpb24pOwogfQogCiBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBl
LCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpAQCAtMTQzLDYgKzE0NywxMyBAQCBSZWY8U2Nyb2xs
aW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2Rl
KFNjcm9sbGluZ05vZAogICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUo
KnRoaXMsIG5vZGVJRCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1v
dGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uo
bm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIHZvaWQg
UmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Ny
b2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGlj
YWwpCiB7CiAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmN1cnJlbnRTbmFwUG9pbnRJ
bmRpY2VzRGlkQ2hhbmdlKG5vZGVJRCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdUcmVlLmgKaW5kZXggMjNiYWMwNmEzYi4uMGY5ZTA5NDk0YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1Ry
ZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1MiwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYgc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsgfQogCiAgICAgdm9p
ZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZSYsIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBXZWJDb3Jl
OjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKLSAgICB2b2lk
IHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVO
b2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSkgb3ZlcnJpZGU7CisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIGlz
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIHZvaWQg
Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
LCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLmgKaW5kZXggZTYzN2Q2MTUzMi4uMDBiNGRiY2QzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKQEAg
LTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7CiAg
ICAgdm9pZCBzY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZvaWQg
c2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPZmZz
ZXQsIGJvb2wgaW5Vc2VySW50ZXJhY3Rpb24pOworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVuZFNj
cm9sbGluZ0FuaW1hdGlvbigpOwogCiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0Rp
ZENoYW5nZSh1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7CiAg
ICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdl
dCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggZTc2ODk4Mzc1OC4uODQ4ODYzYTgxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUy5tbQpAQCAtMTUyLDYgKzE1MiwxMSBAQAogICAgIH0KIH0KIAorLSAodm9pZClzY3Jv
bGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3
Cit7CisgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRTY3Jv
bGxpbmdBbmltYXRpb24oKTsKK30KKwogI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0gKENH
UG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZz
ZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0
aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9j
YXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNh
bFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVy
Q2hpbGRyZW4oY29uc3QgU2Nyb2wKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb24pKSB7CiAgICAgICAgIGF1dG8gc2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRlTm9k
ZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSA/
IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyA6IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAgIHNj
cm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb24oKSwgc2Nyb2xsVHlwZSk7CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUu
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisgICAgICAgICAgICBzY3Jv
bGxpbmdOb2RlKCkuc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKHRydWUpOworICAgICAgICAvLyBJ
ZiB0aGUgc2Nyb2xsIHBvc2l0aW9ucyBhcmUgbm90IHRoZSBzYW1lLCB0aGVyZSdzIGEgcG9zc2li
aWxpdHkgdGhhdCB0aGUgc2Nyb2xsIG9mZnNldCBmcm9tIHRoZSBXZWIgcHJvY2VzcyBoYXMgYmVl
biBvdmVycmlkZGVuLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSBzY3JvbGwgcG9zaXRp
b24gbmVlZCB0byBiZSBzZW50IHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgYm9vbCBzaG91
bGRTeW5jU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsUG9zaXRpb24o
KSAhPSBzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAgIHNj
cm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb24oKSwgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRn
ZXMsIHNob3VsZFN5bmNTY3JvbGxQb3NpdGlvbik7CiAgICAgfQogfQogCiB2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMo
KQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFtzY3JvbGxWaWV3KCkg
c2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpXTsK
LSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgYm9vbCBhbmltYXRpb25JblByb2dy
ZXNzID0gc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKTsKKyAgICBi
b29sIG5lZWRUb1N0b3BBbmltYXRpb24gPSBzY3JvbGxpbmdOb2RlKCkubmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbigpOworICAgIGlmIChuZWVkVG9TdG9wQW5pbWF0aW9uICYmIGFuaW1h
dGlvbkluUHJvZ3Jlc3MpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisg
ICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxWaWV3KCkuY29udGVu
dE9mZnNldCBhbmltYXRlZDpOT107CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
KyAgICB9CisKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZSgpLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgp
KSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xs
VmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZz
ZXQoKSBhbmltYXRlZDpZRVNdOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisK
KyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3ModHJ1
ZSk7CisgICAgfSBlbHNlIGlmICghYW5pbWF0aW9uSW5Qcm9ncmVzcyB8fCBuZWVkVG9TdG9wQW5p
bWF0aW9uKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBb
c2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3Jv
bGxPZmZzZXQoKV07CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CiB9
CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsV2ls
bFN0YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICszNjEsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0UG9p
bnQKICAgICBzY3JvbGxpbmdOb2RlKCkud2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhz
Y3JvbGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJbnRlcmFjdGlvbiA/IFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb246OlN5bmMgOiBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwog
fQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZp
ZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKQoreworICAgIGF1dG8mIG5vZGUgPSBzY3JvbGxp
bmdOb2RlKCk7CisgICAgaWYgKCEobm9kZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBub2Rl
LnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgp
LnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5v
ZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2Uo
dW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAgaWYg
KG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggZGIyY2UwNzljYS4uZDA5ZjYwN2FjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzY3LDkgKzE3NjcsMTIgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAgICAg
cGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQm
IHNjcm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIHBhZ2VDbGll
bnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGlm
ICh3aXRoQW5pbWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbFdpdGhB
bmltYXRpb24oc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgZWxzZQorICAgICAg
ICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2lu
KTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQb3Np
dGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFl
Mzg1MjIyMWQuLmFmMDdlYTQ5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC02MTMsNyArNjEzLDcgQEAgcHVibGljOgogICAgIFBhZ2VDbGllbnQmIHBhZ2VDbGll
bnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3Jl
OjpSZWdpb24mKTsKLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmln
aW4pOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgYm9v
bCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQg
dmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggZDZjOGMzOGQ0YS4uNTE5OGVmNDQyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
QEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0Fy
ZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2lu
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdT
Y3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUo
KSBvdmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4
IGRjOWY3NGM0OWEuLjJjMzBjNGJjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTk1LDcgKzk1LDEyIEBAIHZvaWQgUGFnZUNs
aWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQYWdl
Q2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9zY3Jv
bGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Ny
b2xsT3JpZ2luXTsKKyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlv
bjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5PXTsK
K30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29u
c3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmln
aW4pCit7CisgICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Ny
b2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwogfQog
CiBXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aAppbmRleCA4ZTY0OTM1NTQ1Li4zZDM0NWQ3NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
Ym9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNl
c0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpv
bnRhbCwgdW5zaWduZWQgdmVydGljYWwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICB2b2lkIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRp
ZgorCiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmlu
ZGV4IDJjMDk4YTEwOTcuLjUzN2ZkMzRkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1
LDYgKzI1LDkgQEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAg
ICBTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6
RmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAg
Q3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIHVu
c2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1aW50
NjRfdCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQppbmRleCA4MzU0NDFkMzE5
Li42ODlkNTU2MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDQsNiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoU2Ny
b2xsaW5nCiAgICAgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMobm9kZUlELCBob3Jpem9udGFs
LCB2ZXJ0aWNhbCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JO
b2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKQoreworICAgIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9kZUlE
LCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385402</attachid>
            <date>2019-12-11 09:25:36 -0800</date>
            <delta_ts>2019-12-13 04:32:57 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_32.diff</filename>
            <type>text/plain</type>
            <size>302301</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjg4NDBmM2NmLi43NTQzNzBiOGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2lu
ZyBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQu
IEluIG9yZGVyIHRvIHRlc3QgcHJvcGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9y
IHRlc3QgdG8gZmFzdC9zY3JvbGxpbmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2
ZVNjcm9sbGluZyk6CisgICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9s
bE5vZGUpOgorICAgICAgICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0
bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKKzIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0
aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlc2UgdGVzdHMgb24gV0sxIGFzIHRoZXkgZG9u
J3Qgd29yayBmb3Igbm93LgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBh
cnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBC
YXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTEyLTEwICBQZW5nIExpdSAgPHBl
bmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3JlYXRlIGEgVGVzdEV4cGVjdGF0aW9ucyBm
aWxlIGZvciB0aGUgR1BVIHByb2Nlc3MgcmVsYXRlZCB3b3JrCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBhMDk2OGUwMjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Nj
cm9sbC1iZWhhdmlvci5qcwpAQCAtMCwwICsxLDg3IEBACitmdW5jdGlvbiBvYnNlcnZlU2Nyb2xs
aW5nKGVsZW1lbnRzLCBjYWxsYmFjaykgeworICBpZiAoIUFycmF5LmlzQXJyYXkoZWxlbWVudHMp
KQorICAgICAgZWxlbWVudHMgPSBbZWxlbWVudHNdOworICB2YXIgbGFzdENoYW5nZWRGcmFtZSA9
IDA7CisgIHZhciBsYXN0TGVmdCA9IG5ldyBNYXAoKTsKKyAgdmFyIGxhc3RUb3AgPSBuZXcgTWFw
KCk7CisgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAgICBsYXN0TGVmdC5zZXQo
ZWxlbWVudCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICBsYXN0VG9wLnNldChlbGVtZW50LCBl
bGVtZW50LnNjcm9sbFRvcCk7CisgIH0pOworICBmdW5jdGlvbiB0aWNrKGZyYW1lcykgeworICAg
IC8vIFdlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIDUwMCBmcmFtZXMgb3IgdW50
aWwgMjAgZnJhbWVzIHdpdGgKKyAgICAvLyBubyBjaGFuZ2UgaGF2ZSBiZWVuIG9ic2VydmVkLgor
ICAgIGlmIChmcmFtZXMgPj0gNTAwIHx8IGZyYW1lcyAtIGxhc3RDaGFuZ2VkRnJhbWUgPiAyMCkg
eworICAgICAgY2FsbGJhY2sodHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIHZhciBzY3JvbGxI
YXBwZW5lZCA9IGVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IHsKKyAgICAgICAgcmV0dXJuIGVs
ZW1lbnQuc2Nyb2xsTGVmdCAhPSBsYXN0TGVmdC5nZXQoZWxlbWVudCkgfHwgZWxlbWVudC5zY3Jv
bGxUb3AgIT0gbGFzdFRvcC5nZXQoZWxlbWVudCk7CisgICAgICB9KTsKKyAgICAgIGlmIChzY3Jv
bGxIYXBwZW5lZCkgeworICAgICAgICBsYXN0Q2hhbmdlZEZyYW1lID0gZnJhbWVzOworICAgICAg
ICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7CisgICAgICAgICAgbGFzdExlZnQuc2V0
KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsTGVmdCk7CisgICAgICAgICAgbGFzdFRvcC5zZXQoZWxl
bWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOworICAgICAgICB9KTsKKyAgICAgICAgY2FsbGJhY2so
ZmFsc2UpOworICAgICAgfQorICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2suYmluZChu
dWxsLCBmcmFtZXMgKyAxKSk7CisgICAgfQorICB9CisgIHRpY2soMCk7Cit9CisKK2Z1bmN0aW9u
IHdhaXRGb3JTY3JvbGxFbmQoZWxlbWVudHMpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7CisgICAgb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgKGRvbmUpID0+IHsKKyAg
ICAgIGlmIChkb25lKQorICAgICAgICByZXNvbHZlKCk7CisgICAgfSk7CisgIH0pOworfQorCitm
dW5jdGlvbiByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KSB7CisgIC8vIFRyeSB2YXJpb3Vz
IG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0
ZWx5LgorICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsKHtsZWZ0OiAwLCB0
b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGxG
b3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KSB7CisgIC8vIFRyeSB2YXJpb3VzIG1ldGhvZHMgdG8g
ZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0ZWx5LgorICBzY3Jv
bGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAg
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsK
KyAgc2Nyb2xsaW5nV2luZG93LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImlu
c3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
IGNsYXNzTmFtZSkgeworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImF1dG9CZWhh
dmlvciIsICJzbW9vdGhCZWhhdmlvciIpOworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5hZGQo
Y2xhc3NOYW1lKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBz
Y3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5i
ZWhhdmlvciA9IGJlaGF2aW9yOworICBzd2l0Y2ggKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgY2Fz
ZSAic2Nyb2xsSW50b1ZpZXciOgorICAgICAgYXJncy5pbmxpbmUgPSAic3RhcnQiOworICAgICAg
YXJncy5ibG9jayA9ICJzdGFydCI7CisgICAgICBlbGVtZW50VG9SZXZlYWwuc2Nyb2xsSW50b1Zp
ZXcoYXJncyk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgYXJncy5sZWZ0ID0g
ZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgICAgIGFyZ3MudG9wID0gZWxlbWVudFRvUmV2ZWFsVG9w
OworICAgICAgc2Nyb2xsaW5nRWxlbWVudFtzY3JvbGxGdW5jdGlvbl0oYXJncyk7CisgICAgICBi
cmVhazsKKyAgfQorfQorCitmdW5jdGlvbiBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5i
ZWhhdmlvciA9IGJlaGF2aW9yOworICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0Owor
ICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgc2Nyb2xsaW5nV2luZG93W3Njcm9s
bEZ1bmN0aW9uXShhcmdzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOGQ0Y2E2NDE1
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQ
QVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1i
ZWhhdmlvciAKK1BBU1MgU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVs
dCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zNWM2NTAzYWIyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0t
PgorPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxl
PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdp
ZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0i
bG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+
CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5k
OiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwv
c3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJh
Y2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZl
YWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICB2YXIgc2Ny
b2xsRnVuY3Rpb24gPSAic2Nyb2xsIjsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICB9LCAiSW5zdGFudCBzY3Jv
bGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7CisKKyAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgIH0pOworICB9LCAiU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVs
dCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTNhOTYx
ZWY1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1l
bnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24g
YW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbiBpbnN0YW50
IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi5kMzhkZmZkZWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKQEAgLTAs
MCArMSwxNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6
QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcg
c2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJl
aGF2aW9yIG9uIGFuIGVsZW1lbnQ8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9y
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgewor
ICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4
OworICB9CisgIC5hdXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAg
fQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9
Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2Rl
IiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdo
dDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVu
KTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4K
KzwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7
CisgIHZhciBzdHlsZWRFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVudFRvUmV2
ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKworICBbInNj
cm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2go
KHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHki
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9
LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9
KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVz
b2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
YCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlv
biwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAg
IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgIH0sIGBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3JgKTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNl
dFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGgg
c2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOwor
ICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9v
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uOTdjYWVhMjdiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgUGFnZSBsb2FkZWQgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGlu
ZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi5kMzI1YjRiOWUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRt
bApAQCAtMCwwICsxLDE2OSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBp
bnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+
VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBz
Y3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcv
I3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVoYXZpb3Igewor
ICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAg
IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4K
KzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJw
b3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4K
KyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOworICB2YXIgc2Ny
b2xsaW5nRWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBhZ2VMb2Fk
ZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9
ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZl
YWxMZWZ0ID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZl
YWxUb3AgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZl
YWwuc3R5bGUubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRU
b1JldmVhbC5zdHlsZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRk
X2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsgfSk7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJ
bnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAg
ICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5j
dGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAg
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3Rh
bnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShz
Y3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVt
ZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGgg
YW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM4MjM4NWFhYjQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisKK1BBU1MgUGFnZSBsb2FkZWQg
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjkwNTdiMGNkMTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1h
aW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVs
ZW1lbnQuc2Nyb2xsKiBvbiB0aGUgd2luZG93IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2Nh
bGU9MSI+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBtYXJnaW46
IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOwor
ICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
IH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdlQ29udGVu
dCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+CisgIDxkaXYg
aWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTog
aW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFj
azsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFzeW5jX3Rl
c3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdXaW5kb3csIHN0eWxlZEVsZW1lbnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKCkg
eworICAgIHNjcm9sbGluZ1dpbmRvdyA9IHdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEw
ICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJweCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUu
aGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1l
bnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1l
bnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA0OworICAgIGVsZW1l
bnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAg
ZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisK
KyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlc2V0U2Nyb2xsRm9yV2luZG93
KHdpbmRvdyk7IH0pOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5m
b3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyBy
ZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5j
dGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJh
dXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFks
IDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlv
biwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3Jv
bGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5j
dGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNj
cm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3Ai
KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhz
Y3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxG
dW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAg
ICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1
bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93
KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3Jv
bGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIs
IGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
MiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFu
b3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xs
aW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Ny
b2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9
LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1l
IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9s
bGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDQzYTgyMGU1OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBz
Y3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQ1YjVkOGQ3
YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsODggQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3Igd2l0aCBzY3JvbGxJbnRvVmlldyBmb3IgbmVzdGVkIHNjcm9sbGluZyBub2Rl
czwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGln
YWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJv
eCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87
CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9s
bC1iZWhhdmlvcjogc21vb3RoOworICB9CisgIC5ncmFkaWVudCB7CisgICAgYmFja2dyb3VuZDog
bGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7CisgIH0KKzwvc3R5bGU+Cis8ZGl2
IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2PgorICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIHNtb290
aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQ1MHB4Ij4KKyAgICA8ZGl2IGNsYXNzPSJncmFkaWVu
dCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogNDAwcHgiPgor
ICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDog
NTAwcHg7Ij48L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0
aDogMzUwcHgiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAx
MDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlIiBzdHlsZT0id2lkdGg6IDMwMHB4Ij4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVu
dCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAg
IDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogMjUw
cHgiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9s
bGFibGUiIHN0eWxlPSJ3aWR0aDogMjAwcHgiPgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJn
cmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAg
ICAgICAgICAgICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJ3aWR0aDogMTBweDsg
aGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsi
PjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
ICAgIDwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPGRp
diBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48
L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3
aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+
Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIFRoZSBDU1NPTS1WaWV3IHNwZWMgYW5kIGltcGxlbWVu
dGF0aW9ucyBmb2xsb3cgZGlmZmVyZW50IGFsZ29yaXRobXMgKHNjcm9sbHMgcGVyZm9ybWVkIGlu
IHBhcmFsbGVsLCBhcyBpbm5lci10by1vdXRlciBzZXF1ZW5jZSBvciBhcyBvdXRlci10by1pbm5l
ciBzZXF1ZW5jZSkuCisgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0
cy9pc3N1ZXMvMzEyNworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciBkaXZzID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLnNjcm9sbGFibGUiKTsKKyAgICAgIGRpdnMuZm9yRWFjaCgo
c2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxhYmxlRGl2KTsK
KyAgICAgIH0pOworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbEludG9WaWV3KHtpbmxpbmU6
ICJzdGFydCIsIGJsb2NrOiAic3RhcnQiLCBiZWhhdmlvcjogImF1dG8ifSk7CisgICAgICB2YXIg
c2Nyb2xsVG9wID0gbmV3IE1hcCgpOworICAgICAgdmFyIGlzU21vb3RoID0gbmV3IE1hcCgpOwor
ICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAgIHNjcm9sbFRv
cC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAgICBp
c1Ntb290aC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5jbGFzc0xpc3QuY29udGFp
bnMoInNtb290aEJlaGF2aW9yIikpOworICAgICAgICAvLyBJZiBzY3JvbGwgb3BlcmF0aW9ucyBh
cmUgbm90IHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgc2Nyb2xsIGJveGVzIHdpdGggaW5zdGFudCBi
ZWhhdmlvciBtaWdodCBhbHNvIG5lZWQgdG8gd2FpdCBmb3IgdGhlaXIgcHJlZGVjZXNzb3JzLgor
ICAgICAgICBpZiAoaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2KSwgNTAwLCAiRWxlbWVudCB3
aXRoIHNtb290aCBiZWhhdmlvciBzaG91bGQgbm90IHNjcm9sbCBpbW1lZGlhdGVseSIpOworICAg
ICAgfSk7CisKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcoQXJyYXkuZnJvbShkaXZzKSwgZnVuY3Rp
b24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgIGRpdnMuZm9yRWFjaCgoc2Nyb2xs
YWJsZURpdikgPT4geworICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChzY3JvbGxU
b3AuZ2V0KHNjcm9sbGFibGVEaXYpLCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgIlNjcm9sbFRv
cCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICBpZiAoIWlzU21vb3RoLmdldChzY3Jv
bGxhYmxlRGl2KSkKKyAgICAgICAgICAgICAgYXNzZXJ0X2FueShhc3NlcnRfZXF1YWxzLCBzY3Jv
bGxhYmxlRGl2LnNjcm9sbFRvcCwgWzAsIDUwMF0sICJFbGVtZW50IHdpdGggaW5zdGFudCBiZWhh
dmlvciBzaG91bGQganVtcCB0byB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIGlm
IChkb25lKQorICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGFibGVEaXYuc2Nyb2xs
VG9wLCA1MDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgICAgIHNjcm9s
bFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAg
ICAgIH0pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7
CisgICAgfSk7CisgIH0sICJzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRo
IGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMC4uODU1YTZhNjEwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9u
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5n
IHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3Jv
bGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgx
MDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9z
aXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1
MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBw
ZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1
c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcg
c21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xs
VG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5n
IHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1Zp
ZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygp
ICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJv
cnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uMGE0MWI4YjA4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5o
dG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUg
IGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRs
ZT5UZXN0aW5nIHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRo
IHNtb290aCBiZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAg
b3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7Cisg
ICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ci
PgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAg
PGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxp
bmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRp
c3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFu
PjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dy
b3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICAvLyBG
b3Igc21vb3RoIGJlaGF2aW9yLCBldm9sdXRpb24gb2Ygc2Nyb2xsIHBvc2l0aW9ucyBvdmVyIHRp
bWUgaXMgbm90IHNwZWNpZmllZCBieSBDU1NPTSBWaWV3LgorICAvLyBUaGlzIHRlc3QgcmVsaWVz
IG9uIHRoZSBtaW5pbWFsIGFzc3VtcHRpb24gdGhhdCBzY3JvbGwgcG9zaXRpb24gZnVuY3Rpb25z
IGFyZSBtb25vdG9uaWMuCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNj
cm9sbEludG9WaWV3Il0uZm9yRWFjaChmdW5jdGlvbihzY3JvbGxGdW5jdGlvbikgeworICAgIFt7
bGVmdDowLCB0b3A6MH0sIHtsZWZ0OjEwMDAsIHRvcDowfSwge2xlZnQ6MCwgdG9wOjUwMH0sIHts
ZWZ0OjEwMDAsIHRvcDo1MDB9XS5mb3JFYWNoKChpbml0aWFsKSA9PiB7CisgICAgICB2YXIgZmlu
YWxMZWZ0ID0gNTAwOworICAgICAgdmFyIGZpbmFsVG9wID0gMjUwOworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwg
Imluc3RhbnQiLCBpbml0aWFsLmxlZnQsIGluaXRpYWwudG9wKTsKKyAgICAgICAgICB2YXIgb2xk
TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBvbGRUb3AgPSBv
dmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwg
aW5pdGlhbC5sZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCBpbml0aWFsLnRvcCwgIlNjcm9sbFRv
cCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIpOworICAgICAgICAgIGlmIChzY3JvbGxG
dW5jdGlvbiA9PT0gInNjcm9sbEJ5IikKKyAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCAtIGluaXRpYWwubGVmdCwg
ZmluYWxUb3AgLSBpbml0aWFsLnRvcCk7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Ny
b2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZmluYWxMZWZ0
LCBmaW5hbFRvcCk7CisgICAgICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1
bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHZhciBuZXdM
ZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgIHZhciBuZXdUb3Ag
PSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFu
X2VxdWFsKE1hdGguaHlwb3QoZmluYWxMZWZ0IC0gbmV3TGVmdCwgZmluYWxUb3AgLSBuZXdUb3Ap
LCBNYXRoLmh5cG90KGZpbmFsTGVmdCAtIG9sZExlZnQsIGZpbmFsVG9wIC0gb2xkVG9wKSwgIlNj
cm9sbCBwb3NpdGlvbiBzaG91bGQgbW92ZSB0b3dhcmRzIHRoZSBmaW5hbCBwb3NpdGlvbiIpOwor
ICAgICAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
bmV3TGVmdCwgZmluYWxMZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRp
b24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgZmluYWxUb3AsICJT
Y3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgICAgIG9sZFRvcCA9
IG5ld1RvcDsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICByZWplY3Qo
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKCR7aW5pdGlh
bC5sZWZ0fSwgJHtpbml0aWFsLnRvcH0pIHRvICgke2ZpbmFsTGVmdH0sICR7ZmluYWxUb3B9KSB1
c2luZyAke3Njcm9sbEZ1bmN0aW9ufSgpIGApOworICAgIH0pOworICB9KTsKKworICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5p
dGlhbFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBzY3JvbGxEaXJlY3Rpb25DaGFu
Z2VkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0
OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICBhc3Nl
cnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3RoIiwgMTUwMCwg
NzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25l
KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUu
c2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRv
cDsKKyAgICAgICAgICBpZiAoaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsKKyAgICAgICAgICAgIGlm
IChzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkKSB7CisgICAgICAgICAgICAgIGFzc2VydF9ncmVhdGVy
X3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgZGVjcmVhc2lu
ZyIpOworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9sZFRvcCwgbmV3
VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICBzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkID0gbmV3TGVmdCA8PSBvbGRMZWZ0
ICYmIG5ld1RvcCA8PSBvbGRUb3A7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVw
cyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xk
VG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAg
ICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7CisgICAgICAgICAgICAgICAg
Ly8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAgICAgIGluaXRpYWxTY3Jv
bGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9k
ZSwgInNjcm9sbCIsICJzbW9vdGgiLCA1MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVm
dCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAg
ICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAw
LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9sZExlZnQgPSBuZXdMZWZ0Owor
ICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAg
ICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChkb25lKQorICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Nyb2xsIHBvc2l0aW9ucyB3aGVu
IGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGlu
ZyIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRTY3JvbGwob3ZlcmZsb3dOb2Rl
KTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZhbHNlOworICAgICAgdmFyIG9s
ZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZhciBvbGRUb3AgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAwKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAgICBvYnNlcnZlU2Nyb2xs
aW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAg
ICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgdmFy
IG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgaWYgKCFpbml0aWFs
U2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9s
ZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBr
ZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAmJiBu
ZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBzY3Jv
bGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAgICAg
ICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCA1
MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxM
ZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNo
b3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQg
c3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdU
b3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgc3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAg
ICAgICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3Ag
PSBuZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9
KTsKKyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290
aCBzY3JvbGxpbmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1
YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yNzk5ZmRjYzI5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1y
b290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgaWZyYW1lIGxvYWRlZCAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRp
bmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uOTZkMTFhYjk2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEs
MTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5j
T3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGlu
Z0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZp
b3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9m
IGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIv
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0
bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Nj
cm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJl
aGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9
ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZ
UEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2luOiAwOworICAg
IH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAg
ICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3Ro
OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIw
MDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcs
IHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2Nr
OyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRU
b1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0x
NXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bh
bj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+
CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2FkZWQiKTsKKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAg
dmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3Ag
PSAyNTA7CisgIGlmcmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRU
ZXN0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gaWZyYW1l
Tm9kZS5jb250ZW50RG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICBzdHlsZWRFbGVtZW50
ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1l
bnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
bGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5
IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24s
IG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyBy
ZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAi
aW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1
YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFu
dCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhh
dmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4g
eworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAg
IH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3
aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwLi4wNWViMzI3MmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjkgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFu
IG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIg
c21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLjMzMzNkNjRmODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCkBA
IC0wLDAgKzEsMTcxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVy
bmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFt
ZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9y
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxp
ZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9j
PSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2lu
OiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjog
YXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlv
cjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0n
d2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVu
dCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5s
aW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9
J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwt
YWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFj
azsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4K
KzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2Fk
ZWQiKTsKKyAgdmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2
ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1Jl
dmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZy
YW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgIHNjcm9sbGluZ1dpbmRvdyA9
IGlmcmFtZU5vZGUuY29udGVudFdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9k
ZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9
IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZl
YWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgo
c2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgp
OyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdX
aW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0Jl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsK
KyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIp
OworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Nj
cm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAg
ICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAg
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsK
KyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdX
aW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAp
OworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
ICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5n
V2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24s
ICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50
VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBv
bmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNt
b290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNl
dFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRv
dywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJp
bnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFu
IGluc3RhbnQgc2Nyb2xsaW5nIik7CisKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCA0N2ZkNWUxYTU0Li4zNmY1M2I2MGEzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENo
ZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNj
cm9sbCBiZWhhdmlvciByZWxpZXMgb24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBXZWIgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQg
b24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBFbmFibGUgQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCBvbiBzY3JvbGwgYmVoYXZpb3IgdGVzdHMgYW5kIHVw
ZGF0ZSBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRl
ZmF1bHQtY3NzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDoK
KworMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNo
IGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6CisKIDIwMTktMTItMTAgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1zeW5jIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2luLW9i
amVjdHMvY3Jvc3Mtb3JpZ2luLW9iamVjdHMuaHRtbCBmcm9tIHVzcHRyZWFtCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0
CmluZGV4IDNhYzBhMzdjZmYuLjg3NWE3MjdjOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NCBAQAogCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBoYXMgaW5pdGlhbCB2YWx1ZSBh
dXRvIGFzc2VydF90cnVlOiBzY3JvbGwtYmVoYXZpb3IgZG9lc24ndCBzZWVtIHRvIGJlIHN1cHBv
cnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9yIGRvZXMgbm90IGluaGVyaXQgYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBoYXMg
aW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgZG9lcyBu
b3QgaW5oZXJpdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0
CmluZGV4IDkwNjhiNzk3NTUuLjhkNGNhNjQxNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKIFBBU1MgSW5zdGFudCBzY3Jv
bGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAotRkFJTCBT
bW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU21vb3Ro
IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCmluZGV4IDY5MjVjZjA5MmMuLmZlNDc1YjAzOWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQ
RSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+
VGVzdGluZyBkZWZhdWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dAppbmRleCAyYjkxMjljMWNmLi41M2E5NjFlZjU2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMiwzNSArMiwzNSBA
QAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1G
QUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAor
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJ
TCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
NTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNt
b290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQuaHRtbAppbmRleCAzY2JkNzIyZjcyLi42YzE1OTI5YzlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50
PC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVk
LnR4dAppbmRleCBkOTIyMjU4YWYyLi45N2NhZWEyN2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTMsMzUgKzMsMzUgQEAgUEFTUyBQ
YWdlIGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
NDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190
aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVt
YmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBn
b3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFz
c2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3Qg
MjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQ
QVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1
dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAog
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJh
bWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCmluZGV4IGZjZjc1
YWExZGQuLjZkOWIyMjQyZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9y
IGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiB0
aGUgbWFpbiBmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25n
Ii8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFp
bHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGM2YmU5NjY2MWMuLjM4MjM4NWFhYjQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAg
LTMsMjcgKzMsMjcgQEAgUEFTUyBQYWdlIGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBi
dXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0
MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1
dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3cuaHRtbAppbmRleCA4Yzg4ZWM2ODYxLi5iZjM4NzMwNDI2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUg
aHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVu
dGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRl
c3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBvbiB0aGUg
d2luZG93IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2NhbGU9MSI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dAppbmRleCA3
Y2UxMGMwODk2Li40NDNhODIwZTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3Jv
bGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNj
cm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
c2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xs
LWJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IEVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
c2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50
cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKaW5kZXggM2E4OTA2NTMyYi4uM2YzZDliNzJkMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3Igd2l0aCBz
Y3JvbGxJbnRvVmlldyBmb3IgbmVzdGVkIHNjcm9sbGluZyBub2RlczwvdGl0bGU+CiA8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwt
YmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCmluZGV4IDAwNWQyYjYwNGQuLmVhYTBmZmYw
MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBd
IC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBl
bGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQi
IGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBX
YW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CmluZGV4IGI2ZmExYzJlYzguLjI3OTlmZGNjMjkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0z
LDM1ICszLDM1IEBAIFBBU1MgaWZyYW1lIGxvYWRlZAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBT
dWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlM
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAor
UEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3Ro
YW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
Ci1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBn
b3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3Vi
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3Vi
ZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmcgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAppbmRleCBlNjQxZTUzZTMz
Li5lOGNjYjY2YmU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVt
ZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1l
PC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dAppbmRleCBjYzY2NWViZGI4Li4wNWViMzI3MmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTMsMjcgKzMsMjcgQEAgUEFTUyBp
ZnJhbWUgbG9hZGVkCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJ
TCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xl
c3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3Ro
IHNjcm9sbGluZyAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9u
IHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKaW5kZXggZDkzMWUwMDNkNC4uOTI2ODRkNjc0ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURP
Q1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRp
dGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBh
bmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgogPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0NDk2
Y2YyZGNiLi4wNDFmMzZlYmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC03NDgsNiArNzQ4LDE1IEBAIHdlYmtpdC5vcmcvYi8xODk1OTQg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvcGVuZGlu
Zy1zCiAKIHdlYmtpdC5vcmcvYi8xODgwNzAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zdHJlYW1zL3BpcGluZy9lcnJvci1wcm9wYWdhdGlvbi1iYWNrd2FyZC5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KIAorIyBUZXN0cyBmb3Igc21vb3RoIHNjcm9sbCBiZWhhdmlvciBkbyBub3QgYWxs
IHdvcmsgYW5kIHRoZXkgYXJlIHNsb3csIHNvIGxldCdzIGp1c3Qgc2tpcCB0aGVtLgord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMTkxMzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBbIFNraXAgXQorCisjIFRo
aXMgaXMgZmFpbGluZyBvbiBtYWMtd2sxLCB0cnkgdG8gZmlndXJlIGl0IG91dCBpbiB0aGUgZm9s
bG93LXVwIGJ1Zy4KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS5odG1sIFsgU2tpcCBdCisKIHdlYmtp
dC5vcmcvYi8xODk5MDggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10
aW1pbmcvcmVzb3VyY2VfdGltaW5nLndvcmtlci5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5v
cmcvYi8xODk3NTYgWyBNb2phdmUrIF0gY29tcG9zaXRpbmcvZmlsdGVycy9vcGFjaXR5LWNoYW5n
ZS1vbi1maWx0ZXJlZC1wYWludHMtaW50by1hbmNlc3Rvci5odG1sIFsgUGFzcyBJbWFnZU9ubHlG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTIyMDY4NzMxYy4uMGU4MTRiYmMwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTk2NCw4ICs5NjQsMTAgQEAgc2V0KFdlYkNvcmVfTk9O
X1NWR19JRExfRklMRVMKICAgICBwYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsCiAgICAg
cGFnZS9SZXNpemVPYnNlcnZlckVudHJ5LmlkbAogICAgIHBhZ2UvU2NyZWVuLmlkbAorICAgIHBh
Z2UvU2Nyb2xsQmVoYXZpb3IuaWRsCiAgICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRs
CiAgICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsCisgICAgcGFnZS9TY3JvbGxPcHRp
b25zLmlkbAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAogICAgIHBhZ2UvU2hhcmVEYXRh
LmlkbAogICAgIHBhZ2UvVW5kb0l0ZW0uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmExNmI0NDBhZC4uYTQ4
MTFmYzgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0MCBAQAorMjAxOS0xMi0xMSAgQ2F0aGll
IENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBp
T1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBzdXBwb3J0IG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybS4g
SXQgcmVsaWVzIG9uIFVJU2Nyb2xsVmlldydzCisgICAgICAgIG5hdGl2ZSBzY3JvbGwgYW5pbWF0
aW9uIHN1cHBvcnQgYW5kIGlzIGV4ZWN1dGVkIGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAg
IFRlc3RzOiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxl
bWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbAorCisgICAg
ICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBSZXF1ZXN0cyBhIG5hdGl2ZSBzY3JvbGwgYW5p
bWF0aW9uIGJ5IGNhbGxpbmcgYW5pbWF0ZWQgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKCku
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUpOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIGlmIHRoaXMgaXMgYW4g
YW5pbWF0ZWQgc2Nyb2xsIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOiBVcGRhdGUgdGhlIHNj
cm9sbCBhbmltYXRpb24gc3RhdHVzIGZyb20gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZSk6IEFkZCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbiB0byBpbmRp
Y2F0ZSBpdCdzIGFuaW1hdGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpyZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gY29uc3QpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0RpZENoYW5nZSk6IFVwZGF0ZSB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9s
bCBvciBub3QuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgdGhlIHNj
cm9sbCBpcyBhbmltYXRlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8pOiBJZiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uIGlzIHRy
dWUsIHNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MsIGV2ZW4gaWYg
dGhlIHNjcm9sbCBwb3NpdGlvbiBkb2Vzbid0IGNoYW5nZS4KKyAgICAgICAgTWFpbnRhaW4gdGhl
IHN0YXR1cyBvZiBtX3N0b3BTY3JvbGxBbmltYXRpb24gYW5kIG1fcmVxdWVzdEFuaW1hdGVkU2Ny
b2xsLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJl
bnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQpOiBBbmltYXRlZCBzY3JvbGwgd29uJ3QgY2hhbmdlIHRo
ZSBzY3JvbGwgcG9zaXRpb24gaW1tZWRpYXRlbHksIHNvIGRvbid0IG5vdGlmeSB0aGUgc2Nyb2xs
aW5nIGluZm8gbm93LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OnNldFJlcXVlc3RBbmltYXRlZFNjcm9sbCk6IG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsIGlu
ZGljYXRlcyB0aGF0IHRoaXMgaXMgYW4gYW5pbWF0ZWQgc2Nyb2xsIHJlcXVlc3QuCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Ny
b2xsIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk6IE1haW50YWluIHRoZSBzY3Jv
bGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzIGNvbnN0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbik6IElmIHRoZSBOb2RlIGlzIHBlcmZvcm1pbmcgYSBzY3JvbGwg
YW5pbWF0aW9uLCB0aGUgcHJldmlvdXMgc2Nyb2xsIGFuaW1hdGlvbiBzaG91bGQgc3RvcCBmaXJz
dC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpuZWVkc1N0
b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxUeXBlcy5oOiBBZGQgU2Nyb2xsQmVoYXZpb3JUeXBlIHRvIGluZGljYXRlIGl0J3Mg
aW5zdGFudCBvciBzbW9vdGggc2Nyb2xsLgorICAgICAgICBBZGQgU2Nyb2xsQmVoYXZpb3JTdGF0
dXMgdG8gaW5kaWNhdGUgdGhlIHN0YXR1cyBvZiBzY3JvbGxpbmcuCisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbik6IFVwZGF0ZSBTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OlNjcm9sbGFibGVBcmVhKTogQWRkIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgY29uc3QpOiBNYWludGFpbiBjdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OnNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZz
ZXQpOiBTZW5kIGEgcXVlc3Qgb2YgbmF0aXZlIHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBSZXF1ZXN0cyBhIG5hdGl2
ZSBzY3JvbGwgYW5pbWF0aW9uIGJ5IGNhbGxpbmcgYW5pbWF0ZWQgcmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKCkuCisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVz
IG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgcHJvZ3JhbW1h
dGljIHNtb290aCBzY3JvbGxpbmcgaW4gV2ViS2l0IGZyb20gdGhlIENTU09NIFZpZXcKKyAgICAg
ICAgc3BlY2lmaWNhdGlvbiBbMV0uIFRvIHVzZSB0aGlzIGVmZmVjdCwgd2ViIGRldmVsb3BlcnMg
Y2FuIHBhc3MgYSBiZWhhdmlvciBwYXJhbWV0ZXIgKGF1dG8sCisgICAgICAgIHNtb290aCwgb3Ig
aW5zdGFudCkgdG8gRWxlbWVudC5zY3JvbGwsIEVsZW1lbnQuc2Nyb2xsVG8sIEVsZW1lbnQuc2Ny
b2xsQnksCisgICAgICAgIEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcsIFdpbmRvdy5zY3JvbGwsIFdp
bmRvdy5zY3JvbGxUbyBvciBXaW5kb3cuc2Nyb2xsQnkgWzJdLiBXaGVuIGJlaGF2aW9yCisgICAg
ICAgIGlzIGF1dG8sIHRoZSBpbnN0YW50L3Ntb290aCBjaGFyYWN0ZXJpc3RpYyBpcyBhY3R1YWxs
eSB0YWtlbiBmcm9tIHRoZSB2YWx1ZSBvZiBhIG5ldyBDU1MKKyAgICAgICAgc2Nyb2xsLWJlaGF2
aW9yIHByb3BlcnR5IFszXS4gQm90aCB0aGUgbmV3IENTUyBhbmQgRE9NIGJlaGF2aW9yIGFyZSBw
cm90ZWN0ZWQgYnkgYSBydW50aW1lCisgICAgICAgIGZsYWcuCisKKyAgICAgICAgWzFdIGh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3CisgICAgICAgIFsyXSBodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jZGljdGRlZi1zY3JvbGxvcHRpb25zCisgICAgICAgIFsz
XSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVo
YXZpb3IKKworICAgICAgICBUZXN0czogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbAorICAgICAgICAg
ICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXJvb3QuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbAor
ICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKKyAgICAgICAg
ICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c3ViZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cu
aHRtbAorICAgICAgICAqIFNvdXJjZXMudHh0OiBCdWlsZCBTY3JvbGxBbmltYXRpb25TbW9vdGgu
Y3BwIG9uIGFsbCBwbGF0Zm9ybXMuCisgICAgICAgICogU291cmNlc0dUSy50eHQ6IFJlbW92ZSBT
Y3JvbGxBbmltYXRpb25TbW9vdGguY3BwIHNpbmNlIGl0IGlzIGJ1aWx0IG9uIGFsbCBwbGF0Zm9y
bXMgbm93LgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbEludG9WaWV3KTogUGFzcyBzY3JvbGwgYmVoYXZpb3IsIGlmIGFueS4KKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbFRvKTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlz
IHNtb290aC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNjcm9sbExlZnQpOiBIYW5k
bGUgdGhlIGNhc2Ugd2hlbiBzY3JvbGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6c2V0U2Nyb2xsVG9wKTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xs
IGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9sbEJ5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2Nyb2xsVG8gY29uc3QpOiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiBzY3Jv
bGwgYmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICBUaGUgb3B0aW1pemF0aW9uIG9mIGNhbmNl
bCAoMCwgMCkgc2Nyb2xsaW5nIGlzIHNraXBwZWQgaWYgYW4gYW5pbWF0ZWQgc2Nyb2xsIGlzIGlu
IHByb2dyZXNzLgorICAgICAgICBPdGhlcndpc2UsIHRoZSBwcmV2aW91cyBzY3JvbGwgd29uJ3Qg
YmUgc3RvcHBlZCBieSBhIGZvbGxvdy11cCBzY3JvbGwuCisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bik6IFN0YXJ0IGFuIGFuaW1hdGVkIHNjcm9sbC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbjo6c2Nyb2xsKTogRnVuY3Rpb24g
dG8gYW5pbWF0ZSBzY3JvbGxpbmcgdG8gYSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICAgICog
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcDogQnVpbGQgdGhpcyBmaWxlIG9uIGFs
bCBwbGF0Zm9ybXMuIEFkZCBhCisgICAgICAgIHNtb290aEZhY3RvckZvclByb2dyYW1tYXRpY1Nj
cm9sbCBwYXJhbWV0ZXIgdG8gc2xvdyBkb3duIHRoZSBzbW9vdGggc2Nyb2xsaW5nLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVQZXJBeGlzRGF0YSk6IFNjYWxlIHRo
ZSB0aW1lIHBhcmFtZXRlcnMgb2YgdGhlCisgICAgICAgIGFuaW1hdGlvbiBzbyB0aGF0IGl0IGxv
b2tzIHNtb290aGVyLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5o
OiBEZWNsYXJlIHRoZSBjbGFzcyBvbiBhbGwgcGxhdGZvcm1zLgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpT
Y3JvbGxBbmltYXRvcik6IEluaXRpYWxpemUgYW5pbWF0aW9uIG1lbWJlciBmb3IgcHJvZ3JhbW1h
dGljIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxU
b09mZnNldCk6IEFuaW1hdGUgc2Nyb2xsaW5nIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucyk6IENvcHkg
bG9naWMgZnJvbSBTY3JvbGxBbmltYXRpb25TbW9vdGguY3BwLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VTY3JvbGxBbmltYXRpb25zKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFkZEhvcml6b250
YWxTY3JvbGxiYXIpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
OiBOZXcgYW5pbWF0aW9uIG1lbWJlciBmb3Igc21vb3RoIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OmNhbmNl
bEFuaW1hdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6
OlNjcm9sbEFuaW1hdG9yOjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OndpbGxFbmRMaXZl
UmVzaXplKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3Jv
bGxBbmltYXRvcjo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFs
U2Nyb2xsYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oOiBB
ZGQgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgdG8gaW5kaWNhdGUgdGhlIHN0YXR1cyBvZiBzY3JvbGxp
bmcuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6IEZvbGxvdyB0aGUgQ1NTT00gVmlldyBz
cGVjOiBJZiBhIHNjcm9sbCBpcyBpbgorICAgICAgICBwcm9ncmVzcywgd2UgaW50ZXJydXB0IGl0
IGFuZCBjb250aW51ZSB0aGUgc2Nyb2xsIGNhbGwgKGV2ZW4gd2hlbiB3ZSBhcmUgYXQgdGhlIGZp
bmFsIHBvc2l0aW9uKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFscyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUFuaW1hdGlvbik6
IFRvIGF2b2lkIGl0ZXJhdGUgY2FsbGluZywKKyAgICAgICAgbW92ZSB0aGUgcmVxdWVzdFNjcm9s
bFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uKSBjaGVja2luZyBvdXQgb2Ygc2V0U2Nyb2xsT2Zmc2V0
RnJvbUFuaW1hdGlvbigpLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6Y3VycmVudFNjcm9sbEJlaGF2aW9yU3Rh
dHVzIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvckdlbmVyaWM6OnVwZGF0ZVBvc2l0aW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2VsQW5pbWF0aW9ucyk6IENhbGwgcGFyZW50IG1l
bWJlciB0byBoYW5kbGUgcHJvZ3JhbW1hdGljIHNjcm9sbGluZy4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xs
TGVmdCk6IEFkZCBmbGFnIHRvIGluZGljYXRlIGFuaW1hdGVkIG9yIG5vdC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xsVG9wKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb1hQb3NpdGlvbik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQpOiBGb2xsb3cgdGhlIENTU09NIFZp
ZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGludGVycnVw
dCBpdCBhbmQgY29udGludWUgdGhlIHNjcm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJlIGF0IHRo
ZSBmaW5hbAorICAgICAgICBwb3NpdGlvbikuIEl0J3MgU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0
YW50IHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZXF1ZXN0U2Nyb2xs
UG9zaXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
T2Zmc2V0V2l0aEFuaW1hdGlvbik6IERpdHRvLiBUaGlzIGlzIHNpbWlsYXIgdG8gc2Nyb2xsVG9P
ZmZzZXQKKyAgICAgICAgYnV0IGFuaW1hdGVzIHRoZSBzY3JvbGwuIEl0J3MgU2Nyb2xsQmVoYXZp
b3JUeXBlOjpTbW9vdGggc2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNj
cm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNp
YmxlKTogQWdhaW4gZG9uJ3QgZG8gYW4gZWFybHkgcmV0dXJuIGlmIHNjcm9sbCBpcyBpbgorICAg
ICAgICBwcm9ncmVzcy4gV2UgY2FsbCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24gaW5zdGVh
ZCBvZiBzY3JvbGxUb09mZnNldCB3aGVuIGFwcHJvcHJpYXRlLgorICAgICAgICBOb3RlIHRoYXQg
dGhpcyBmdW5jdGlvbiBtYXkgbm90IHdvcmsgd2VsbCBmb3Igc2V2ZXJhbCBuZXN0ZWQgc2Nyb2xs
IGJveGVzIHdpdGggYXQgbGVhc3Qgb25lCisgICAgICAgIGVsZW1lbnQgd2l0aCBzbW9vdGggYmVo
YXZpb3IuIEl0IHdpbGwgaGFuZGxlZCBpbiBidWcgRm9sbG93LgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5oOiBBZGQgc2Nyb2xsIGJlaGF2aW9yIHRvIFNjcm9sbFRlY3RUb1Zpc2li
bGVPcHRpb25zLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldFNjcm9sbExlZnQpOiBBZGQgYW5pbWF0ZWQg
ZmxhZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldFNjcm9sbFRvcCk6IERp
dHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbExlZnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3ApOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVu
Y29uc3RyYWluZWRTY3JvbGxUbyk6CisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGll
Y2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZp
b3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAg
ICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHBhcnNpbmcgc2Nyb2xsLWJlaGF2aW9yIGNzcyBwcm9wZXJ0eSBhbmQgU2Ny
b2xsT3B0aW9ucy4KKworICAgICAgICBUZXN0czogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIElETCBmaWxlcyBmb3IgU2Nyb2xsT3B0aW9ucyBhbmQg
U2Nyb2xsQmVoYXZpb3IuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOiBBZGQgaGVhZGVycyBmb3IgU2Nyb2xsQmVoYXZvciBhbmQgU2Nyb2xs
T3B0aW9ucy4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkIFNjcm9sbEJlaGF2b3IgYW5kIFNj
cm9sbE9wdGlvbnMgaW1wbGVtZW50YXRpb24uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBBZGQgZmlsZXMgdG8gdGhlIGJ1aWxkIHN5c3RlbS4KKyAgICAgICAg
KiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDogSGFuZGxlIHNjcm9sbC1iZWhh
dmlvci4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9y
UHJvcGVydHlJblN0eWxlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydGllcy5qc29uOiBBZGQg
c2Nyb2xsLWJlaGF2aW9yLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOiBBZGQg
a2V5d29yZHMgZm9yIHNjcm9sbC1iZWhhdmlvci4KKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Bh
cnNlckNvbnRleHQuY3BwOiBBZGQgcnVudGltZSBjb25maWcgZm9yIHNjcm9sbC1iZWhhdmlvci4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0Lmg6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyQ29udGV4
dEhhc2g6Omhhc2gpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNw
cDogUmVtb3ZlIHNjcm9sbC1iZWhhdmlvciB0ZW1wbGF0ZXMuIEl0IGlzIGhhbmRsZWQgaW4gdGhl
IHNsb3cgcGF0aCBzaW5jZSBwcm9wZXJ0eSBjYW4gYmUgZGlzYWJsZWQuCisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5
SUQpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3VtZVNjcm9sbEJlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKTogUGFyc2Ugc2Nyb2xsLWJlaGF2aW9y
IChvbmx5IGlmIGVuYWJsZWQpLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnVzZVNtb290aFNjcm9sbGluZyk6IEhlbHBlciBmdW5j
aXRvbiB0byBkZXRlcm1pbmUgdGhlIHNjcm9sbCBiZWhhdmlvciB0byBhcHBseSB0byBhbiBlbGVt
ZW50IGZyb20gdGhlIENTUyBhbmQgRE9NIGJlaGF2aW9yLgorICAgICAgICAqIHBhZ2UvU2Nyb2xs
QmVoYXZpb3IuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxCZWhhdmlvci5pZGw6IEFk
ZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmg6IE1ha2UgdGhpcyBj
bGFzcyBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbi4gQWxzbyByZW1vdmUgdW5uZWNlc3Nhcnkg
Zm9yd2FyZCBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEludG9WaWV3T3B0aW9u
cy5pZGw6IE1ha2UgdGhpcyBjbGFzcyBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbi4KKyAgICAg
ICAgKiBwYWdlL1Njcm9sbE9wdGlvbnMuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxP
cHRpb25zLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxUb09wdGlvbnMuaDogTWFr
ZSB0aGlzIHN0cnVjdCBpbmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbnMuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxUb09wdGlvbnM6OlNjcm9sbFRvT3B0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
Ojpub3JtYWxpemVOb25GaW5pdGVDb29yZGluYXRlc09yRmFsbEJhY2tUbyk6IENvcHkgdGhlIGN1
cnJlbnQgU2Nyb2xsVG9PcHRpb25zIHNvIHRoYXQgdGhlIHNjcm9sbCBiZWhhdmlvciBpcyBwcmVz
ZXJ2ZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xh
c3MgaW5oZXJpdCBmcm9tIFNjcm9sbE9wdGlvbnMuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55
YW1sOiBOZXcgc2V0dGluZyBmb3IgQ1NTT00gVmlldyBzbW9vdGggc2Nyb2xsaW5nLgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOiBIYW5kbGUgJ3Ntb290aCBzY3JvbGxp
bmcnIGJvb2xlYW4gZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjp1c2VTbW9v
dGhTY3JvbGxpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFVz
ZVNtb290aFNjcm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5pdGlh
bFVzZVNtb290aFNjcm9sbGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAq
IHN0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTbW9vdGhTY3JvbGxpbmcpOgorCiAyMDE5LTEyLTEw
ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXhlZCBQ
YXR0ZXJuLmggY29tcGlsZSBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
MGJmYWJlY2E0My4uZTk3MTRjODVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC05MTUsOCArOTE1LDEwIEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3Bh
Z2UvUmVzaXplT2JzZXJ2ZXJDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9SZXNp
emVPYnNlcnZlckVudHJ5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1NjcmVlbi5pZGwgXAor
ICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxCZWhhdmlvci5pZGwgXAogICAgICQoV2ViQ29yZSkv
cGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbE9wdGlv
bnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9wYWdlL1NoYXJlRGF0YS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9VbmRv
SXRlbS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZWU4OWVlM2YwYy4uMmYxNzcyNjBmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCkBAIC04MTYsOCArODE2LDEwIEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1JlbW90ZUZyYW1lLmgKICAgICBwYWdlL1Jl
bmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCiAgICAgcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgKKyAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmgKICAgICBwYWdlL1Njcm9sbEludG9WaWV3T3B0
aW9ucy5oCiAgICAgcGFnZS9TY3JvbGxMb2dpY2FsUG9zaXRpb24uaAorICAgIHBhZ2UvU2Nyb2xs
T3B0aW9ucy5oCiAgICAgcGFnZS9TY3JvbGxUb09wdGlvbnMuaAogICAgIHBhZ2UvU2VjdXJpdHlP
cmlnaW4uaAogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
YmNhNzNjZjllNy4uM2U2ODA0NGYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE2NDcsNiArMTY0Nyw3
IEBAIHBhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwCiBwYWdlL1Jlc291cmNlVXNhZ2VUaHJl
YWQuY3BwCiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCiBwYWdlL1NjcmVlbi5jcHAK
K3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAogcGFnZS9T
ZWN1cml0eU9yaWdpbkRhdGEuY3BwCiBwYWdlL1NlY3VyaXR5UG9saWN5LmNwcApAQCAtMTc1Miw2
ICsxNzUzLDcgQEAgcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAogcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAogcGxhdGZvcm0vU1NMS2V5R2VuZXJhdG9yLmNw
cAogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCitwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguY3BwCiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAogcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwCiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC0zMzc2LDggKzMzNzgsMTAgQEAgSlNT
Vkdab29tQW5kUGFuLmNwcAogSlNTVkdab29tRXZlbnQuY3BwCiBKU1NjcmVlbi5jcHAKIEpTU2Ny
aXB0UHJvY2Vzc29yTm9kZS5jcHAKK0pTU2Nyb2xsQmVoYXZpb3IuY3BwCiBKU1Njcm9sbEludG9W
aWV3T3B0aW9ucy5jcHAKIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcAorSlNTY3JvbGxPcHRp
b25zLmNwcAogSlNTY3JvbGxUb09wdGlvbnMuY3BwCiBKU1NlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQuY3BwCiBKU1NlcnZpY2VXb3JrZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CmluZGV4IGMy
YzI3MDliODcuLjU0YjUzNmVkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNH
VEsudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CkBAIC02Myw3ICs2Myw2
IEBAIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuY3BwCiBw
YWdlL3Njcm9sbGluZy9nZW5lcmljL1Njcm9sbGluZ1RocmVhZEdlbmVyaWMuY3BwCiAKIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuY3BwCi1wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguY3BwCiBwbGF0Zm9ybS9Vc2VyQWdlbnRRdWlya3MuY3BwCiAKIHBsYXRmb3JtL2dlbmVy
aWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAzZTZmNTQzM2IuLmJjOTk3MDZlODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTIzOTcsNiArMjM5Nyw4IEBACiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAvKiBW
aXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFFOEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5n
ZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNUVCMCAvKiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDEx
REE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IH07CiAJCTgz
NDQ3NkVGMURBNUJDNUUwMDJCNUVDMSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1QTUx
RTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi87IH07CisJCTgzNDQ3NkVG
MURBNUJDNUUwMDJCNkVCMCAvKiBKU1Njcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyog
SlNTY3JvbGxCZWhhdmlvci5oICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQzEgLyog
SlNTY3JvbGxPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmggKi87
IH07CiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1
QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi87IH07CiAJCTgzNDhCRkFDMUI4
NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDhCRkFBMUI4NTcyOTUwMDkxMkYzNiAvKiBDbGFz
c0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODM0REZBRDAxRjdEQUU1RDAwQzI3MjVCIC8qIFNoYXJl
ZFN0cmluZ0hhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNERGQUNDMUY3REFFNTYwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI0NTEsNiArMjQ1
Myw4IEBACiAJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9uQnViYmxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0M0NUI4RDFE
QzJCNjdDMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzQzU3OTVEMURBNUMzMDEwMDZGOUM4NiAv
KiBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dpY2Fs
UG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFE
QTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZB
Qzg2IC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4M0M1
Nzk1RDFEQTVDMzAxMDA2RkFDOTcgLyogU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDQTggLyogU2Nyb2xsVG9PcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFE
QTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNEMzVBRUMxQzcxODdGQTAwRjcwRDVBIC8q
IFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUVBMUM3MTg3RUQwMEY3MEQ1QSAvKiBYTUxIdHRwUmVx
dWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDM1QUYyMUM3MThEOTAwMEY3MEQ1QSAvKiBK
U1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBKU1hNTEh0dHBS
ZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKQEAgLTEwMTY3LDkgKzEwMTcxLDE0IEBACiAJCTgz
NERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFN0cmluZ0hhc2guY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xs
TG9naWNhbFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bExvZ2ljYWxQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNF
NzFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVo
YXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQmVoYXZpb3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM0
IC8qIFNjcm9sbEJlaGF2aW9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2Nyb2xsQmVoYXZpb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNF
NzFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsVG9PcHRpb25zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dp
Y2FsUG9zaXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbExvZ2ljYWxQb3Np
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIw
MDM1NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNjcm9sbEludG9WaWV3T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU2Nyb2xsQmVoYXZpb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2Nyb2xsT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlv
bnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbFRvT3B0aW9ucy5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTIwQzdEMUE3MUJGQ0MwMDZCRDJBQSAvKiBDU1NG
b250RmFtaWx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZvbnRGYW1p
bHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1NjU3QzYxRUNBQjBFODAwQ0RF
NzJEIC8qIEpTRE9NTWF0cml4SW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0RPTU1hdHJpeEluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTAyOTEsOSArMTAzMDAsMTMgQEAKIAkJODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5h
dGl2ZU5vZGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZl
Tm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMDFEQTVB
NTFFMDBGRkQ4RDQgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkQ4RTUgLyogSlNT
Y3JvbGxJbnRvVmlld09wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1Njcm9sbE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
M0U5QjMwMDFEQTVBNTFFMDBGRkU4RjYgLyogSlNTY3JvbGxUb09wdGlvbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxUb09wdGlvbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkQ4RDQgLyogSlNT
Y3JvbGxMb2dpY2FsUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODNFOUIzMDExREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThENCAv
KiBKU1Njcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
U2Nyb2xsQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDEx
REE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1Njcm9sbE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsVG9PcHRpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1OThCMUY1MDk1OEIwMDNFOEIzMCAvKiBKU0Vy
cm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFcnJvckNh
bGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1OThDMUY1MDk1OEIw
MDNFOEIzMCAvKiBKU0Vycm9yQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNFcnJvckNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIwNzY4LDEwICsyMDc4MSwxNSBAQAogCQkJCUJDRUMwMUJBMEMyNzREQUMwMDlGNEVD
OSAvKiBTY3JlZW4uY3BwICovLAogCQkJCUJDRUMwMUJCMEMyNzREQUMwMDlGNEVDOSAvKiBTY3Jl
ZW4uaCAqLywKIAkJCQlCQ0VDMDFCQzBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmlkbCAqLywK
KwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MzQgLyogU2Nyb2xsQmVoYXZpb3IuY3BwICovLAor
CQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5oICovLAorCQkJ
CTgzNTBDM0U4MURBNTlCNjIwMDM1NjQyNCAvKiBTY3JvbGxCZWhhdmlvci5pZGwgKi8sCiAJCQkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3T3B0aW9ucy5oICovLAog
CQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRs
ICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NTQyNCAvKiBTY3JvbGxMb2dpY2FsUG9zaXRp
b24uaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBv
c2l0aW9uLmlkbCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0
aW9ucy5oICovLAorCQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25z
LmlkbCAqLywKIAkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25z
LmggKi8sCiAJCQkJODM1MEMzRTgxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5p
ZGwgKi8sCiAJCQkJQkNEMEUwRjcwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmNw
cCAqLywKQEAgLTI1NTYzLDEwICsyNTU4MSwxNCBAQAogCQkJCTU4QjJGQTAyMjIzMkQ2MEEwMDkz
OEQ2MyAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnkuaCAqLywKIAkJCQlCQ0VDMDFDMDBDMjc0RERE
MDA5RjRFQzkgLyogSlNTY3JlZW4uY3BwICovLAogCQkJCUJDRUMwMUMxMEMyNzREREQwMDlGNEVD
OSAvKiBKU1NjcmVlbi5oICovLAorCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThENCAvKiBKU1Nj
cm9sbEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyogSlNT
Y3JvbGxCZWhhdmlvci5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Nj
cm9sbEludG9WaWV3T3B0aW9ucy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEU1
IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggKi8sCiAJCQkJODNFOUIzMDAxREE1QTUxRTAw
RkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcCAqLywKIAkJCQk4M0U5QjMwMTFE
QTVBNTFFMDBGRkQ4RDQgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCAqLywKKwkJCQk4M0U5
QjMwMDFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmNwcCAqLywKKwkJCQk4M0U5
QjMwMTFEQTVBNTFFMDBGRkU4RTUgLyogSlNTY3JvbGxPcHRpb25zLmggKi8sCiAJCQkJODNFOUIz
MDAxREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmNwcCAqLywKIAkJCQk4M0U5
QjMwMTFEQTVBNTFFMDBGRkU4RjYgLyogSlNTY3JvbGxUb09wdGlvbnMuaCAqLywKIAkJCQk3Qzcz
RkIwRjE5MUVGNkY0MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXIuY3BwICovLApAQCAt
MzA5MTIsOCArMzA5MzQsMTAgQEAKIAkJCQk1RTJDNDM2QzFCQ0YwNzFFMDAwMUUyQkMgLyogSlNS
VENUcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFDMzBDMjc0REREMDA5RjRF
QzkgLyogSlNTY3JlZW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUNFMTJCMDNGNjEwMDNB
NTgzQSAvKiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzNDQ3
NkVGMURBNUJDNUUwMDJCNkVCMCAvKiBKU1Njcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQzEgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNUVCMCAvKiBKU1Njcm9s
bExvZ2ljYWxQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJODM0NDc2RUYxREE1QkM1RTAw
MkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUQyIC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRUQwNkFEMTFDNzc3NTQ4MDBGREZBRjEgLyogSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTgyQzI1NjFGMzE0M0NEMDA1OUJBN0MgLyogSlNT
ZXJ2aWNlV29ya2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTE3LDYgKzMyMTQxLDcgQEAKIAkJ
CQk0NEM5OTE4NjBGM0QxRUJFMDA1ODY2NzAgLyogU2Nyb2xsYmFyVGhlbWVJT1MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDOEI4NTNFMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3JvbGxiYXJUaGVtZU1h
Yy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNzE0MDYxNDIxNzBCODAwREIzM0JBIC8qIFNjcm9s
bGJhclRoZW1lTW9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZB
Qzg2IC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE4NEYwNTE0M0JB
N0JEMDA1MUQxNTMgLyogU2Nyb2xsQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2
MDVBRUQxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUY2MkVFODE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzIxNTMsNiArMzIxNzgsNyBAQAogCQkJCTgzQzU3OTVE
MURBNUMzMDEwMDZGOUM5NyAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdBQUZFOEQwMTlDQjg2NzIwMDBGNTZEOCAvKiBTY3JvbGxMYXRjaGluZ1N0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFD
OTcgLyogU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ3ODc1NTQxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNDY3MjkyODFFMERFNjg1MDBBQ0MzRDggLyogU2Nyb2xsU25hcE9mZnNldHNJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDQTggLyogU2Nyb2xsVG9PcHRp
b25zLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMWM0ZTM2ZjE0OS4uZDRhYmYyM2I3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKQEAgLTMzOTMsNiArMzM5MywxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVF
eHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAg
ICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlQXV0byk7CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZVRvdWNoKTsKICNlbmRpZgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
U2Nyb2xsQmVoYXZpb3I6CisgICAgICAgICAgICBpZiAoIXN0eWxlLnVzZVNtb290aFNjcm9sbGlu
ZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmll
clZhbHVlKENTU1ZhbHVlQXV0byk7CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVNtb290aCk7CiAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlQZXJzcGVjdGl2ZToKICAgICAgICAgICAgIGlmICghc3R5bGUuaGFzUGVyc3BlY3RpdmUo
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZU5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KaW5k
ZXggNDE1NzhhOTRlZC4uZjk4MmQzZjVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGll
cy5qc29uCkBAIC0zNTU3LDYgKzM1NTcsMTYgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0
dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcvc2hhcGVzLmh0bWwiCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0sCisgICAgICAgICJzY3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAgICAidmFsdWVz
IjogWworICAgICAgICAgICAgICAgICJhdXRvIiwKKyAgICAgICAgICAgICAgICAic21vb3RoIgor
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAg
ICAgICAgICJjYXRlZ29yeSI6ICJjc3NvbS12aWV3IiwKKyAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInNoYXBlLXJlbmRlcmlu
ZyI6IHsKICAgICAgICAgICAgICJpbmhlcml0ZWQiOiB0cnVlLAogICAgICAgICAgICAgInZhbHVl
cyI6IFsKQEAgLTY0ODksNiArNjQ5OSwyMiBAQAogICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0
cHM6Ly93d3cudzMub3JnL1RSL2Nzcy11aS00LyNwcm9wZGVmLXVzZXItc2VsZWN0IgogICAgICAg
ICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Nyb2xsLWJlaGF2aW9yIjogeworICAgICAg
ICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiYXV0byIsCisgICAgICAgICAgICAg
ICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0
aWVzIjogeworICAgICAgICAgICAgICAgICJjb252ZXJ0ZXIiOiAiU21vb3RoU2Nyb2xsaW5nIiwK
KyAgICAgICAgICAgICAgICAibmFtZS1mb3ItbWV0aG9kcyI6ICJVc2VTbW9vdGhTY3JvbGxpbmci
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAgICAgICAgICAgICAg
ICAic3RhdHVzIjogImV4cGVyaW1lbnRhbCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAi
c3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInNjcm9sbC1wYWRkaW5nIjogewogICAgICAgICAg
ICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAiZW5hYmxlLWlmIjog
IkVOQUJMRV9DU1NfU0NST0xMX1NOQVAiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgppbmRleCA4ZGZlM2FiYjIxLi5kYTgyNjllNjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTM4OCw2ICsxMzg4LDEwIEBAIHBhbi15CiBwaW5jaC16b29t
CiAjZW5kaWYKIAorLy8gc2Nyb2xsLWJlaGF2aW9yCisvLyBhdXRvCitzbW9vdGgKKwogLy8gaGFu
Z2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKaW5kZXggNzUzNzE4OGNiOS4uNzFmOWFhNjJj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3Bw
CkBAIC03NSw2ICs3NSw3IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoY29u
c3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAgICAgYXR0YWNobWVu
dEVuYWJsZWQgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmF0dGFj
aG1lbnRFbGVtZW50RW5hYmxlZCgpOwogI2VuZGlmCiAgICAgZGVmZXJyZWRDU1NQYXJzZXJFbmFi
bGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQoKTsKKyAg
ICBzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLkNTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWQoKTsKICAgICB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gZG9jdW1l
bnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxz
ZTsKIH0KIApAQCAtOTksNiArMTAwLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuYXR0
YWNobWVudEVuYWJsZWQgPT0gYi5hdHRhY2htZW50RW5hYmxlZAogI2VuZGlmCiAgICAgICAgICYm
IGEuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVk
CisgICAgICAgICYmIGEuc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIuc2Nyb2xsQmVoYXZpb3JF
bmFibGVkCiAgICAgICAgICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0Rv
Y3VtZW50U2VjdXJpdHlPcmlnaW4KICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09
IGIudXNlU3lzdGVtQXBwZWFyYW5jZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJDb250ZXh0LmgKaW5kZXggODY1MjVmZDcwYy4uYzc0ZGM5NGMyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTY1LDYgKzY1LDcg
QEAgcHVibGljOgogICAgIGJvb2wgYXR0YWNobWVudEVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlm
CiAgICAgYm9vbCBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wg
c2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAgICAvLyBUaGlzIGlzIG9u
bHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgogICAgIGJvb2wgaGFzRG9j
dW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMTYsNyArMTE3LDggQEAgc3RydWN0
IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
ICAgICAgICAgICAgJiBrZXkuYXR0YWNobWVudEVuYWJsZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgPDwgMTEKICNlbmRpZgotICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPDwgMTI7IC8vIEtlZXAgdGhpcyBsYXN0LgorICAgICAgICAg
ICAgJiBrZXkuc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICAgICAgPDwgMTIK
KyAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDw8IDEzOyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAgICAgaGFzaCBePSBXVEY6OmludEhh
c2goYml0cyk7CiAgICAgICAgIHJldHVybiBoYXNoOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRleCAzMWQxMmFiOWFiLi40
MjEyODg5ZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckZhc3RQYXRocy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJG
YXN0UGF0aHMuY3BwCkBAIC02MzYsMTAgKzYzNiw2IEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBhdGhz
Ojppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlk
CiAgICAgICAgICAgICB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3RpY2t5IHx8IHZhbHVlSUQgPT0g
Q1NTVmFsdWVXZWJraXRTdGlja3k7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJlc2l6ZTogLy8gbm9u
ZSB8IGJvdGggfCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBhdXRvCiAgICAgICAgIHJldHVybiB2
YWx1ZUlEID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQm90aCB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlSG9yaXpvbnRhbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVmVydGljYWwg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG87Ci0gICAgLy8gRklYTUUtTkVXUEFSU0VSOiBJbnZl
c3RpZ2F0ZSB0aGlzIHByb3BlcnR5LgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhh
dmlvcjogLy8gYXV0byB8IHNtb290aAotICAgIC8vICAgICBBU1NFUlQoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6Y3Nzb21TbW9vdGhTY3JvbGxFbmFibGVkKCkpOwotICAgIC8vICAgcmV0dXJuIHZh
bHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTbW9vdGg7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVNoYXBlUmVuZGVyaW5nOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9
PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU9wdGltaXplU3BlZWQgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZUNyaXNwZWRnZXMgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUdlb21ldHJp
Y1ByZWNpc2lvbjsKICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlTGluZWpvaW46CkBAIC05Mzks
NyArOTM1LDYgQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5SUQo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlGb250S2Vy
bmluZzoKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5SHlwaGVuczoKICAgICAvLyBjYXNlIENTU1By
b3BlcnR5T3ZlcmZsb3dBbmNob3I6Ci0gICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2
aW9yOgogICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxTbmFwVHlwZToKICAgICAvLyBjYXNl
IENTU1Byb3BlcnR5VGV4dEFsaWduTGFzdDoKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5VGV4dENv
bWJpbmVVcHJpZ2h0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcAppbmRleCBlYmQwZWFmNWY2Li42M2Y1YWI1MmY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjMyNyw2ICsyMzI3
LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBjb25zdW1lU2Nyb2xsU25hcFR5cGUo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAKICNlbmRpZgogCitzdGF0aWMgUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0gcmFuZ2UucGVlaygpLmlkKCk7CisgICAg
aWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVTbW9vdGgp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2Up
OworfQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVyUmFkaXVzQ29ybmVy
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUp
CiB7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEgPSBjb25zdW1l
TGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRp
dmUpOwpAQCAtMzkyNyw2ICszOTM1LDEwIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQ
YXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVNjcm9sbFNuYXBUeXBlOgogICAgICAgICByZXR1cm4gY29uc3VtZVNj
cm9sbFNuYXBUeXBlKG1fcmFuZ2UpOwogI2VuZGlmCisgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9s
bEJlaGF2aW9yOgorICAgICAgICBpZiAoIW1fY29udGV4dC5zY3JvbGxCZWhhdmlvckVuYWJsZWQp
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3Jv
bGxCZWhhdmlvcihtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDoKICAgICAgICAg
cmV0dXJuIGNvbnN1bWVDbGlwKG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKICNpZiBFTkFCTEUo
UE9JTlRFUl9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNzBkOWUxYjBhZS4uYmU1
YTg1MjZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODMyLDcgKzgzMiw2IEBAIHZvaWQg
RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoT3B0aW9uYWw8VmFyaWFudDxib29sLCBTY3JvbGxJbnRv
Vmlld09wdGlvbnM+PiYmIGFyCiAgICAgYm9vbCBpbnNpZGVGaXhlZDsKICAgICBMYXlvdXRSZWN0
IGFic29sdXRlQm91bmRzID0gcmVuZGVyZXIoKS0+YWJzb2x1dGVBbmNob3JSZWN0KCZpbnNpZGVG
aXhlZCk7CiAKLSAgICAvLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQzKTogU3VwcG9ydCBTY3Jv
bGxCZWhhdmlvci4KICAgICBTY3JvbGxJbnRvVmlld09wdGlvbnMgb3B0aW9uczsKICAgICBpZiAo
YXJnKSB7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBhcmcudmFsdWUoKTsKQEAgLTg1MSw3ICs4NTAs
OCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwg
U2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgogICAgICAgICBTZWxlY3Rpb25SZXZlYWxNb2Rl
OjpSZXZlYWwsCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFsaWduWCA6IGFsaWduWSwKICAgICAg
ICAgaXNIb3Jpem9udGFsID8gYWxpZ25ZIDogYWxpZ25YLAotICAgICAgICBTaG91bGRBbGxvd0Ny
b3NzT3JpZ2luU2Nyb2xsaW5nOjpObworICAgICAgICBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Ny
b2xsaW5nOjpObywKKyAgICAgICAgb3B0aW9ucy5iZWhhdmlvci52YWx1ZU9yKFNjcm9sbEJlaGF2
aW9yOjpBdXRvKQogICAgIH07CiAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShh
YnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIHZpc2libGVPcHRpb25zKTsKIH0KQEAgLTkxMiw3
ICs5MTIsNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYg
b3B0aW9ucykKIAogdm9pZCBFbGVtZW50OjpzY3JvbGxCeShkb3VibGUgeCwgZG91YmxlIHkpCiB7
Ci0gICAgc2Nyb2xsQnkoeyB4LCB5IH0pOworICAgIHNjcm9sbEJ5KFNjcm9sbFRvT3B0aW9ucyh4
LCB5KSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25z
JiBvcHRpb25zLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKQEAgLTk0OCwxMyArOTQ4LDE3IEBA
IHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBT
Y3JvbGxDbGFtcGluZyBjbGFtcGluZykKICAgICAgICAgYWRqdXN0Rm9yQWJzb2x1dGVab29tKHJl
bmRlcmVyLT5zY3JvbGxMZWZ0KCksICpyZW5kZXJlciksCiAgICAgICAgIGFkanVzdEZvckFic29s
dXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsVG9wKCksICpyZW5kZXJlcikKICAgICApOwotICAgIHJl
bmRlcmVyLT5zZXRTY3JvbGxMZWZ0KGNsYW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy5sZWZ0
LnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKLSAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKGNs
YW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgY2xhbXBpbmcp
OworICAgIEludFBvaW50IHNjcm9sbFBvc2l0aW9uKAorICAgICAgICBjbGFtcFRvSW50ZWdlcihz
Y3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZl
Wm9vbSgpKSwKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLnRvcC52YWx1
ZSgpICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKQorICAgICk7CisgICAgYm9v
bCBhbmltYXRlZCA9IHVzZVNtb290aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3Iu
dmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0byksICp0aGlzKTsKKyAgICByZW5kZXJlci0+c2V0
U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
YW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxUbyhkb3VibGUg
eCwgZG91YmxlIHkpCiB7Ci0gICAgc2Nyb2xsVG8oeyB4LCB5IH0pOworICAgIHNjcm9sbFRvKFNj
cm9sbFRvT3B0aW9ucyh4LCB5KSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsQnlVbml0cyhp
bnQgdW5pdHMsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMTI4OCwxMyArMTI5
MiwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQpCiAgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlm
IChkb2N1bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKLSAgICAgICAgICAg
IGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGlu
dD4obmV3TGVmdCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVG
YWN0b3IoKSksIGZyYW1lLT52aWV3KCktPnNjcm9sbFkoKSkpOworICAgICAgICBpZiAoYXV0byog
ZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAg
ICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1MDU5CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gZG9jdW1lbnQoKS5kb2N1bWVudEVs
ZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICpkb2N1
bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnNl
dFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4obmV3TGVmdCAqIGZyYW1l
LT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSksIGZyYW1lLT52
aWV3KCktPnNjcm9sbFkoKSksIGFuaW1hdGVkKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcmVuZGVyQm94KCkpIHsKLSAgICAg
ICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoc3RhdGljX2Nhc3Q8aW50PihuZXdMZWZ0ICogcmVu
ZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGlj
KTsKKyAgICAgICAgaW50IGNsYW1wZWRMZWZ0ID0gY2xhbXBUb0ludGVnZXIobmV3TGVmdCAqIHJl
bmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGJvb2wgYW5pbWF0ZWQg
PSB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICp0aGlzKTsKKyAgICAg
ICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoY2xhbXBlZExlZnQsIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYywgYW5pbWF0ZWQpOwogICAgICAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBy
ZW5kZXJlci0+bGF5ZXIoKSkKICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxT
aG91bGRDbGVhckxhdGNoZWRTdGF0ZSh0cnVlKTsKICAgICB9CkBAIC0xMzA1LDEzICsxMzE1LDE5
IEBAIHZvaWQgRWxlbWVudDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3ApCiAgICAgZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlmIChkb2N1
bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKLSAgICAgICAgICAgIGZyYW1l
LT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZyYW1lLT52aWV3KCktPnNjcm9s
bFgoKSwgc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAq
IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKSk7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9
IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkgeworICAgICAgICAgICAgLy8gRklYTUU6
IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgpPworICAgICAgICAg
ICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkK
KyAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgp
ICYmIHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvcjo6QXV0bywgKmRvY3VtZW50KCku
ZG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xs
UG9zaXRpb24oSW50UG9pbnQoZnJhbWUtPnZpZXcoKS0+c2Nyb2xsWCgpLCBzdGF0aWNfY2FzdDxp
bnQ+KG5ld1RvcCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVG
YWN0b3IoKSkpLCBhbmltYXRlZCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKSB7Ci0gICAgICAgIHJlbmRl
cmVyLT5zZXRTY3JvbGxUb3Aoc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiByZW5kZXJlci0+c3R5
bGUoKS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOworICAgICAg
ICBpbnQgY2xhbXBlZFRvcCA9IGNsYW1wVG9JbnRlZ2VyKG5ld1RvcCAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9vdGhT
Y3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICp0aGlzKTsKKyAgICAgICAgcmVuZGVyZXIt
PnNldFNjcm9sbFRvcChjbGFtcGVkVG9wLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1h
dGVkKTsKICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVy
KCkpCiAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRj
aGVkU3RhdGUodHJ1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDA1
NjhiMDY5ZGMuLjI4YjQ2NWYwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE1
OTUsNyArMTU5NSw3IEBAIGRvdWJsZSBET01XaW5kb3c6OmRldmljZVBpeGVsUmF0aW8oKSBjb25z
dAogCiB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5KSBjb25zdAog
ewotICAgIHNjcm9sbEJ5KHsgeCwgeSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMo
eCwgeSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsQnkoY29uc3QgU2Nyb2xsVG9PcHRp
b25zJiBvcHRpb25zKSBjb25zdApAQCAtMTYxNywxMCArMTYxNywxMCBAQCB2b2lkIERPTVdpbmRv
dzo6c2Nyb2xsQnkoY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zKSBjb25zdAogCiB2b2lk
IERPTVdpbmRvdzo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5LCBTY3JvbGxDbGFtcGluZyBj
bGFtcGluZykgY29uc3QKIHsKLSAgICBzY3JvbGxUbyh7IHgsIHkgfSwgY2xhbXBpbmcpOworICAg
IHNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucyh4LCB5KSwgY2xhbXBpbmcpOwogfQogCi12b2lkIERP
TVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3JvbGxD
bGFtcGluZykgY29uc3QKK3ZvaWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09w
dGlvbnMmIG9wdGlvbnMsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKSBjb25zdAogewogICAgIGlm
ICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE2
MzMsMTIgKzE2MzMsMjIgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRv
T3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0CiAgICAgICAgIHZpZXctPmNv
bnRlbnRzU2Nyb2xsUG9zaXRpb24oKS54KCksIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24o
KS55KCkKICAgICApOwogCi0gICAgaWYgKCFzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICYm
ICFzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkgJiYgdmlldy0+Y29udGVudHNTY3JvbGxQb3Np
dGlvbigpID09IEludFBvaW50KDAsIDApKQorICAgIC8vIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9u
IGZvciB0aGUgY29tbW9uIGNhc2Ugb2Ygc2Nyb2xsaW5nIHRvICgwLCAwKSB3aGVuIHRoZSBzY3Jv
bGxlciBpcyBhbHJlYWR5IGF0IHRoZSBvcmlnaW4uCisgICAgLy8gSWYgYW4gYW5pbWF0ZWQgc2Ny
b2xsIGlzIGluIHByb2dyZXNzLCB0aGlzIG9wdGltaXphdGlvbiBpcyBza2lwcGVkIHRvIGVuc3Vy
ZSB0aGF0IHRoZSBhbmltYXRlZCBzY3JvbGwgaXMgcmVhbGx5IHN0b3BwZWQuCisgICAgaWYgKHZp
ZXctPmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVz
OjpOb3RJbkFuaW1hdGlvbiAmJiAhc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Ny
b2xsVG9PcHRpb25zLnRvcC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24o
KSA9PSBJbnRQb2ludCgwLCAwKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZG9jdW1lbnQoKS0+
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBJbnRQb2ludCBs
YXlvdXRQb3Modmlldy0+bWFwRnJvbUNTU1RvTGF5b3V0VW5pdHMoc2Nyb2xsVG9PcHRpb25zLmxl
ZnQudmFsdWUoKSksIHZpZXctPm1hcEZyb21DU1NUb0xheW91dFVuaXRzKHNjcm9sbFRvT3B0aW9u
cy50b3AudmFsdWUoKSkpOworCisgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQo
KS0+c2Nyb2xsaW5nRWxlbWVudCgpPworICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgaWYgKGRvY3VtZW50KCktPmRvY3VtZW50RWxl
bWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3IudmFs
dWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0byksICpkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQo
KSkpIHsKKyAgICAgICAgdmlldy0+c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGxheW91dFBv
cywgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFtcGluZyk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICB2aWV3LT5zZXRDb250ZW50c1Njcm9sbFBvc2l0aW9uKGxheW91dFBvcyk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAwNDAxMmY5ZWZmLi43MzFlMzIy
OTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMjc5LDcgKzIyNzksNyBAQCB2
b2lkIEZyYW1lVmlldzo6c2Nyb2xsRWxlbWVudFRvUmVjdChjb25zdCBFbGVtZW50JiBlbGVtZW50
LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIHNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGJv
dW5kcy54KCkgLSBjZW50ZXJpbmdPZmZzZXRYIC0gcmVjdC54KCksIGJvdW5kcy55KCkgLSBjZW50
ZXJpbmdPZmZzZXRZIC0gcmVjdC55KCkpKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgRnJh
bWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9z
aXRpb24sIGJvb2wgYW5pbWF0ZWQpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywg
c3RyZWFtIDw8ICJGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRp
b24gPDwgIiAsIGNsZWFyaW5nIGFuY2hvciIpOwogCkBAIC0yMjkyLDcgKzIyOTIsMTAgQEAgdm9p
ZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3Jv
bGxQb3NpdGlvbikKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgaWYgKHBh
Z2UgJiYgcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKICAgICAgICAgc2Nyb2xsQW5p
bWF0b3IoKS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocGFnZS0+d2hlZWxFdmVudFRlc3RNb25p
dG9yKCkpOwotICAgIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9u
KTsKKyAgICBpZiAoYW5pbWF0ZWQpCisgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pLCBjdXJyZW50U2Nyb2xs
VHlwZSgpKTsKKyAgICBlbHNlCisgICAgICAgIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uKTsKIAogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKG9sZFNjcm9sbFR5
cGUpOwogfQpAQCAtMzY2MCw2ICszNjYzLDI2IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUbyhj
b25zdCBTY3JvbGxQb3NpdGlvbiYgbmV3UG9zaXRpb24pCiAgICAgZGlkQ2hhbmdlU2Nyb2xsT2Zm
c2V0KCk7CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24o
Y29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xs
VHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOworCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsKKyAgICBp
ZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChv
ZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5
cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoY3VycmVudFNj
cm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZl
QW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsK
KyAgICBpZiAob2Zmc2V0ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAgICBTY3JvbGxh
YmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKG9mZnNldCk7CisgICAgc2V0Q3Vy
cmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKK30KKwogZmxvYXQgRnJhbWVWaWV3
OjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250ZW50KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsK
ICAgICBpZiAoZ3JhbnVsYXJpdHkgIT0gU2Nyb2xsQnlQYWdlIHx8IG9yaWVudGF0aW9uID09IEhv
cml6b250YWxTY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBlMzZmOTk2ODA0
Li5iMzdmMDYwZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTIyMyw3ICsyMjMsNyBA
QCBwdWJsaWM6CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFs
OwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Ny
b2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2Up
IGZpbmFsOwogICAgIHZvaWQgcmVzdG9yZVNjcm9sbGJhcigpOwogICAgIHZvaWQgc2NoZWR1bGVT
Y3JvbGxUb0ZvY3VzZWRFbGVtZW50KFNlbGVjdGlvblJldmVhbE1vZGUpOwogICAgIHZvaWQgc2Ny
b2xsVG9Gb2N1c2VkRWxlbWVudEltbWVkaWF0ZWx5SWZOZWVkZWQoKTsKQEAgLTY1OSw2ICs2NTks
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbmRlckxheWVyRGlkU2Nyb2xsKGNvbnN0IFJlbmRl
ckxheWVyJik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFu
aW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKwog
cHJvdGVjdGVkOgogICAgIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0
JiBjbGlwUmVjdCkgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0
IEludFJlY3QmIHVwZGF0ZVJlY3QpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JvbGxCZWhhdmlvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2
aW9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40ZWQyOWNiNDJi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5j
cHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3Iu
aCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2Jvb2wgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yIGJl
aGF2aW9yLCBFbGVtZW50JiBhc3NvY2lhdGVkRWxlbWVudCkKK3sKKyAgICBpZiAoIWFzc29jaWF0
ZWRFbGVtZW50LmRvY3VtZW50KCkuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkKCkgfHwgIWFzc29jaWF0ZWRFbGVtZW50LnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNz
Y3JvbGxpbmcKKyAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7CisgICAgY2FzZSBTY3JvbGxCZWhhdmlv
cjo6QXV0bzoKKyAgICAgICAgcmV0dXJuIGFzc29jaWF0ZWRFbGVtZW50LnJlbmRlcmVyKCktPnN0
eWxlKCkudXNlU21vb3RoU2Nyb2xsaW5nKCk7CisgICAgY2FzZSBTY3JvbGxCZWhhdmlvcjo6SW5z
dGFudDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OlNt
b290aDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLjFiYWVmODgxZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbEJlaGF2aW9yLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBFbGVtZW50OworCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2aW9yIDog
dWludDhfdCB7CisgICAgQXV0byA9IDAsCisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgKK307CisK
K2Jvb2wgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yLCBFbGVtZW50JiBhc3NvY2lh
dGVkRWxlbWVudCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
Y3JvbGxCZWhhdmlvci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u
ODk3MWFlOTM3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xs
QmVoYXZpb3IuaWRsCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworZW51bSBTY3JvbGxCZWhhdmlvciB7ICJhdXRvIiwgImluc3Rh
bnQiLCAic21vb3RoIiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJ
bnRvVmlld09wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRp
b25zLmgKaW5kZXggOTM5Y2Q3MzQyNS4uZjI3NWYyZmJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oCkBAIC0yMCwxMiArMjAsMTEgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmgiCisjaW5jbHVkZSAiU2Ny
b2xsT3B0aW9ucy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEVsZW1lbnQ7Ci0K
LXN0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnMgeworc3RydWN0IFNjcm9sbEludG9WaWV3T3B0
aW9ucyA6IFNjcm9sbE9wdGlvbnMgewogICAgIE9wdGlvbmFsPFNjcm9sbExvZ2ljYWxQb3NpdGlv
bj4gYmxvY2tQb3NpdGlvbiB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6U3RhcnQgfTsKICAgICBP
cHRpb25hbDxTY3JvbGxMb2dpY2FsUG9zaXRpb24+IGlubGluZVBvc2l0aW9uIHsgU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uOjpOZWFyZXN0IH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3Jv
bGxJbnRvVmlld09wdGlvbnMuaWRsCmluZGV4IGNmOWQxZmQ3NjcuLjFiMjRjNjg2ZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKQEAgLTE3LDgg
KzE3LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLS8vIEZJWE1F
KHdlYmtpdC5vcmcvYi8xODgwNDMpOiBTdXBwb3J0IFNjcm9sbEJlaGF2aW9yLgotZGljdGlvbmFy
eSBTY3JvbGxJbnRvVmlld09wdGlvbnMgeworZGljdGlvbmFyeSBTY3JvbGxJbnRvVmlld09wdGlv
bnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBbSW1wbGVtZW50ZWRBcz1ibG9ja1Bvc2l0aW9uXSBT
Y3JvbGxMb2dpY2FsUG9zaXRpb24gYmxvY2sgPSAic3RhcnQiOwogICAgIFtJbXBsZW1lbnRlZEFz
PWlubGluZVBvc2l0aW9uXSBTY3JvbGxMb2dpY2FsUG9zaXRpb24gaW5saW5lID0gIm5lYXJlc3Qi
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uZTE4NjdjNjAxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJTY3JvbGxCZWhhdmlvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBT
Y3JvbGxPcHRpb25zIHsKKyAgICBPcHRpb25hbDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IgeyBT
Y3JvbGxCZWhhdmlvcjo6QXV0byB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uMzI5ZDZmZjEwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitkaWN0aW9uYXJ5IFNjcm9sbE9wdGlvbnMg
eworICAgIFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yID0gImF1dG8iOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbFRvT3B0aW9ucy5oCmluZGV4IGNlMWNiYTFjN2MuLmY1Nzc0ZDQ0YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaApAQCAtMjgsMTQgKzI4LDIxIEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSAiU2Nyb2xsT3B0aW9ucy5oIgogI2luY2x1ZGUgPGNtYXRo
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
cnVjdCBTY3JvbGxUb09wdGlvbnMgeworc3RydWN0IFNjcm9sbFRvT3B0aW9ucyA6IFNjcm9sbE9w
dGlvbnMgewogICAgIE9wdGlvbmFsPGRvdWJsZT4gbGVmdDsKICAgICBPcHRpb25hbDxkb3VibGU+
IHRvcDsKKworICAgIFNjcm9sbFRvT3B0aW9ucygpID0gZGVmYXVsdDsKKyAgICBTY3JvbGxUb09w
dGlvbnMoZG91YmxlIHgsIGRvdWJsZSB5KQorICAgICAgICA6IGxlZnQoeCkKKyAgICAgICAgLCB0
b3AoeSkKKyAgICB7IH0KIH07CiAKIGlubGluZSBkb3VibGUgbm9ybWFsaXplTm9uRmluaXRlVmFs
dWVPckZhbGxCYWNrVG8oT3B0aW9uYWw8ZG91YmxlPiB2YWx1ZSwgZG91YmxlIGZhbGxiYWNrVmFs
dWUpCkBAIC00Nyw3ICs1NCw3IEBAIGlubGluZSBkb3VibGUgbm9ybWFsaXplTm9uRmluaXRlVmFs
dWVPckZhbGxCYWNrVG8oT3B0aW9uYWw8ZG91YmxlPiB2YWx1ZSwgZG91YmxlCiAvLyBGSVhNRSho
dHRwczovL3dlYmtpdC5vcmcvYi84ODMzOSk6IENvbnNpZGVyIHVzaW5nIEZsb2F0UG9pbnQgb3Ig
RG91YmxlUG9pbnQgZm9yIGZhbGxiYWNrIGFuZCByZXR1cm4gdmFsdWVzLgogaW5saW5lIFNjcm9s
bFRvT3B0aW9ucyBub3JtYWxpemVOb25GaW5pdGVDb29yZGluYXRlc09yRmFsbEJhY2tUbyhjb25z
dCBTY3JvbGxUb09wdGlvbnMmIHZhbHVlLCBkb3VibGUgeCwgZG91YmxlIHkpCiB7Ci0gICAgU2Ny
b2xsVG9PcHRpb25zIG9wdGlvbnM7CisgICAgU2Nyb2xsVG9PcHRpb25zIG9wdGlvbnMgPSB2YWx1
ZTsKICAgICBvcHRpb25zLmxlZnQgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tU
byh2YWx1ZS5sZWZ0LCB4KTsKICAgICBvcHRpb25zLnRvcCA9IG5vcm1hbGl6ZU5vbkZpbml0ZVZh
bHVlT3JGYWxsQmFja1RvKHZhbHVlLnRvcCwgeSk7CiAgICAgcmV0dXJuIG9wdGlvbnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKaW5kZXggNTEwYmMwNzFhNi4uMmI5YjU1
NDEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbApAQCAtMjYsOCAr
MjYsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQz
KTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsVG9PcHRpb25zIHsK
K2RpY3Rpb25hcnkgU2Nyb2xsVG9PcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7CiAgICAgdW5yZXN0
cmljdGVkIGRvdWJsZSBsZWZ0OwogICAgIHVucmVzdHJpY3RlZCBkb3VibGUgdG9wOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCBiMzI5ZjEyNDc5Li4xZDc5ZjQ1OWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC02MjIsNiArNjIyLDkgQEAgc3ludGhldGljRWRp
dGluZ0NvbW1hbmRzRW5hYmxlZDoKIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIGlu
aXRpYWw6IGZhbHNlCiAKK0NTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6CisgIGluaXRp
YWw6IGZhbHNlCisKIGlucHV0RXZlbnRzRW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwCmluZGV4IDQyOWVlZTlhOTYuLmE5N2VhNDJlODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCkBAIC0yNDgsNyArMjQ4LDE0IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3Jv
CiAKICAgICBib29sIGluQmFja0ZvcndhcmRDYWNoZSA9IGZyYW1lVmlldy0+ZnJhbWUoKS5kb2N1
bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9y
d2FyZENhY2hlOwogICAgIGJvb2wgaW5Qcm9ncmFtbWF0aWNTY3JvbGwgPSBzY3JvbGxhYmxlQXJl
YS5jdXJyZW50U2Nyb2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYzsKLSAgICBp
ZiAoaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5CYWNrRm9yd2FyZENhY2hlKQorCisgICAgYm9v
bCB1cGRhdGVTY3JvbGxQb3NpdGlvbiA9IGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFja0Zv
cndhcmRDYWNoZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgYW5pbWF0ZWQg
PSBzY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKCkgPT0gU2Nyb2xsQmVo
YXZpb3JUeXBlOjpTbW9vdGg7CisgICAgLy8gVGhlIHNjcm9sbCBwb3NpdGlvbiBvZiBhbmltYXRl
ZCBzY3JvbGxpbmcgd2lsbCBiZSBzZXQgYnkgdGhlIFVJIHByb2Nlc3MuIFNvIHNob3VsZG4ndCBz
ZXQgaXQgbm93LgorICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uID0gIWFuaW1hdGVkICYmIHVwZGF0
ZVNjcm9sbFBvc2l0aW9uOworI2VuZGlmCisgICAgaWYgKHVwZGF0ZVNjcm9sbFBvc2l0aW9uKQog
ICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9k
ZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiAKICAgICAvLyBJZiB0aGlzIGZyYW1lIHZp
ZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB3
ZSBkb24ndCB3YW50IHRvIHVwZGF0ZSBvdXIKQEAgLTI2MCw3ICsyNjcsMTQgQEAgYm9vbCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xs
YWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIXN0YXRlTm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhdXRvIHN0YXR1cyA9IGFuaW1hdGVk
ID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5pbWF0aW9uIDogU2Nyb2xsQmVoYXZp
b3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOworICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJl
aGF2aW9yU3RhdHVzKHN0YXR1cyk7CisKKyAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCwgYW5pbWF0ZWQp
OworI2Vsc2UKICAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCk7CisjZW5kaWYKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApAQCAtMjkxLDYgKzMwNSwzMiBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcgogICAg
IG1fdXBkYXRlTm9kZVNjcm9sbFBvc2l0aW9uVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJv
b2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byog
ZnJhbWVWaWV3ID0gZnJhbWVWaWV3Rm9yU2Nyb2xsaW5nTm9kZShub2RlSUQpOworICAgIGlmICgh
ZnJhbWVWaWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobm9kZUlEID09IGZyYW1lVmll
dy0+c2Nyb2xsaW5nTm9kZUlEKCkpIHsKKyAgICAgICAgaWYgKCFpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpCisgICAgICAgICAgICBmcmFtZVZpZXctPnNldFNjcm9sbEJlaGF2aW9yU3RhdHVz
KFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAvLyBPdmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAgICBpZiAoYXV0byogc2Ny
b2xsYWJsZUFyZWEgPSBmcmFtZVZpZXctPnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRChu
b2RlSUQpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAg
ICAgICAgICAgc2Nyb2xsYWJsZUFyZWEtPnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgfQorfQorI2VuZGlmCisKIHZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5j
U2Nyb2xsVGltZXJGaXJlZCgpCiB7CiAgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5j
U2Nyb2xsKG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLm5vZGVJRCwgbV9zY2hlZHVsZWRTY3JvbGxV
cGRhdGUuc2Nyb2xsUG9zaXRpb24sIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLmxheW91dFZpZXdw
b3J0T3JpZ2luLCBTY3JvbGxUeXBlOjpVc2VyLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS51cGRh
dGVMYXllclBvc2l0aW9uQWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA5YmU2OWFhZmIx
Li4zZGUwMWNjMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC01Miw2ICs1Miw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNjcm9sbGluZ1N0YXRlVHJlZVByb3BlcnRpZXNDaGFuZ2VkKCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFz
eW5jU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IE9wdGlv
bmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbik7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCwgYm9v
bCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCiAKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2Vz
KFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbEluZGV4LCB1bnNpZ25lZCB2ZXJ0
aWNhbEluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDcxN2JmYzJhNTUuLjdl
MjE4OGMyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcApAQCAtNTYsNiArNTYsOSBAQCBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShj
b25zdCBTY3JvbGxpbmdTdGF0ZVNjcgogI2VuZGlmCiAgICAgLCBtX3Njcm9sbGFibGVBcmVhUGFy
YW1ldGVycyhzdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkpCiAgICAgLCBtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbChzdGF0ZU5v
ZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkp
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b25XaXRoQW5pbWF0aW9uKHN0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmlt
YXRpb24oKSkKKyNlbmRpZgogICAgICwgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyhzdGF0ZU5v
ZGUuaXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKIHsKICAgICBpZiAoaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbENvbnRhaW5lckxheWVyKSkKQEAgLTIxOSwxMiArMjIyLDIyIEBAIHZvaWQgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoY29u
c3QgU2Nyb2xsYWJsZUFyCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFNjcm9sbGFibGVBcmVhUGFy
YW1zKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2lu
dCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCwgYm9vbCByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uKQoreworICAgIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24gPSByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKKyAgICBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGw7CisgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRp
b24gPSByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uOworICAgIHNldFByb3BlcnR5Q2hhbmdlZChSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbik7Cit9CisjZWxzZQogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
CiB7CiAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uOwogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKICAgICBzZXRQcm9wZXJ0eUNo
YW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQorI2VuZGlmCiAKIHZvaWQgU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRJc01vbml0b3JpbmdXaGVlbEV2ZW50cyhib29sIGlz
TW9uaXRvcmluZ1doZWVsRXZlbnRzKQogewpAQCAtMzE0LDYgKzMyNywxMSBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNj
cm9sbGluZ1N0YXRlVAogICAgIGlmIChtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQg
c2Nyb2xsIHBvc2l0aW9uIHJlcHJlc2VudHMgcHJvZ3JhbW1hdGljIHNjcm9sbCIsIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRo
QW5pbWF0aW9uKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9z
aXRpb24gd2l0aCBhbmltYXRpb24iLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1h
dGlvbik7CisjZW5kaWYKKwogICAgIGlmICghbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0
LmlzRW1wdHkoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJwYXJlbnQgcmVsYXRpdmUgc2Ny
b2xsYWJsZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUuaAppbmRleCA0OTY3YTZjZTgxLi42ZTI1ZDdiYmE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuaApAQCAtMTExLDcgKzExMSwxMiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBGbG9h
dFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb247IH0KICAgICBib29sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOyB9CisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBib29sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9u
OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihj
b25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29s
IHJlcXVlc3RlZFdpdGhBbmltYXRpb24gPSBmYWxzZSk7CisjZWxzZQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGJv
b2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisjZW5kaWYKIAogICAgIGJvb2wgaXNN
b25pdG9yaW5nV2hlZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRvcmluZ1doZWVs
RXZlbnRzOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJc01vbml0b3JpbmdXaGVlbEV2
ZW50cyhib29sKTsKQEAgLTE3MSw2ICsxNzYsOSBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVB
cmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKIAogICAgIGJvb2wgbV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgeyBmYWxz
ZSB9OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uV2l0aEFuaW1hdGlvbiB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1faXNN
b25pdG9yaW5nV2hlZWxFdmVudHMgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDE1MWFjMjlmOGEuLjdhZGRmZWY0
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgK
QEAgLTgyLDggKzgyLDEzIEBAIHB1YmxpYzoKICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5k
ZXJMYXllciBzY3JvbGxpbmcgc3RhdGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZSYsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uOjpTeW5jKSA9IDA7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIENh
bGxlZCBmb3Igc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMgdXBkYXRlcy4KKyAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uo
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIC8qaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKi8pIHsgfQorI2VuZGlmCisKICAgICAvLyBDYWxsZWQgZm9yIHJlcXVlc3RlZCBzY3JvbGwg
cG9zaXRpb24gdXBkYXRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9z
aXRpb24qLywgYm9vbCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLykgeyB9CisgICAg
dmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsKi8sIGJvb2wgLyp3aXRoQW5pbWF0aW9uKi8gPSBmYWxzZSkg
eyB9CiAKICAgICAvLyBEZWxlZ2F0ZWQgc2Nyb2xsaW5nL3pvb21pbmcgaGFzIGNhdXNlZCB0aGUg
dmlld3BvcnQgdG8gY2hhbmdlLCBzbyB1cGRhdGUgdmlld3BvcnQtY29uc3RyYWluZWQgbGF5ZXJz
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYWluRnJhbWVWaWV3cG9ydENoYW5nZWRWaWFEZWxl
Z2F0ZWRTY3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQsIGRvdWJsZSBzY2FsZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHAKaW5kZXggNzNkY2EyOGVmMS4uM2ZhZmRjMjY2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmNwcApAQCAtMTA3LDggKzEwNywxMiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRl
Tgogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxk
cmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewogICAgIGNvbnN0IFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpOworICAgIGJvb2wgd2l0aEFu
aW1hdGlvbiA9IGZhbHNlOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgd2l0aEFuaW1h
dGlvbiA9IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmlt
YXRpb24oKTsKKyNlbmRpZgogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFBy
b3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b24pKQotICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbChzY3JvbGxpbmdOb2RlSUQoKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKCksIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSk7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5z
Y3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxp
bmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpLCB3
aXRoQW5pbWF0aW9uKTsKIAogICAgIG1faXNGaXJzdENvbW1pdCA9IGZhbHNlOwogfQpAQCAtMTU3
LDIxICsxNjEsNDMgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQnko
Y29uc3QgRmxvYXRTaXplJiBkZWx0YSwgU2Nyb2xsUG9zaXRpb24KICAgICBzY3JvbGxUbyhjdXJy
ZW50U2Nyb2xsUG9zaXRpb24oKSArIGRlbHRhLCBTY3JvbGxUeXBlOjpVc2VyLCBjbGFtcCk7CiB9
CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZsb2F0
UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xh
bXAgY2xhbXApCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxU
eXBlIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXAsIGJvb2wgbmVlZFN5bmNT
Y3JvbGxQb3NpdGlvbikKKyNlbHNlCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpz
Y3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBl
LCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wLCBib29sIC8qbmVlZFN5bmNTY3JvbGxQb3NpdGlv
biovKQorI2VuZGlmCiB7Ci0gICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0
aW9uKQorICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgeworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIC8vIFNlbmQgdGhlIHNjcm9sbCBwb3NpdGlv
biB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIGlmIChyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwo
KSAmJiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQorICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZSgp
LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzLCBTY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uOjpTeW5jKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2Rl
SXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKHNjcm9sbGluZ05vZGVJRCgpLCBm
YWxzZSk7CisgICAgICAgIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChmYWxzZSk7CisjZW5kaWYK
ICAgICAgICAgcmV0dXJuOworICAgIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
Ly8gSWYgZHVyaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgbmVlZCB0byBzdG9wIGl0IGJlZm9yZSBz
dGFydGluZyBhIG5ldyBvbmUuCisgICAgaWYgKHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkK
KyAgICAgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbih0cnVlKTsKKyNlbmRp
ZgogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKHNj
cm9sbFR5cGUgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKLSAgICAKKwogICAgIG1fY3Vy
cmVudFNjcm9sbFBvc2l0aW9uID0gYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwgY2xh
bXApOwotICAgIAorCiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSAiIDw8IHNjcm9sbGluZ05vZGVJRCgpIDw8ICIgc2Ny
b2xsVG8gIiA8PCBwb3NpdGlvbiA8PCAiIChkZWx0YSBmcm9tIGxhc3QgY29tbWl0dGVkIHBvc2l0
aW9uICIgPDwgKG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uIC0gbV9jdXJyZW50U2Nyb2xs
UG9zaXRpb24pIDw8ICIpIik7CiAKICAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJlbnRTY3JvbGxQ
b3NpdGlvbigpOwogICAgIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKTsKIAogICAgIHNj
cm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKGZhbHNlKTsKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFu
aW1hdGlvbihmYWxzZSk7CisgICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGZhbHNlKTsKKyNl
bmRpZgogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xs
UG9zaXRpb25DaGFuZ2VkKCkKQEAgLTE3OSw2ICsyMDUsMTAgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiAgICAgcmVwb3Np
dGlvblNjcm9sbGluZ0xheWVycygpOwogICAgIHJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCk7CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghcmVxdWVzdEFuaW1hdGVkU2Nyb2xs
KCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIHNjcm9sbGluZ1RyZWUoKS5ub3RpZnlS
ZWxhdGVkTm9kZXNBZnRlclNjcm9sbFBvc2l0aW9uQ2hhbmdlKCp0aGlzKTsKICAgICBzY3JvbGxp
bmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMpOwogfQpAQCAtMjY2LDYg
KzI5NiwzNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGll
cyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcgogICAgIHRzLmR1bXBQcm9wZXJ0eSgi
c2Nyb2xsYWJsZSBhcmVhIHBhcmFtZXRlcnMiLCBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycyk7
CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wgYW5pbWF0ZWQpCit7CisgICAg
bV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgPSBhbmltYXRlZDsKK30KKworYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGw7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9vbCBpblByb2dyZXNz
KQoreworICAgIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGluUHJvZ3Jlc3M7Cit9CisK
K2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3M7Cit9
CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRT
Y3JvbGxBbmltYXRpb24oYm9vbCBzdG9wKQoreworICAgIG1fbmVlZHNTdG9wQ3VycmVudFNjcm9s
bEFuaW1hdGlvbiA9IHN0b3A7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBt
X25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb247Cit9CisjZW5kaWYKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuaAppbmRleCA0Y2JmNGQxYWYwLi5mOWYzMTBkYjljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIEZsb2F0U2l6ZSBzY3JvbGxEZWx0
YVNpbmNlTGFzdENvbW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFNjcm9sbFBvc2l0aW9u
IC0gbV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb247IH0KIAogICAgIC8vIFRoZXNlIGFyZSBp
bXBlcmF0aXZlOyB0aGV5IGFkanVzdCB0aGUgc2Nyb2xsaW5nIGxheWVycy4KLSAgICB2b2lkIHNj
cm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6VXNlciwg
U2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2Vz
KTsKKyAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Ny
b2xsVHlwZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6
OlRvQ29udGVudEVkZ2VzLCBib29sIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24gPSBmYWxzZSk7CiAg
ICAgdm9pZCBzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmLCBTY3JvbGxQb3NpdGlvbkNsYW1wID0g
U2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOwogCiAgICAgdm9pZCB3YXNTY3Jv
bGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBPcHRp
b25hbDxGbG9hdFJlY3Q+IG92ZXJyaWRlTGF5b3V0Vmlld3BvcnQgPSB7IH0sIFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsK
QEAgLTkxLDYgKzkxLDE1IEBAIHB1YmxpYzoKICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9u
JiBzY3JvbGxDb250YWluZXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsQ29udGFpbmVy
TGF5ZXI7IH0KICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxlZENvbnRlbnRz
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsgfQogCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChi
b29sKTsKKyAgICBib29sIHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpIGNvbnN0OworICAgIHZvaWQg
c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sKTsKKyAgICBib29sIHNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MoKSBjb25zdDsKKyAgICB2b2lkIHNldE5lZWRzU3RvcEN1cnJlbnRTY3Jv
bGxBbmltYXRpb24oYm9vbCk7CisgICAgYm9vbCBuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0
aW9uKCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEKTsKIApAQCAtMTQ4LDYgKzE1NywxMiBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVBcmVh
UGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKICAgICBib29sIG1faXNGaXJz
dENvbW1pdCB7IHRydWUgfTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCBt
X3JlcXVlc3RBbmltYXRlZFNjcm9sbCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9uZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgTGF5ZXJSZXByZXNlbnRhdGlv
biBtX3Njcm9sbENvbnRhaW5lckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3Jv
bGxlZENvbnRlbnRzTGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRpb24uaAppbmRleCBiN2MxZDI0ZWI0Li41MjNhNzdmMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRpb24uaApAQCAtMzIsMTIgKzMyLDE0IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOworZW51
bSBjbGFzcyBTY3JvbGxDbGFtcGluZyA6IHVpbnQ4X3Q7CiAKIGNsYXNzIFNjcm9sbEFuaW1hdGlv
biB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
U2Nyb2xsQW5pbWF0aW9uKCkgeyB9OwogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsYmFy
T3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCAvKiBzdGVwICovLCBmbG9hdCAv
KiBtdWx0aXBsaWVyICovKSB7IHJldHVybiB0cnVlOyB9OworICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGwoY29uc3QgRmxvYXRQb2ludCYpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKSB7IH07CiAgICAgdmlydHVh
bCB2b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JikgeyB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKaW5kZXgg
ZDA2NGU2OTM3OS4uMmNhNTc4YTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCkBAIC0yOCw4ICsyOCw2IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmgiCiAKLSNpZiBFTkFC
TEUoU01PT1RIX1NDUk9MTElORykKLQogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRl
ICJTY3JvbGxhYmxlQXJlYS5oIgogCkBAIC0zOCw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHN0YXRpYyBjb25zdCBkb3VibGUgZnJhbWVSYXRlID0gNjA7CiBzdGF0aWMgY29uc3QgU2Vj
b25kcyB0aWNrVGltZSA9IDFfcyAvIGZyYW1lUmF0ZTsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1p
bmltdW1UaW1lckludGVydmFsIHsgMV9tcyB9Oworc3RhdGljIGNvbnN0IGRvdWJsZSBzbW9vdGhG
YWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgPSA1OwogCiBTY3JvbGxBbmltYXRpb25TbW9vdGg6
OlNjcm9sbEFuaW1hdGlvblNtb290aChTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNv
bnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKEZsb2F0UG9pbnQm
Jik+JiYgbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVuY3Rpb24pCiAgICAgOiBTY3JvbGxBbmltYXRp
b24oc2Nyb2xsYWJsZUFyZWEpCkBAIC02Nyw5ICs2NiwyMiBAQCBib29sIFNjcm9sbEFuaW1hdGlv
blNtb290aDo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxH
cmFudQogICAgIHJldHVybiBuZWVkVG9TY3JvbGw7CiB9CiAKK3ZvaWQgU2Nyb2xsQW5pbWF0aW9u
U21vb3RoOjpzY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCit7CisgICAgU2Nyb2xs
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeVBhZ2U7CisgICAgYm9vbCBuZWVkVG9T
Y3JvbGwgPSB1cGRhdGVQZXJBeGlzRGF0YShtX2hvcml6b250YWxEYXRhLCBncmFudWxhcml0eSwg
cG9zaXRpb24ueCgpIC0gbV9ob3Jpem9udGFsRGF0YS5jdXJyZW50UG9zaXRpb24sIG1fc2Nyb2xs
YWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCkueCgpLCBtX3Njcm9sbGFibGVBcmVhLm1h
eGltdW1TY3JvbGxQb3NpdGlvbigpLngoKSwgc21vb3RoRmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Ny
b2xsKTsKKyAgICBuZWVkVG9TY3JvbGwgfD0KKyAgICAgICAgdXBkYXRlUGVyQXhpc0RhdGEobV92
ZXJ0aWNhbERhdGEsIGdyYW51bGFyaXR5LCBwb3NpdGlvbi55KCkgLSBtX3ZlcnRpY2FsRGF0YS5j
dXJyZW50UG9zaXRpb24sIG1fc2Nyb2xsYWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCku
eSgpLCBtX3Njcm9sbGFibGVBcmVhLm1heGltdW1TY3JvbGxQb3NpdGlvbigpLnkoKSwgc21vb3Ro
RmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyAgICBpZiAobmVlZFRvU2Nyb2xsICYmICFh
bmltYXRpb25UaW1lckFjdGl2ZSgpKSB7CisgICAgICAgIG1fc3RhcnRUaW1lID0gbV9ob3Jpem9u
dGFsRGF0YS5zdGFydFRpbWU7CisgICAgICAgIGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKKyAgICB9
Cit9OworCiB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6c3RvcCgpCiB7CiAgICAgbV9hbmlt
YXRpb25UaW1lci5zdG9wKCk7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlv
clN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwogfQogCiB2b2lk
IFNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlVmlzaWJsZUxlbmd0aHMoKQpAQCAtMjQ3LDcg
KzI1OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXRBbmltYXRpb25QYXJhbWV0ZXJzRm9yR3Jh
bnVsYXJpdHkoU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsCiAgICAgfQogfQogCi1ib29sIFNjcm9s
bEFuaW1hdGlvblNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmIGRhdGEsIFNj
cm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xs
UG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uKQorYm9vbCBTY3JvbGxBbmltYXRpb25T
bW9vdGg6OnVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiBkYXRhLCBTY3JvbGxHcmFudWxh
cml0eSBncmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1pblNjcm9sbFBvc2l0aW9uLCBm
bG9hdCBtYXhTY3JvbGxQb3NpdGlvbiwgZG91YmxlIHNtb290aEZhY3RvcikKIHsKICAgICBpZiAo
IWRhdGEuc3RhcnRUaW1lIHx8ICFkZWx0YSB8fCAoZGVsdGEgPCAwKSAhPSAoZGF0YS5kZXNpcmVk
UG9zaXRpb24gLSBkYXRhLmN1cnJlbnRQb3NpdGlvbiA8IDApKSB7CiAgICAgICAgIGRhdGEuZGVz
aXJlZFBvc2l0aW9uID0gZGF0YS5jdXJyZW50UG9zaXRpb247CkBAIC0yNjQsNiArMjc2LDEyIEBA
IGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0
YSYgZGF0YSwgU2Nyb2xsR3JhbnVsYXJpCiAgICAgQ3VydmUgY29hc3RUaW1lQ3VydmU7CiAgICAg
Z2V0QW5pbWF0aW9uUGFyYW1ldGVyc0ZvckdyYW51bGFyaXR5KGdyYW51bGFyaXR5LCBhbmltYXRp
b25UaW1lLCByZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUsIGF0dGFja1RpbWUsIHJlbGVhc2VUaW1l
LCBjb2FzdFRpbWVDdXJ2ZSwgbWF4aW11bUNvYXN0VGltZSk7CiAKKyAgICBhbmltYXRpb25UaW1l
ICo9IHNtb290aEZhY3RvcjsKKyAgICByZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUgKj0gc21vb3Ro
RmFjdG9yOworICAgIGF0dGFja1RpbWUgKj0gc21vb3RoRmFjdG9yOworICAgIHJlbGVhc2VUaW1l
ICo9IHNtb290aEZhY3RvcjsKKyAgICBtYXhpbXVtQ29hc3RUaW1lICo9IHNtb290aEZhY3RvcjsK
KwogICAgIGRhdGEuZGVzaXJlZFBvc2l0aW9uID0gbmV3UG9zaXRpb247CiAgICAgaWYgKCFkYXRh
LnN0YXJ0VGltZSkKICAgICAgICAgZGF0YS5hdHRhY2tUaW1lID0gYXR0YWNrVGltZTsKQEAgLTM5
Miw2ICs0MTAsOCBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJG
aXJlZCgpCiAKICAgICBpZiAoY29udGludWVBbmltYXRpb24pCiAgICAgICAgIHN0YXJ0TmV4dFRp
bWVyKHN0ZDo6bWF4KG1pbmltdW1UaW1lckludGVydmFsLCBkZWx0YVRvTmV4dEZyYW1lKSk7Cisg
ICAgZWxzZQorICAgICAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVz
KFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiAKICAgICBtX25vdGlmeVBv
c2l0aW9uQ2hhbmdlZEZ1bmN0aW9uKEZsb2F0UG9pbnQobV9ob3Jpem9udGFsRGF0YS5jdXJyZW50
UG9zaXRpb24sIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbikpOwogfQpAQCAtNDA3LDUg
KzQyNywzIEBAIGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckFjdGl2
ZSgpIGNvbnN0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJM
RShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uU21vb3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRpb25TbW9vdGguaAppbmRleCAwMmNjNGVlMmJkLi44MTczZmE3ZTIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaApAQCAtMjcsMTQg
KzI3LDEzIEBACiAKICNpbmNsdWRlICJTY3JvbGxBbmltYXRpb24uaCIKIAotI2lmIEVOQUJMRShT
TU9PVEhfU0NST0xMSU5HKQotCiAjaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CitlbnVtIGNs
YXNzIFNjcm9sbENsYW1waW5nIDogdWludDhfdDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0aW9uU21v
b3RoIGZpbmFsOiBwdWJsaWMgU2Nyb2xsQW5pbWF0aW9uIHsKIHB1YmxpYzoKQEAgLTUxLDYgKzUw
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVu
dGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcikg
b3ZlcnJpZGU7CisgICAgdm9pZCBzY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0aHMo
KSBvdmVycmlkZTsKICAgICB2b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50
Jikgb3ZlcnJpZGU7CkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGludCB2aXNp
YmxlTGVuZ3RoIHsgMCB9OwogICAgIH07CiAKLSAgICBib29sIHVwZGF0ZVBlckF4aXNEYXRhKFBl
ckF4aXNEYXRhJiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3Jv
bGxQb3NpdGlvbiwgZmxvYXQgbWF4U2Nyb2xsUG9zaXRpb24pOworICAgIGJvb2wgdXBkYXRlUGVy
QXhpc0RhdGEoUGVyQXhpc0RhdGEmLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZs
b2F0IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9hdCBtYXhTY3JvbGxQb3NpdGlvbiwgZG91YmxlIHNt
b290aEZhY3RvciA9IDEpOwogICAgIGJvb2wgYW5pbWF0ZVNjcm9sbChQZXJBeGlzRGF0YSYsIE1v
bm90b25pY1RpbWUgY3VycmVudFRpbWUpOwogCiAgICAgdm9pZCByZXF1ZXN0QW5pbWF0aW9uVGlt
ZXJGaXJlZCgpOwpAQCAtMTA4LDQgKzEwOCwzIEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGE2MTE4NjgzN2QuLjRkNTk4
Yzc1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiTGF5b3V0
U2l6ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9s
bEFuaW1hdGlvblNtb290aC5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVk
ZSA8YWxnb3JpdGhtPgogCkBAIC01Miw2ICs1MywxOCBAQCBTY3JvbGxBbmltYXRvcjo6U2Nyb2xs
QW5pbWF0b3IoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKQogI2lmIEVOQUJMRShDU1Nf
U0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICAsIG1fc2Nyb2xsQ29u
dHJvbGxlcigqdGhpcykKICNlbmRpZgorICAgICwgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3Jv
bGwobWFrZVVuaXF1ZTxTY3JvbGxBbmltYXRpb25TbW9vdGg+KHNjcm9sbGFibGVBcmVhLCBtX2N1
cnJlbnRQb3NpdGlvbiwgW3RoaXNdKEZsb2F0UG9pbnQmJiBwb3NpdGlvbikgeworICAgICAgICBh
dXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IG1fc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5
cGUoKTsKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRDdXJyZW50U2Nyb2xsVHlwZShTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMpOworICAgICAgICBib29sIHVwZGF0ZWQgPSBtX3Njcm9sbGFi
bGVBcmVhLnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShyb3VuZGVkSW50UG9pbnQocG9zaXRp
b24pKTsKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2
aW91c1Njcm9sbFR5cGUpOworICAgICAgICBpZiAodXBkYXRlZCkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBGbG9hdFNpemUgZGVsdGEgPSBwb3NpdGlvbiAtIG1fY3VycmVudFBvc2l0
aW9uOworICAgICAgICBtX2N1cnJlbnRQb3NpdGlvbiA9IFdURk1vdmUocG9zaXRpb24pOworICAg
ICAgICBub3RpZnlQb3NpdGlvbkNoYW5nZWQoZGVsdGEpOworICAgIH0pKQogewogfQogCkBAIC03
NSw2ICs4OCwxNCBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LAogICAgIHJldHVybiB0cnVlOwog
fQogCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldChjb25zdCBGbG9hdFBvaW50
JiBvZmZzZXQpCit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGwtPnNldEN1cnJl
bnRQb3NpdGlvbihtX2N1cnJlbnRQb3NpdGlvbik7CisgICAgYXV0byBuZXdQb3NpdGlvbiA9IFNj
cm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0LCB0b0Zsb2F0U2l6
ZShtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CisgICAgbV9hbmltYXRpb25Qcm9n
cmFtbWF0aWNTY3JvbGwtPnNjcm9sbChuZXdQb3NpdGlvbik7CisgICAgbV9zY3JvbGxhYmxlQXJl
YS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRp
dmVBbmltYXRpb24pOworfQorCiB2b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldFdp
dGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGluZykK
IHsKICAgICBGbG9hdFBvaW50IG5ld1Bvc2l0b24gPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9z
aXRpb25Gcm9tT2Zmc2V0KG9mZnNldCwgdG9GbG9hdFNpemUobV9zY3JvbGxhYmxlQXJlYS5zY3Jv
bGxPcmlnaW4oKSkpOwpAQCAtMjQ1LDQgKzI2NiwzMyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yOjpy
ZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50
VAogfQogI2VuZGlmCiAKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMoKQor
eworI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCisgICAgbV9hbmltYXRp
b25Qcm9ncmFtbWF0aWNTY3JvbGwtPnN0b3AoKTsKKyNlbmRpZgorfQorCit2b2lkIFNjcm9sbEFu
aW1hdG9yOjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpCit7CisjaWYgIVVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9USU1FUikKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+
c2VydmljZUFuaW1hdGlvbigpOworI2VuZGlmCit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6Ondp
bGxFbmRMaXZlUmVzaXplKCkKK3sKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+
dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmltYXRvcjo6ZGlkQWRk
VmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikKK3sKKyAgICBtX2FuaW1hdGlvblByb2dyYW1t
YXRpY1Njcm9sbC0+dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmlt
YXRvcjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKQoreworICAgIG1fYW5p
bWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVuZ3RocygpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaAppbmRleCBhNWM2OWM1M2I3Li45YjdjMDliNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgUGxhdGZvcm1Ub3VjaEV2ZW50OworY2xhc3Mg
U2Nyb2xsQW5pbWF0aW9uOwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CiBjbGFzcyBTY3JvbGxiYXI7
CiBjbGFzcyBXaGVlbEV2ZW50VGVzdE1vbml0b3I7CkBAIC02OCw2ICs2OSw3IEBAIHB1YmxpYzoK
ICAgICAvLyBUaGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBhbHdheXMgc2Nyb2xscyBpbW1l
ZGlhdGVseSwgbmV2ZXIgYW5pbWF0ZXMuCiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxi
YXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRp
cGxpZXIpOwogCisgICAgdm9pZCBzY3JvbGxUb09mZnNldChjb25zdCBGbG9hdFBvaW50Jik7CiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9h
dFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAKICAg
ICBTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEoKSBjb25zdCB7IHJldHVybiBtX3Njcm9s
bGFibGVBcmVhOyB9CkBAIC04NSw4ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJl
bnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgY29uc3QgRmxvYXRQb2ludCYgY3Vy
cmVudFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UG9zaXRpb247IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxBbmltYXRpb25zKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNl
cnZpY2VTY3JvbGxBbmltYXRpb25zKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbEFuaW1h
dGlvbnMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBjb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0IHsgfQogICAgIHZp
cnR1YWwgdm9pZCBtb3VzZUVudGVyZWRDb250ZW50QXJlYSgpIHsgfQpAQCAtOTcsMTYgKzk5LDE2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VJc0Rvd25JblNjcm9sbGJhcihTY3Jv
bGxiYXIqLCBib29sKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0TGl2ZVJl
c2l6ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1Jlc2l6ZWQoKSBjb25zdCB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgd2lsbEVuZExpdmVSZXNpemUoKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbEVuZExpdmVSZXNpemUoKTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGVudEFyZWFEaWRT
aG93KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRBcmVhRGlkSGlkZSgpIHsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGxvY2tPdmVybGF5U2Nyb2xsYmFyU3RhdGVUb0hpZGRlbihib29sKSB7
IH0KICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc0NhbkJlQWN0aXZlKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNj
cm9sbGJhciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcihT
Y3JvbGxiYXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVZlcnRpY2FsU2Nyb2xsYmFy
KFNjcm9sbGJhciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xs
YmFyKFNjcm9sbGJhciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Ny
b2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRh
bFNjcm9sbGJhcihTY3JvbGxiYXIqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
U2Nyb2xsYmFyUGFydExheWVycyhTY3JvbGxiYXIqKSB7IH0KQEAgLTE1MSw2ICsxNTMsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgU2Nyb2xsQ29udHJvbGxlciBtX3Njcm9sbENvbnRyb2xsZXI7CiAjZW5k
aWYKICAgICBGbG9hdFBvaW50IG1fY3VycmVudFBvc2l0aW9uOworCisgICAgc3RkOjp1bmlxdWVf
cHRyPFNjcm9sbEFuaW1hdGlvbj4gbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGw7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMu
aAppbmRleCA4OTExNDkxMDNkLi5mNmQzNTY2NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFR5cGVzLmgKQEAgLTU0LDYgKzU0LDIxIEBAIGVudW0gY2xhc3MgU2Nyb2xsUG9zaXRpb25D
bGFtcCA6IHVpbnQ4X3QgewogICAgIFRvQ29udGVudEVkZ2VzLAogfTsKIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCitlbnVtIGNsYXNzIFNjcm9s
bEJlaGF2aW9yVHlwZSA6IHVpbnQ4X3QgeworICAgIEluc3RhbnQsCisgICAgU21vb3RoLAorfTsK
KyNlbmRpZgorCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2aW9yU3RhdHVzIDogdWludDhfdCB7Cisg
ICAgTm90SW5BbmltYXRpb24sCisgICAgSW5Ob25OYXRpdmVBbmltYXRpb24sCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBJbk5hdGl2ZUFu
aW1hdGlvbiwKKyNlbmRpZgorfTsKKwogaW5saW5lIFNjcm9sbERpcmVjdGlvbiBsb2dpY2FsVG9Q
aHlzaWNhbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBpc1ZlcnRpY2Fs
LCBib29sIGlzRmxpcHBlZCkKIHsKICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCBiMTI2YTljMmI3Li4xZDJjMzJlYTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDYxLDEwICs0NjEsMTQg
QEAgdm9pZCBTY3JvbGxWaWV3Ojpjb21wbGV0ZVVwZGF0ZXNBZnRlclNjcm9sbFRvKGNvbnN0IElu
dFNpemUmIHNjcm9sbERlbHRhKQogICAgIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3Jv
bGxpbmcoKTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBT
Y3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgYm9vbC8qIGFu
aW1hdGVkKi8pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJT
Y3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKIAorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0
Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpOwor
I2VuZGlmCisKICAgICBpZiAocHJvaGliaXRzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybjsK
IApAQCAtNDc1LDEzICs0NzksMTcgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlv
bihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAKICAgICBTY3JvbGxQb3Np
dGlvbiBuZXdTY3JvbGxQb3NpdGlvbiA9ICFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSA/IGFkanVzdFNj
cm9sbFBvc2l0aW9uV2l0aGluUmFuZ2Uoc2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xsUG9zaXRpb247
CiAKLSAgICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgp
ID09IFNjcm9sbFR5cGU6OlVzZXIpICYmIG5ld1Njcm9sbFBvc2l0aW9uID09IHRoaXMtPnNjcm9s
bFBvc2l0aW9uKCkpCisgICAgaWYgKCghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgfHwgY3VycmVudFNj
cm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKSAmJiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JT
dGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYgbmV3U2Ny
b2xsUG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKICAgICAgICAgcmV0dXJuOwog
CisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5j
YW5jZWxBbmltYXRpb25zKCk7CisKICAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
KG5ld1Njcm9sbFBvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdXBkYXRlU2Nyb2xs
YmFycyhuZXdTY3JvbGxQb3NpdGlvbik7CisgICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Ny
b2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIH0KIAogYm9vbCBTY3JvbGxWaWV3
OjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCkBAIC01MzgsNyArNTQ2LDggQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3Jv
bGxiYXJzKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXNpcmVkUG9zaXRpb24pCiAgICAgCiAgICAg
aWYgKCFtYW5hZ2VzU2Nyb2xsYmFycygpKSB7CiAgICAgICAgIGlmIChzY3JvbGxPcmlnaW5DaGFu
Z2VkKCkpIHsKLSAgICAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhv
dXRBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOwor
ICAgICAgICAgICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoZGVzaXJlZFBvc2l0
aW9uKSkKKyAgICAgICAgICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRo
b3V0QW5pbWF0aW9uKHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihkZXNpcmVkUG9zaXRpb24pKTsK
ICAgICAgICAgICAgIHJlc2V0U2Nyb2xsT3JpZ2luQ2hhbmdlZCgpOwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCA0MzAxNjBk
NmFlLi41Mzk4MTA4Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0y
NjAsNyArMjYwLDcgQEAgcHVibGljOgogICAgIFNjcm9sbFBvc2l0aW9uIGNhY2hlZFNjcm9sbFBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAg
Ly8gRnVuY3Rpb25zIGZvciBzY3JvbGxpbmcgdGhlIHZpZXcuCi0gICAgdmlydHVhbCB2b2lkIHNl
dFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJik7CisgICAgdmlydHVhbCB2b2lk
IHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgYm9vbCBhbmltYXRlZCA9
IGZhbHNlKTsKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEludFNpemUmIHMpIHsgcmV0dXJuIHNl
dFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKCkgKyBzKTsgfQogCiAgICAgLy8gVGhpcyBm
dW5jdGlvbiBzY3JvbGxzIGJ5IGxpbmVzLCBwYWdlcyBvciBwaXhlbHMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggOTZkMGYzMDBiMy4uMTUwNzA0YzJk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNzEs
NiArNzEsOSBAQCBTY3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEoKQogICAgICwgbV9zY3Jv
bGxPcmlnaW5DaGFuZ2VkKGZhbHNlKQogICAgICwgbV9jdXJyZW50U2Nyb2xsVHlwZShzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oU2Nyb2xsVHlwZTo6VXNlcikpCiAgICAgLCBtX3Njcm9sbFNob3VsZENs
ZWFyTGF0Y2hlZFN0YXRlKGZhbHNlKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCisgICAgLCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCkpCisjZW5kaWYK
IHsKIH0KIApAQCAtMTQyLDYgKzE0NSwxMiBAQCBib29sIFNjcm9sbGFibGVBcmVhOjpzY3JvbGwo
U2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYQogICAg
IHJldHVybiBzY3JvbGxBbmltYXRvcigpLnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHks
IHN0ZXAsIG11bHRpcGxpZXIpOwogfQogCit2b2lkIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09m
ZnNldFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGlu
ZykKK3sKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGFi
bGVBcmVhICIgPDwgdGhpcyA8PCAiIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbiAiIDw8IG9m
ZnNldCk7CisgICAgc2Nyb2xsQW5pbWF0b3IoKS5zY3JvbGxUb09mZnNldChvZmZzZXQpOworfQor
CiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29u
c3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGFibGVBcmVhICIgPDwg
dGhpcyA8PCAiIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbiAiIDw8IG9mZnNldCk7CkBA
IC0yMjEsMTYgKzIzMCwxNSBAQCBib29sIFNjcm9sbGFibGVBcmVhOjpoYW5kbGVUb3VjaEV2ZW50
KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgdG91Y2hFdmVudCkKIC8vIE5PVEU6IE9ubHkgY2Fs
bGVkIGZyb20gSW50ZXJuYWxzIGZvciB0ZXN0aW5nLgogdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2V0
U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFscyhjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKIHsK
KyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9m
ZnNldChvZmZzZXQpKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgc2V0U2Nyb2xsT2Zmc2V0RnJv
bUFuaW1hdGlvbihvZmZzZXQpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxP
ZmZzZXRGcm9tQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogewotICAgIFNj
cm9sbFBvc2l0aW9uIHBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCk7
Ci0gICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShwb3NpdGlvbikpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZChwb3NpdGlvbik7CisgICAgc2Ny
b2xsUG9zaXRpb25DaGFuZ2VkKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKTsKIH0K
IAogdm9pZCBTY3JvbGxhYmxlQXJlYTo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCBkNzQzOGMxNWNkLi41NTY3MmY4MWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTYyLDcgKzYy
LDExIEBAIGlubGluZSBpbnQgb2Zmc2V0Rm9yT3JpZW50YXRpb24oU2Nyb2xsT2Zmc2V0IG9mZnNl
dCwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50CiAKIGNsYXNzIFNjcm9sbGFibGVBcmVhIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiB7CiBwdWJsaWM6CisgICAgU2Ny
b2xsQmVoYXZpb3JTdGF0dXMgY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgeyByZXR1cm4g
bV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXM7IH0KKyAgICB2b2lkIHNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzIHN0YXR1cykgeyBtX2N1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1cyA9IHN0YXR1czsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3Jv
bGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9
IDEpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1h
dGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6
Q2xhbXBlZCk7CiAgICAgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oU2Nyb2xs
YmFyT3JpZW50YXRpb24sIGZsb2F0IG9mZnNldCk7CiAKQEAgLTI0Miw2ICsyNDYsMTEgQEAgcHVi
bGljOgogICAgIFNjcm9sbFR5cGUgY3VycmVudFNjcm9sbFR5cGUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxTY3JvbGxUeXBlPihtX2N1cnJlbnRTY3JvbGxUeXBlKTsgfQogICAgIHZvaWQg
c2V0Q3VycmVudFNjcm9sbFR5cGUoU2Nyb2xsVHlwZSBzY3JvbGxUeXBlKSB7IG1fY3VycmVudFNj
cm9sbFR5cGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Nyb2xsVHlwZSk7IH0KIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgU2Nyb2xs
QmVoYXZpb3JUeXBlIGN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxTY3JvbGxCZWhhdmlvclR5cGU+KG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZSk7IH0KKyAgICB2b2lkIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZp
b3JUeXBlIHNjcm9sbEJlaGF2aW9yVHlwZSkgeyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorI2VuZGlmCisK
ICAgICBib29sIHNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZTsgfQogICAgIHZvaWQgc2V0U2Nyb2xsU2hv
dWxkQ2xlYXJMYXRjaGVkU3RhdGUoYm9vbCBzaG91bGRDbGVhcikgeyBtX3Njcm9sbFNob3VsZENs
ZWFyTGF0Y2hlZFN0YXRlID0gc2hvdWxkQ2xlYXI7IH0KIApAQCAtMzc4LDYgKzM4Nyw4IEBAIHBy
aXZhdGU6CiAgICAgdW5zaWduZWQgbV9jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleCB7IDAg
fTsKICNlbmRpZgogCisgICAgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgbV9jdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMgeyBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gfTsKKwog
ICAgIC8vIFRoZXJlIGFyZSA4IHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB3cml0aW5nIG1vZGUg
YW5kIGRpcmVjdGlvbi4gU2Nyb2xsIG9yaWdpbiB3aWxsIGJlIG5vbi16ZXJvIGluIHRoZSB4IG9y
IHkgYXhpcwogICAgIC8vIGlmIHRoZXJlIGlzIGFueSByZXZlcnNlZCBkaXJlY3Rpb24gb3Igd3Jp
dGluZy1tb2RlLiBUaGUgY29tYmluYXRpb25zIGFyZToKICAgICAvLyB3cml0aW5nLW1vZGUgLyBk
aXJlY3Rpb24gICAgIHNjcm9sbE9yaWdpbi54KCkgc2V0ICAgIHNjcm9sbE9yaWdpbi55KCkgc2V0
CkBAIC00MDMsNiArNDE0LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3Njcm9sbE9yaWdp
bkNoYW5nZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbFR5cGUgOiAxOyAvLyBT
Y3JvbGxUeXBlCiAgICAgdW5zaWduZWQgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSA6
IDE7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
KyAgICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgOiAxOworI2VuZGlmCiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAKaW5kZXggMjA4YWY3
Yjg0Ny4uYWQzMzJjMzI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2Vu
ZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcApAQCAtMTYyLDYgKzE2Miw4IEBA
IHZvaWQgU2Nyb2xsQW5pbWF0b3JHZW5lcmljOjp3aWxsRW5kTGl2ZVJlc2l6ZSgpCiAKIHZvaWQg
U2Nyb2xsQW5pbWF0b3JHZW5lcmljOjp1cGRhdGVQb3NpdGlvbihGbG9hdFBvaW50JiYgcG9zaXRp
b24pCiB7CisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEucmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBk
YXRlKHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpKQorICAgICAgICByZXR1cm47CiAgICAgRmxv
YXRTaXplIGRlbHRhID0gcG9zaXRpb24gLSBtX2N1cnJlbnRQb3NpdGlvbjsKICAgICBtX2N1cnJl
bnRQb3NpdGlvbiA9IFdURk1vdmUocG9zaXRpb24pOwogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdl
ZChkZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0
b3JNYWMubW0KaW5kZXggZjU5MTc2NzJlZS4uNjM3NTNhZDI2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtMTE1NSw2ICsxMTU1
LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChj
b25zdCBGbG9hdFNpemUmIGRlbHRhKQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpjYW5jZWxB
bmltYXRpb25zKCkKIHsKKyAgICBTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucygpOwog
ICAgIG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZCA9IGZhbHNlOwogCiAgICAgaWYgKHNjcm9s
bGJhclBhaW50VGltZXJJc0FjdGl2ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAppbmRleCBmOGQzYTQ5MjVhLi42ZDFmODU3Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcApAQCAtNTgxLDIwICs1ODEsMjggQEAgc3RhdGljIHZvaWQgc2V0dXBX
aGVlbEV2ZW50TW9uaXRvcihSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgbGF5ZXIuc2Nyb2xsQW5p
bWF0b3IoKS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocGFnZS53aGVlbEV2ZW50VGVzdE1vbml0
b3IoKSk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5k
ZXJCb3g6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwg
Ym9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgaWYgKCFoYXNP
dmVyZmxvd0NsaXAoKSB8fCAhbGF5ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHNldHVwV2hl
ZWxFdmVudE1vbml0b3IoKmxheWVyKCkpOwotICAgIGxheWVyKCktPnNjcm9sbFRvWFBvc2l0aW9u
KG5ld0xlZnQsIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1hQ
b3NpdGlvbihuZXdMZWZ0LCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCi12
b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xs
VG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwgU2Ny
b2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAoKSB8fCAh
bGF5ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHNldHVwV2hlZWxFdmVudE1vbml0b3IoKmxh
eWVyKCkpOwotICAgIGxheWVyKCktPnNjcm9sbFRvWVBvc2l0aW9uKG5ld1RvcCwgc2Nyb2xsVHlw
ZSwgY2xhbXBpbmcpOworICAgIGxheWVyKCktPnNjcm9sbFRvWVBvc2l0aW9uKG5ld1RvcCwgc2Ny
b2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKK30KKwordm9pZCBSZW5kZXJCb3g6OnNldFNj
cm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBz
Y3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3sKKyAg
ICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQorICAgICAgICByZXR1cm47Cisg
ICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7CisgICAgbGF5ZXIoKS0+c2Nyb2xs
VG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0K
IAogdm9pZCBSZW5kZXJCb3g6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywg
Y29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDQ5NTQ4MTQwNTQuLjIyMTkyODA1NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTI0Nyw4ICsyNDcsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBpbnQgc2Nyb2xsVG9wKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgc2Nyb2xs
V2lkdGgoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1w
aW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3Jv
bGxUb3AoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpD
bGFtcGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUs
IGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6
Q2xhbXBlZCk7CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUs
IGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6
Q2xhbXBlZCk7CisgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlv
biYsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSwgU2Nyb2xsQ2xhbXBpbmcgPSBT
Y3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAKICAgICBMYXlvdXRVbml0IG1hcmdpblRvcCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94LnRvcCgpOyB9CiAgICAgTGF5b3V0VW5p
dCBtYXJnaW5Cb3R0b20oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX21hcmdpbkJveC5ib3R0
b20oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZDg0
YWQxYTFkYS4uNjEzYTZhZmEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCkBAIC0yNTc1LDE2ICsyNTc1LDI0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmFwcGx5UG9z
dExheW91dFNjcm9sbFBvc2l0aW9uSWZOZWVkZWQoKQogICAgIG1fcG9zdExheW91dFNjcm9sbFBv
c2l0aW9uID0gV1RGOjpudWxsb3B0OwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1hQ
b3NpdGlvbihpbnQgeCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFt
cGluZykKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxU
eXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQog
ewogICAgIFNjcm9sbFBvc2l0aW9uIHBvc2l0aW9uKHgsIG1fc2Nyb2xsUG9zaXRpb24ueSgpKTsK
LSAgICBzY3JvbGxUb09mZnNldChzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBz
Y3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Ny
b2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6c2Ny
b2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwg
U2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFt
cGluZykKIHsKICAgICBTY3JvbGxQb3NpdGlvbiBwb3NpdGlvbihtX3Njcm9sbFBvc2l0aW9uLngo
KSwgeSk7Ci0gICAgc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0
aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIHNjcm9sbFRvUG9zaXRpb24ocG9zaXRp
b24sIHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5
ZXI6OnNjcm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5n
KQoreworICAgIGlmIChhbmltYXRlZCkKKyAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0
aW9uKHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1w
aW5nKTsKKyAgICBlbHNlCisgICAgICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldEZyb21Q
b3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKIH0KIAogU2Nyb2xsT2Zm
c2V0IFJlbmRlckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNj
cm9sbE9mZnNldCkgY29uc3QKQEAgLTI1OTQsMjIgKzI2MDIsNjggQEAgU2Nyb2xsT2Zmc2V0IFJl
bmRlckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9m
ZnNldCkgY28KIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQoY29uc3QgU2Nyb2xs
T2Zmc2V0JiBzY3JvbGxPZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcgY2xhbXBpbmcpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2
aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKworICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24p
CisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOworCiAgICAgU2Ny
b2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGlu
Zzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCkgOiBzY3JvbGxPZmZz
ZXQ7Ci0gICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkp
CisgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpIHsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAg
ICAgICAvLyBJZiBVSVNjcm9sbFZpZXcgaXMgcGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24s
IHRoZSBzY3JvbGwgb2Zmc2V0IG9mIHRoZSBXZWIgcHJvY2VzcyBtaWdodCBiZSBvdmVycmlkZGVu
LgorICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGNhbGwgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBk
YXRlIGhlcmUgYW5kIGxldCBpdCBiZSBjaGVja2VkIG9uIHRoZSBVSSBwcm9jZXNzLgorICAgICAg
ICAvLyBJZiB0aGUgc2Nyb2xsIG9mZnNldCBvbiB0aGUgVUkgcHJvY2VzcyBpcyBkaWZmZXJlbnQs
IHRoZSBjb3JyZWN0IHNjcm9sbCBvZmZzZXQgbmVlZHMgdG8gc3luYyBiYWNrIHRvIHRoZSBXZWIg
cHJvY2Vzcy4KKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgICAgIHJlcXVl
c3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQoY2xhbXBlZFNj
cm9sbE9mZnNldCkpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRv
IHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVu
dFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CiAKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKICNp
ZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciog
c2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlKCkuc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKLSAg
ICAgICAgaGFuZGxlZCA9IHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5yZXF1ZXN0U2Nyb2xsUG9zaXRp
b25VcGRhdGUoKnRoaXMsIHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zm
c2V0KSk7CisgICAgaGFuZGxlZCA9IHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQ
b3NpdGlvbkZyb21PZmZzZXQoY2xhbXBlZFNjcm9sbE9mZnNldCkpOwogI2VuZGlmCiAKLSAgICBp
ZiAoIWhhbmRsZWQpCisgICAgaWYgKCFoYW5kbGVkKSB7CiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0
V2l0aG91dEFuaW1hdGlvbihjbGFtcGVkU2Nyb2xsT2Zmc2V0LCBjbGFtcGluZyk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1h
dGlvbik7CisgICAgfQorCisgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxU
eXBlKTsKK30KKworYm9vbCBSZW5kZXJMYXllcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
KGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyNpZiBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQorICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0
b3IgPSBwYWdlKCkuc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgcmV0dXJuIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yLT5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKnRoaXMsIHBvc2l0
aW9uKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KIAordm9pZCBSZW5kZXJMYXllcjo6
c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGF1
dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAg
c2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyNlbmRpZgorCisgICAgU2Nyb2xsT2Zmc2V0IG5ld1Njcm9sbE9mZnNldCA9IGNs
YW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQob2Zm
c2V0KSA6IG9mZnNldDsKKyAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0g
U2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICBzY3Jv
bGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKKyAgICBpZiAobmV3U2Nyb2xsT2Zmc2V0
ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xs
VG9PZmZzZXRXaXRoQW5pbWF0aW9uKG5ld1Njcm9sbE9mZnNldCk7CiAgICAgc2V0Q3VycmVudFNj
cm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKIH0KIApAQCAtMjY0NSw3ICsyNjk5LDcgQEAg
dm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9u
KQogI2VuZGlmCiAgICAgfQogICAgIAotICAgIGlmIChtX3Njcm9sbFBvc2l0aW9uID09IG5ld1Bv
c2l0aW9uKSB7CisgICAgaWYgKG1fc2Nyb2xsUG9zaXRpb24gPT0gbmV3UG9zaXRpb24gJiYgY3Vy
cmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdElu
QW5pbWF0aW9uKSB7CiAgICAgICAgIC8vIEZJWE1FOiBOb3RoaW5nIGd1YXJhbnRlZXMgd2UgZ2V0
IGEgc2Nyb2xsVG8oKSB3aXRoIGFuIHVuY2hhbmdlZCBwb3NpdGlvbiBhdCB0aGUgZW5kIG9mIGEg
dXNlciBnZXN0dXJlLgogICAgICAgICAvLyBUaGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgcHJvYmFi
bHkgbmVlZHMgdG8gbWVzc2FnZSB0aGUgbWFpbiB0aHJlYWQgd2hlbiBhIGdlc3R1cmUgZW5kcy4K
ICAgICAgICAgaWYgKHJlcXVpcmVzU2Nyb2xsUG9zaXRpb25SZWNvbmNpbGlhdGlvbigpKSB7CkBA
IC0yNzkwLDEwICsyODQ0LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2li
bGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgIExh
eW91dFJlY3QgcmV2ZWFsUmVjdCA9IGdldFJlY3RUb0V4cG9zZShsYXllckJvdW5kcywgbG9jYWxF
eHBvc2VSZWN0LCBpbnNpZGVGaXhlZCwgb3B0aW9ucy5hbGlnblgsIG9wdGlvbnMuYWxpZ25ZKTsK
IAogICAgICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1wU2Nyb2xs
T2Zmc2V0KHNjcm9sbE9mZnNldCgpICsgdG9JbnRTaXplKHJvdW5kZWRJbnRSZWN0KHJldmVhbFJl
Y3QpLmxvY2F0aW9uKCkpKTsKLSAgICAgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Ny
b2xsT2Zmc2V0KCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygp
ICE9IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiB8fCBjbGFtcGVkU2Nyb2xs
T2Zmc2V0ICE9IHNjcm9sbE9mZnNldCgpKSB7CiAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgb2xk
U2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0KCk7Ci0gICAgICAgICAgICBzY3JvbGxUb09mZnNl
dChjbGFtcGVkU2Nyb2xsT2Zmc2V0KTsKLSAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0
RGlmZmVyZW5jZSA9IHNjcm9sbE9mZnNldCgpIC0gb2xkU2Nyb2xsT2Zmc2V0OworICAgICAgICAg
ICAgYm9vbCBhbmltYXRlZCA9IChib3gtPmVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmco
b3B0aW9ucy5iZWhhdmlvciwgKmJveC0+ZWxlbWVudCgpKSk7CisgICAgICAgICAgICBzY3JvbGxU
b1Bvc2l0aW9uKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwg
U2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7CisgICAgICAgICAgICBJbnRTaXpl
IHNjcm9sbE9mZnNldERpZmZlcmVuY2UgPSBjbGFtcGVkU2Nyb2xsT2Zmc2V0IC0gb2xkU2Nyb2xs
T2Zmc2V0OwogICAgICAgICAgICAgbG9jYWxFeHBvc2VSZWN0Lm1vdmUoLXNjcm9sbE9mZnNldERp
ZmZlcmVuY2UpOwogICAgICAgICAgICAgbmV3UmVjdCA9IExheW91dFJlY3QoYm94LT5sb2NhbFRv
QWJzb2x1dGVRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobG9jYWxFeHBvc2VSZWN0KSksIFVzZVRy
YW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwogICAgICAgICB9CkBAIC0yODEzLDEwICsyODY4LDEz
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVj
dCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCB2
aWV3UmVjdCA9IGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoTGVnYWN5SU9TRG9jdW1lbnRW
aXNpYmxlUmVjdCk7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBleHBvc2VSZWN0ID0gZ2V0
UmVjdFRvRXhwb3NlKHZpZXdSZWN0LCBhYnNvbHV0ZVJlY3QsIGluc2lkZUZpeGVkLCBvcHRpb25z
LmFsaWduWCwgb3B0aW9ucy5hbGlnblkpOwogCi0gICAgICAgICAgICAgICAgSW50UG9pbnQgc2Ny
b2xsT2Zmc2V0KHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkpKTsKKyAgICAg
ICAgICAgICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbihyb3VuZGVkSW50UG9pbnQoZXhwb3Nl
UmVjdC5sb2NhdGlvbigpKSk7CiAgICAgICAgICAgICAgICAgLy8gQWRqdXN0IG9mZnNldHMgaWYg
dGhleSdyZSBvdXRzaWRlIG9mIHRoZSBhbGxvd2FibGUgcmFuZ2UuCi0gICAgICAgICAgICAgICAg
c2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2ludCgp
LCBJbnRQb2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKLSAgICAgICAgICAgICAgICBm
cmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsT2Zmc2V0KTsKKyAgICAgICAgICAgICAg
ICBzY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQ
b2ludCgpLCBJbnRQb2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKKyAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBjb250ZW50RG9jdW1lbnQoKS0+c2Nyb2xsaW5n
RWxlbWVudCgpPworICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9
IG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCkgJiYgb3duZXJFbGVtZW50LT5jb250ZW50
RG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlv
bnMuYmVoYXZpb3IsICpvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1bWVudEVs
ZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKHNj
cm9sbFBvc2l0aW9uLCBhbmltYXRlZCk7CiAKICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5z
aG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nID09IFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5T
Y3JvbGxpbmc6OlllcyB8fCBmcmFtZVZpZXcuc2FmZVRvUHJvcGFnYXRlU2Nyb2xsVG9QYXJlbnQo
KSkgewogICAgICAgICAgICAgICAgICAgICBwYXJlbnRMYXllciA9IG93bmVyRWxlbWVudC0+cmVu
ZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKTsKQEAgLTI4NTUsNyArMjkxMywxMCBAQCB2b2lkIFJl
bmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRl
UmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAgICAgLy8gQXZvaWQgc2Nyb2xsaW5nIHRvIHRoZSBy
b3VuZGVkIHZhbHVlIG9mIHJldmVhbFJlY3QubG9jYXRpb24oKSBpZiB3ZSBkb24ndCBhY3R1YWxs
eSBuZWVkIHRvIHNjcm9sbAogICAgICAgICAgICAgaWYgKHJldmVhbFJlY3QgIT0gdmlld1JlY3Qp
IHsKICAgICAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbFBvc2l0aW9uID0g
cm91bmRlZEludFBvaW50KHJldmVhbFJlY3QubG9jYXRpb24oKSkuY29uc3RyYWluZWRCZXR3ZWVu
KG1pblNjcm9sbFBvc2l0aW9uLCBtYXhTY3JvbGxQb3NpdGlvbik7Ci0gICAgICAgICAgICAgICAg
ZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7CisgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2UgZG9jdW1lbnQoKS0+c2Nyb2xsaW5n
RWxlbWVudCgpPworICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9
IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3Jv
bGxpbmcob3B0aW9ucy5iZWhhdmlvciwgKnJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kb2N1bWVudEVs
ZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNs
YW1wZWRTY3JvbGxQb3NpdGlvbiwgYW5pbWF0ZWQpOwogICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICAvLyBUaGlzIGlzIHRoZSBvdXRlcm1vc3QgdmlldyBvZiBhIHdlYiBwYWdlLCBzbyBhZnRl
ciBzY3JvbGxpbmcgdGhpcyB2aWV3IHdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCmluZGV4IDZjYTQyMmI3YjIuLjhjOTc3ODM3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHRyLmgiCisjaW5jbHVk
ZSAiU2Nyb2xsQmVoYXZpb3IuaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1
ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtMTM0LDYgKzEzNSw3IEBA
IHN0cnVjdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9ucyB7CiAgICAgY29uc3QgU2Nyb2xsQWxp
Z25tZW50JiBhbGlnblggeyBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQgfTsK
ICAgICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSB7IFNjcm9sbEFsaWdubWVudDo6YWxp
Z25DZW50ZXJJZk5lZWRlZCB9OwogICAgIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcg
c2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyB7IFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5T
Y3JvbGxpbmc6Ok5vIH07CisgICAgU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IgeyBTY3JvbGxCZWhh
dmlvcjo6QXV0byB9OwogfTsKIAogY2xhc3MgUmVuZGVyTGF5ZXIgZmluYWwgOiBwdWJsaWMgU2Ny
b2xsYWJsZUFyZWEgewpAQCAtNDM5LDkgKzQ0MSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3Jv
bGxCeVJlY3Vyc2l2ZWx5KGNvbnN0IEludFNpemUmIGRlbHRhLCBTY3JvbGxhYmxlQXJlYSoqIHNj
cm9sbGVkQXJlYSA9IG51bGxwdHIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxU
b09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBT
Y3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3Jv
bGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAotICAgIHZvaWQgc2Nyb2xs
VG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xh
bXBpbmc6OkNsYW1wZWQpOwotICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9s
bFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIGJv
b2wgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgb3Zl
cnJpZGU7CisKKyAgICB2b2lkIHNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlLCBi
b29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsK
KyAgICB2b2lkIHNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlLCBib29sIGFuaW1h
dGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2b2lk
IHNjcm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlLCBib29s
IGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAog
ICAgIC8vIFRoZXNlIGFyZSBvbmx5IHVzZWQgYnkgbWFycXVlZS4KICAgICB2b2lkIHNjcm9sbFRv
WE9mZnNldChpbnQgeCkgeyBzY3JvbGxUb09mZnNldChTY3JvbGxPZmZzZXQoeCwgc2Nyb2xsT2Zm
c2V0KCkueSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6VW5j
bGFtcGVkKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmlu
ZGV4IDI1Y2QyZDMzYTcuLmMzM2U5MDYwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAKQEAgLTc0Myw3ICs3NDMsNyBAQCBpbnQgUmVuZGVyTGlzdEJveDo6
c2Nyb2xsTGVmdCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJv
eDo6c2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBS
ZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xs
Q2xhbXBpbmcpCiB7CiB9CiAKQEAgLTc2MCw3ICs3NjAsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcihSZW5kZXJMaXN0Qm94JiByZW5kZXJlcikKICAgICByZW5kZXJl
ci5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihyZW5kZXJlci5wYWdl
KCkud2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwogfQogCi12b2lkIFJlbmRlckxpc3RCb3g6OnNl
dFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQg
UmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJvb2ws
IFNjcm9sbENsYW1waW5nKQogewogICAgIC8vIERldGVybWluZSBhbiBpbmRleCBhbmQgc2Nyb2xs
IHRvIGl0LiAgICAKICAgICBpbnQgaW5kZXggPSBuZXdUb3AgLyBpdGVtSGVpZ2h0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAppbmRleCA2NWQ5MjI2YjNhLi4yNWM5
MDY1MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTEw
Niw4ICsxMDYsOCBAQCBwcml2YXRlOgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBpbnQgc2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xs
SGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Ny
b2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9w
KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0
U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENs
YW1waW5nKSBvdmVycmlkZTsKIAogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJl
cXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbklu
Q29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RB
Y3Rpb24pIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IDllZTg4ODg2NzEuLjRkZjdk
MzE4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0zNzYsMTMgKzM3NiwxMyBAQCBpbnQgUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzY3JvbGxUb3AoKSBjb25zdAogICAgIHJldHVybiBSZW5k
ZXJCbG9ja0Zsb3c6OnNjcm9sbFRvcCgpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcpCit2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsTGVmdChp
bnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpCiB7CiAgICAgaWYg
KGlubmVyVGV4dEVsZW1lbnQoKSkKICAgICAgICAgaW5uZXJUZXh0RWxlbWVudCgpLT5zZXRTY3Jv
bGxMZWZ0KG5ld0xlZnQpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6
c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9p
ZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBT
Y3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxl
bWVudCgpKQogICAgICAgICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbFRvcChuZXdUb3Ap
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oCmluZGV4IDNmNTc4NmRmZTQuLjY2NmFhMzE0NTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgK
QEAgLTU3LDggKzU3LDggQEAgcHJpdmF0ZToKICAgICBpbnQgc2Nyb2xsVG9wKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgaW50IHNjcm9sbFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IHNj
cm9sbEhlaWdodCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQs
IFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFNjcm9s
bFRvcChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykgb3Zl
cnJpZGU7CisgICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3Jv
bGxDbGFtcGluZykgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBT
Y3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIEVsZW1lbnQqKiBzdG9wRWxl
bWVudCA9IG51bGxwdHIsIFJlbmRlckJveCogc3RhcnRCb3ggPSBudWxscHRyLCBjb25zdCBJbnRQ
b2ludCYgd2hlZWxFdmVudEFic29sdXRlUG9pbnQgPSBJbnRQb2ludCgpKSBmaW5hbDsKICAgICBi
b29sIGxvZ2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLCBFbGVtZW50Kiogc3RvcEVsZW1lbnQgPSAwKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRl
eCA1ZGNiMjFjNjQ2Li4wMDdhNGQxMzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNzM2LDYgKzczNiw4IEBAIHB1YmxpYzoKICAgICBib29s
IHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBtX3JhcmVJbmhlcml0
ZWREYXRhLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nOyB9CiAjZW5kaWYKIAorICAgIGJvb2wg
dXNlU21vb3RoU2Nyb2xsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0
YS0+dXNlU21vb3RoU2Nyb2xsaW5nOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQog
ICAgIFRleHRTaXplQWRqdXN0bWVudCB0ZXh0U2l6ZUFkanVzdCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFyZUluaGVyaXRlZERhdGEtPnRleHRTaXplQWRqdXN0OyB9CiAgICAgQXV0b3NpemVTdGF0dXMg
YXV0b3NpemVTdGF0dXMoKSBjb25zdDsKQEAgLTEyNjcsNiArMTI2OSw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoYm9vbCB2KSB7IFNFVF9WQVIobV9y
YXJlSW5oZXJpdGVkRGF0YSwgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZywgdik7IH0KICNlbmRp
ZgogCisgICAgdm9pZCBzZXRVc2VTbW9vdGhTY3JvbGxpbmcoYm9vbCB2KSB7IFNFVF9WQVIobV9y
YXJlTm9uSW5oZXJpdGVkRGF0YSwgdXNlU21vb3RoU2Nyb2xsaW5nLCB2KTsgfQorCiAjaWYgRU5B
QkxFKFRFWFRfQVVUT1NJWklORykKICAgICB2b2lkIHNldFRleHRTaXplQWRqdXN0KFRleHRTaXpl
QWRqdXN0bWVudCBhZGp1c3RtZW50KSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgdGV4
dFNpemVBZGp1c3QsIGFkanVzdG1lbnQpOyB9CiAgICAgdm9pZCBzZXRBdXRvc2l6ZVN0YXR1cyhB
dXRvc2l6ZVN0YXR1cyk7CkBAIC0xNzA0LDYgKzE3MDgsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGJvb2wgaW5pdGlhbFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxzZTsg
fQogI2VuZGlmCiAKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNlU21vb3RoU2Nyb2xsaW5nKCkg
eyByZXR1cm4gZmFsc2U7IH0KKwogICAgIHN0YXRpYyBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBp
bml0aWFsRmlsdGVyKCkgeyBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmlsdGVyT3BlcmF0aW9ucz4g
b3BzOyByZXR1cm4gb3BzOyB9CiAgICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGlu
aXRpYWxBcHBsZUNvbG9yRmlsdGVyKCkgeyBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RmlsdGVyT3Bl
cmF0aW9ucz4gb3BzOyByZXR1cm4gb3BzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRl
eCBmYjMyMDgyMzM3Li5kMmE1MzFmYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC04
Nyw2ICs4Nyw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEoKQogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KHN0YXRpY19jYXN0PHVuc2lnbmVk
PihSZW5kZXJTdHlsZTo6aW5pdGlhbEJhY2tmYWNlVmlzaWJpbGl0eSgpKSkKICAgICAsIHVzZXJE
cmFnKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZXJEcmFnKCkp
KQogICAgICwgdGV4dE92ZXJmbG93KHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6
aW5pdGlhbFRleHRPdmVyZmxvdygpKSkKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcoKSkp
CiAgICAgLCBtYXJnaW5CZWZvcmVDb2xsYXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTWFyZ2lu
Q29sbGFwc2U6OkNvbGxhcHNlKSkKICAgICAsIG1hcmdpbkFmdGVyQ29sbGFwc2Uoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KE1hcmdpbkNvbGxhcHNlOjpDb2xsYXBzZSkpCiAgICAgLCBhcHBlYXJhbmNl
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEFwcGVhcmFuY2UoKSkp
CkBAIC0xODAsNiArMTgxLDcgQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIGJhY2tm
YWNlVmlzaWJpbGl0eShvLmJhY2tmYWNlVmlzaWJpbGl0eSkKICAgICAsIHVzZXJEcmFnKG8udXNl
ckRyYWcpCiAgICAgLCB0ZXh0T3ZlcmZsb3coby50ZXh0T3ZlcmZsb3cpCisgICAgLCB1c2VTbW9v
dGhTY3JvbGxpbmcoby51c2VTbW9vdGhTY3JvbGxpbmcpCiAgICAgLCBtYXJnaW5CZWZvcmVDb2xs
YXBzZShvLm1hcmdpbkJlZm9yZUNvbGxhcHNlKQogICAgICwgbWFyZ2luQWZ0ZXJDb2xsYXBzZShv
Lm1hcmdpbkFmdGVyQ29sbGFwc2UpCiAgICAgLCBhcHBlYXJhbmNlKG8uYXBwZWFyYW5jZSkKQEAg
LTI3OCw2ICsyODAsNyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9y
PT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBiYWNr
ZmFjZVZpc2liaWxpdHkgPT0gby5iYWNrZmFjZVZpc2liaWxpdHkKICAgICAgICAgJiYgdXNlckRy
YWcgPT0gby51c2VyRHJhZwogICAgICAgICAmJiB0ZXh0T3ZlcmZsb3cgPT0gby50ZXh0T3ZlcmZs
b3cKKyAgICAgICAgJiYgdXNlU21vb3RoU2Nyb2xsaW5nID09IG8udXNlU21vb3RoU2Nyb2xsaW5n
CiAgICAgICAgICYmIG1hcmdpbkJlZm9yZUNvbGxhcHNlID09IG8ubWFyZ2luQmVmb3JlQ29sbGFw
c2UKICAgICAgICAgJiYgbWFyZ2luQWZ0ZXJDb2xsYXBzZSA9PSBvLm1hcmdpbkFmdGVyQ29sbGFw
c2UKICAgICAgICAgJiYgYXBwZWFyYW5jZSA9PSBvLmFwcGVhcmFuY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5oCmluZGV4IDE5YzU5MWIyZDEuLjE2YTI4NTEzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApA
QCAtMTgxLDYgKzE4MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHVzZXJEcmFnIDogMjsg
Ly8gVXNlckRyYWcKICAgICB1bnNpZ25lZCB0ZXh0T3ZlcmZsb3cgOiAxOyAvLyBXaGV0aGVyIG9y
IG5vdCBsaW5lcyB0aGF0IHNwaWxsIG91dCBzaG91bGQgYmUgdHJ1bmNhdGVkIHdpdGggIi4uLiIK
KyAgICB1bnNpZ25lZCB1c2VTbW9vdGhTY3JvbGxpbmcgOiAxOyAvLyBTY3JvbGxCZWhhdmlvcgog
ICAgIHVuc2lnbmVkIG1hcmdpbkJlZm9yZUNvbGxhcHNlIDogMjsgLy8gTWFyZ2luQ29sbGFwc2UK
ICAgICB1bnNpZ25lZCBtYXJnaW5BZnRlckNvbGxhcHNlIDogMjsgLy8gTWFyZ2luQ29sbGFwc2UK
ICAgICB1bnNpZ25lZCBhcHBlYXJhbmNlIDogNjsgLy8gRUFwcGVhcmFuY2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKaW5kZXggN2YzZjBjYmM0ZS4uZTM4
MjA0ZjY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29u
dmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVy
LmgKQEAgLTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgY29udmVydE92
ZXJmbG93U2Nyb2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAjZW5kaWYK
ICAgICBzdGF0aWMgRm9udEZlYXR1cmVTZXR0aW5ncyBjb252ZXJ0Rm9udEZlYXR1cmVTZXR0aW5n
cyhCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOworICAgIHN0YXRpYyBib29sIGNvbnZl
cnRTbW9vdGhTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKICAgICBz
dGF0aWMgRm9udFNlbGVjdGlvblZhbHVlIGNvbnZlcnRGb250V2VpZ2h0RnJvbVZhbHVlKGNvbnN0
IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIEZvbnRTZWxlY3Rpb25WYWx1ZSBjb252ZXJ0Rm9udFN0
cmV0Y2hGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgT3B0aW9uYWw8Rm9u
dFNlbGVjdGlvblZhbHVlPiBjb252ZXJ0Rm9udFN0eWxlRnJvbVZhbHVlKGNvbnN0IENTU1ZhbHVl
Jik7CkBAIC0xNDAzLDYgKzE0MDQsMTEgQEAgaW5saW5lIGJvb2wgQnVpbGRlckNvbnZlcnRlcjo6
Y29udmVydE92ZXJmbG93U2Nyb2xsaW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1YKIH0KICNl
bmRpZgogCitpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U21vb3RoU2Nyb2xs
aW5nKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICByZXR1cm4g
ZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS52YWx1ZUlEKCkgPT0gQ1NTVmFsdWVT
bW9vdGg7Cit9CisKIGlubGluZSBTVkdMZW5ndGhWYWx1ZSBCdWlsZGVyQ29udmVydGVyOjpjb252
ZXJ0U1ZHTGVuZ3RoVmFsdWUoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQog
ewogICAgIHJldHVybiBTVkdMZW5ndGhWYWx1ZTo6ZnJvbUNTU1ByaW1pdGl2ZVZhbHVlKGRvd25j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IGUwNzc3OTYyZDUuLjcyNDAwODEwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTE3NDYsNyArMTc0Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IElu
dGVybmFsczo6dW5jb25zdHJhaW5lZFNjcm9sbFRvKEVsZW1lbnQmIGVsZW1lbnQsIGRvdWJsZSB4
LCBkCiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkKICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCi0gICAgZWxlbWVudC5zY3Jv
bGxUbyh7IHgsIHkgfSwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CisgICAgZWxlbWVudC5z
Y3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSksIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQp
OwogICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg0NTJlN2Y5MS4uYjI4YWE0ZDBj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxOS0xMi0xMSAgQ2F0aGllIENoZW4gIDxj
YXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBi
ZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZv
cm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkz
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2Vk
IG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIENTU09NIHNt
b290aCBzY3JvbGxpbmcgYXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuIE9uIGlvcyBwbGF0Zm9y
bSwgdXNlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaW50ZXJmYWNlcyB0byBw
ZXJmb3JtYW5jZSBzbW9vdGggc2Nyb2xsIGFuZCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8g
dGhlIFdlYiBwcm9jZXNzLgorCisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZT46OmVuY29kZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZT46OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXApOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAocG9p
bnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbCk6IEhlbHAgZnVuY3Rpb24gdG8gY2hlY2sgaWYg
dHdvIGZsb2F0IHBvaW50cyBhcmUgbm90IGVxdWFsIGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4
ZWwuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246
c2Nyb2xsT3JpZ2luOmFuaW1hdGVkOl0pOiBBZGQgYW5pbWF0ZWQgZmxhZyB0byBzdGFydCBhIGFu
aW1hdGVkIHNjcm9sbCBpZiBuZWVkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBzY3JvbGxWaWV3
RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOl0pOiBTZW5kIHNyb2xsIGVuZCBtZXNzYWdlIHRvIHRo
ZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3Jv
bGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdl
Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnJlcXVlc3RTY3JvbGxXaXRo
QW5pbWF0aW9uKTogUHJvdmlkZSBpbnRlcmZhY2UgZm9yIGFuaW1hdGVkIHNjcm9sbGluZy4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHk6OmNvbW1pdExheWVyVHJlZSk6IEFkZCBhbmltYXRlZCBmbGFnLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNj
cm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKTogU3luYyB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRo
ZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhbmltYXRlZCBz
Y3JvbGxpbmcgaW5mbyB0byBtX3JlcXVlc3RlZFNjcm9sbEluZm8uCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogU3luYyBzY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzRGlkQ2hhbmdlKTogRGl0dG8uIEl0J3Mgc3BlY2lmaWMgdG8gdGhlIHJvb3Qg
bm9kZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxp
bmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6IEFkZCBhbmltYXRlZCBpbmZvLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJl
cXVlc3RzU2Nyb2xsKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdl
KTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW06CisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3Jv
bGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOl0pOiBTZW5kIHNjb2xsIGVuZCBpbmZvIHRv
IHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTogSWYgdGhlIHNjcm9s
bCBwb3NpdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MgaXNuJ3QgZXF1YWwgdG8gdGhlIFVJIHByb2Nl
c3MsCisgICAgICAgIHRoZSBzY3JvbGwgcG9zaXRpb24gc2hvdWxkIGJlIHN5bmNocm9uaXplZCwg
ZXZlbiB0aGVyZSdzIG5vIHNjcm9sbGluZyBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisg
ICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJl
cG9zaXRpb25TY3JvbGxpbmdMYXllcnMpOiBDYWxsaW5nIHRoZSBuYXRpdmUgYW5pbWF0ZWQgc2Ny
b2xsaW5nIGludGVyZmFjZSBmb3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgSWYgdGhlcmUncyBh
IHNjcm9sbCBhbmltYXRpb24gcGVyZm9ybWluZywgaXQgc2hvdWxkIGJlIHN0b3BwZWQgZmlyc3Qs
IHRoZW4gc3RhcnQgYSBuZXcgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5p
bWF0aW9uKTogU3luYyBzY3JvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTY3JvbGwpOiBUbyBjYWxsIGRpZmZlcmVudCBmdW5jdGlvbnMgZm9yIHNt
b290aCBhbmQgaW5zdGFudCBzY3JvbGwuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSk6CisKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0
aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVo
YXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA1MDA5CisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcgYXMgYW4g
ZXhwZXJpbWVudGFsIGZlYXR1cmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBX
YW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAxOS0xMi0xMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgbG9h
ZCBzb29uZXIgb24gc3dpcGUgYmFjay9mb3J3YXJkIG5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAppbmRleCBkN2IxZTE5
MzcyLi41NzQ0ZTFjODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xNTIsNiArMTUyLDkgQEAgdm9pZCBBcmd1bWVudENv
ZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdAogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zLCBzY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMpCiAg
ICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKQogICAgIFNDUk9M
TElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGwpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBTQ1JPTExJTkdfTk9ERV9F
TkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
biwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKQorI2VuZGlmCiAKICAgICBp
ZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8R3Jh
cGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNjcm9sbENvbnRhaW5lckxheWVyKCkp
OwpAQCAtMjYwLDcgKzI2MywxNCBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9sbAogICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAg
Ym9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNj
cm9sbFdpdGhBbmltYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBu
b2RlLnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCByZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxXaXRoQW5pbWF0aW9uKTsKKyNlbHNlCiAgICAgICAg
IG5vZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKG5vZGUuaGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFp
bmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjE4LDkgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMK
ICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkg
ewogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24iLCBu
b2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB0cy5kdW1wUHJvcGVydHko
InJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0aWMiLCBub2RlLnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3Jv
bGwtcG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
V2l0aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICghY2hhbmdlZFByb3Bl
cnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWwKaW5kZXggMmU3YjRiNGZlNC4uZmViMmMzZjg0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzI0LDYgKzEzMjQsMTMgQEAgQmxv
Y2tpbmdPZlNtYWxsUGx1Z2luc0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IlN0b3AgcGx1Z2lucyBzbWFsbGVyIHRoYW4gYSBjZXJ0YWluIHRocmVzaG9sZCBmcm9tIGxvYWRp
bmcuIgogICBjYXRlZ29yeTogaW50ZXJuYWwKIAorQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiQ1NTT00gVmlldyBTbW9vdGggU2Nyb2xsaW5nIgorICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJFbmFibGUgRE9NIEFQSSBhbmQgQ1NTIHByb3BlcnR5IGZvciAnc21vb3RoJyBz
Y3JvbGwgYmVoYXZpb3IiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogV2ViQW5pbWF0aW9u
c0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzMzU0YWM2ZWVj
Li4xMDhlNGMwM2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KQEAgLTE2MTcsNiArMTYxNywxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcG9p
bnRzRXF1YWxJbkRldmljZVBpeGVscyhDR1BvaW50IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2aWNl
UwogICAgICAgICAmJiBmYWJzKGEueSAqIGRldmljZVNjYWxlRmFjdG9yIC0gYi55ICogZGV2aWNl
U2NhbGVGYWN0b3IpIDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKIH0K
IAorc3RhdGljIGlubGluZSBib29sIHBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoQ0dQ
b2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIHJldHVy
biBDR1JvdW5kKGEueCAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueCAqIGRldmlj
ZVNjYWxlRmFjdG9yKQorICAgICAgICAmJiBDR1JvdW5kKGEueSAqIGRldmljZVNjYWxlRmFjdG9y
KSA9PSBDR1JvdW5kKGIueSAqIGRldmljZVNjYWxlRmFjdG9yKTsKK30KIHN0YXRpYyBDR1NpemUg
cm91bmRTY3JvbGxWaWV3Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBh
Z2UsIENHU2l6ZSBjb250ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9
IHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKTsKQEAgLTIzNDEsOSArMjM0NiwxMCBAQCBzdGF0aWMg
V2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0
UG9pbnQgY29udGVudE9mZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0
d2VlbihXZWJDb3JlOjpGbG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNv
bnRlbnRPZmZzZXQpKTsKIH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRp
b246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJD
b3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9s
bFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdp
bjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVk
CiB7Ci0gICAgaWYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNW
aWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpO
b3RSZXNpemluZykKKyAgICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBw
ZWQuCisgICAgaWYgKCFhbmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlv
biB8fCBfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9y
dFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29y
ZTo6RmxvYXRQb2ludCBjb250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xs
T3JpZ2luKSk7CkBAIC0yMzU3LDEzICsyMzYzLDIxIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBv
aW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2Zm
CiAKICAgICBbX3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107
CiAKLSAgICBpZiAoIUNHUG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmll
d0Nvb3JkaW5hdGVzLCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Nj
cm9sbFZpZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXNdOworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1
dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4K
KyAgICAvLyBXZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhl
cmUuCisgICAgaWYgKCFwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZz
ZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBf
cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250
ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDph
bmltYXRlZF07CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBh
bnl0aGluZywgdGhlcmUgd291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRl
IHNlbnQgdG8gdGhlIGNvbnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtl
ZXAgdGhlIGludmFsaWQgY29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAg
ICAgICAvLyBUbyBzeW5jaHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2Ny
ZWVuLCB3ZSBzZW5kIHRoZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdl
LT5yZXNlbmRMYXN0VmlzaWJsZUNvbnRlbnRSZWN0cygpOworICAgICAgICAvLyBJZiBfc2Nyb2xs
VmlldyB3b24ndCBjaGFuZ2UsIHdlIHN0aWxsIG5lZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nlc3Mg
dGhhdCB0aGUgYW5pbWF0aW9uIHN0b3BwZWQuCisgICAgICAgIGlmIChhbmltYXRlZCkgeworICAg
ICAgICAgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGlu
YXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgICAgICAgICBp
ZiAoY29vcmRpbmF0b3IpCisgICAgICAgICAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1Ry
ZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7Cisg
ICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTI4NzksNiArMjg5MywxMCBAQCBzdGF0aWMgV2ViQ29y
ZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQg
Y29udGVudE9mZgogLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihV
SVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiB7CiAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGlu
Z107CisKKyAgICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3Jk
aW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICBpZiAoY29v
cmRpbmF0b3IpCisgICAgICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Nj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOwogfQogCiAtICh2b2lkKV9z
Y3JvbGxWaWV3RGlkSW50ZXJydXB0RGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxW
aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdJbnRlcm5hbC5oCmluZGV4IDQzNTA4MGYzMjQuLjVjYjVmNTgxNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBA
IC05Nyw3ICs5Nyw3IEBAIHN0cnVjdCBQcmludEluZm87CiAKIC0gKFJlZlB0cjxXZWJLaXQ6OlZp
ZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3Q7CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVu
dFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9s
bE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luOworLSAodm9pZClfc2Nyb2xs
VG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRp
b24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6
KEJPT0wpYW5pbWF0ZWQ7CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVj
dCl0YXJnZXRSZWN0IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNj
cm9sbERpc3RhbmNlOihmbG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFuY2U7CiAtIChkb3VibGUpX2lu
aXRpYWxTY2FsZUZhY3RvcjsKIC0gKGRvdWJsZSlfY29udGVudFpvb21TY2FsZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlODQ4MjRmZDg1Li5kZTNkMzM2NzlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDggQEAgcHVibGlj
OgogICAgIC8vIFRlbGwgdGhlIHZpZXcgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBwb3NpdGlvbiwg
YW5kIHdoZXRoZXIgdGhpcyB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgogICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxP
cmlnaW4pIHsgfQorCiAgICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiAo
bm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwg
YmVjYXVzZSBvZiBzY2FsaW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZs
b2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDM4MGYxMjQ0NDMuLjBhNDJmOTQ0
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1t
CkBAIC0yMjQsOCArMjI0LDE0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAKICAgICAvLyBI
YW5kbGUgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzIGZyb20gdGhlIHNjcm9sbGlu
ZyB0cmVlIHRyYW5zYWN0aW9uIGFmdGVyIGRpZENvbW1pdExheWVyVHJlZSgpCiAgICAgLy8gaGFz
IHVwZGF0ZWQgdGhlIHZpZXcgc2l6ZSBiYXNlZCBvbiB0aGUgY29udGVudCBzaXplLgotICAgIGlm
IChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpCi0gICAg
ICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCkp
OworICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRh
dGUpIHsKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3Jv
bGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAsIGxheWVyVHJlZVRy
YW5zYWN0aW9uLnNjcm9sbE9yaWdpbigpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAg
ICAgICAgICwgcmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0V2l0aEFuaW1hdGlvbgorI2VuZGlm
CisgICAgICAgICAgICApOworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQogCiAgICAgaWYgKG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0KSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggNDgyM2Y3NmE5
Ny4uMWQ0MGE2YTZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6
CiB9CiAKIC8vIFRoaXMgY29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUuCi12b2lkIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNj
cm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xs
UG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdp
biwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVl
Tm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0
UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5
b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikK
IHsKICAgICAvLyBTY3JvbGwgdXBkYXRlcyBmb3IgdGhlIG1haW4gZnJhbWUgYXJlIHNlbnQgdmlh
IFdlYlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cygpCiAgICAgLy8gc28gZG9u
J3Qgc2VuZCB0aGVtIGhlcmUuCkBAIC0yMjIsMjEgKzIyMiw0MSBAQCB2b2lkIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGlu
Z05vZGVJRAogICAgIG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVTY3JvbGxWaWV3RGlkU2Ny
b2xsKCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fc2Ny
b2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpICYmICFpbnN0YW50U2Ny
b2xsRGlkU3RvcEFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworI2Vsc2UKICAgICBpZiAobV9z
Y3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKCkpCiAgICAgICAgIHJl
dHVybjsKKyNlbmRpZgogCiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OlNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoc2Nyb2xs
ZWROb2RlSUQsIG5ld1Njcm9sbFBvc2l0aW9uLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
ID09IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpKTsKIH0KIAotdm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKK3ZvaWQgUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0
aEFuaW1hdGlvbikKIHsKICAgICBpZiAoc2Nyb2xsZWROb2RlSUQgPT0gcm9vdFNjcm9sbGluZ05v
ZGVJRCgpICYmIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbykgewogICAgICAgICBtX3JlcXVlc3RlZFNj
cm9sbEluZm8tPnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgPSB0cnVlOwogICAgICAgICBt
X3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGw7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAg
ICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0V2l0aEFuaW1hdGlvbiA9IHdpdGhBbmlt
YXRpb247CisjZW5kaWYKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwogICAgIH0KIH0KIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9s
bGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9k
ZShzY3JvbGxlZE5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKSk7Cit9CisKK3Zv
aWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2Rl
SXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZv
ck5vZGUocm9vdFNjcm9sbGluZ05vZGVJRCgpLCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mp
KTsKK30KKyNlbmRpZgorCiBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
c2Nyb2xsaW5nVHJlZUFzVGV4dCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFh
NzY5NDNmMjQuLjgxMTVlNDc3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuaApAQCAtNTUsOSArNTUsMTQgQEAgcHVibGljOgogICAgIGV4cGxpY2l0
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5Jik7CiAgICAgdmly
dHVhbCB+UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOwogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKTsKKyNlbmRpZgorCiAgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJvY2VzcyB0aGF0
IHRoZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNjcm9sbGluZyB0
cmVlKQotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwg
Y29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2lu
LCBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLSAgICB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdl
YkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Ny
b2xsUG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRW
aWV3cG9ydE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9v
bCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IGZhbHNlKTsKKyAgICB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSk7CiAKICAgICBXZWJD
b3JlOjpUcmFja2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3Ry
aW5nJiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKIApAQCAtODAsNiArODUs
OSBAQCBwdWJsaWM6CiAgICAgc3RydWN0IFJlcXVlc3RlZFNjcm9sbEluZm8gewogICAgICAgICBi
b29sIHJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgeyB9OwogICAgICAgICBib29sIHJlcXVl
c3RJc1Byb2dyYW1tYXRpY1Njcm9sbCB7IH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICAgICAgYm9vbCByZXF1ZXN0V2l0aEFuaW1hdGlvbiB7IH07CisjZW5kaWYKICAgICAgICAgV2Vi
Q29yZTo6RmxvYXRQb2ludCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICB9OwogICAgIHZv
aWQgY29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yVHJhbnNhY3Rpb24mLCBSZXF1ZXN0ZWRTY3JvbGxJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHAKaW5kZXggYWZhYmJjMWVhZS4uZTZlYjQ4YmQ5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdUcmVlLmNwcApAQCAtMTA0LDEyICsxMDQsMTYgQEAgdm9pZCBSZW1vdGVTY3JvbGxp
bmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZSYKICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkp
CiAgICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2luID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkubGF5b3V0Vmlld3BvcnQoKS5sb2NhdGlvbigpOwogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5j
dXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb24sIG5vZGUubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigp
ICYmICFub2RlLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKTsKKyNlbHNlCiAgICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xs
aW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0
T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyNlbmRpZgogfQogCi12b2lk
IFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Ny
b2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJv
b2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
LCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24pCiB7Ci0gICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3Jv
bGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlE
LCBzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgd2l0aEFuaW1h
dGlvbik7CiB9CiAKIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6
Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCBub2RlSUQpCkBAIC0xNDMsNiArMTQ3LDEzIEBAIFJlZjxTY3JvbGxpbmdUcmVl
Tm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xs
aW5nTm9kCiAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywg
bm9kZUlEKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9s
bGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlk
Q2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKQoreworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3Jv
bGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShub2RlSUQs
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cit9CisjZW5kaWYKKwogdm9pZCBSZW1vdGVT
Y3JvbGxpbmdUcmVlOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdO
b2RlSUQgbm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkKIHsK
ICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3VycmVudFNuYXBQb2ludEluZGljZXNE
aWRDaGFuZ2Uobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaAppbmRleCAyM2JhYzA2YTNiLi4wZjllMDk0OTRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdUcmVlLmgKQEAgLTUyLDcgKzUyLDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5JiBzY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkgY29uc3Qg
eyByZXR1cm4gbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5OyB9CiAKICAgICB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
JiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFdlYkNvcmU6OlNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Nyb2xs
aW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpIG92ZXJyaWRlOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGws
IGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlKSBvdmVycmlkZTsKKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKSBvdmVycmlkZTsKKyNlbmRpZgogCiAgICAgdm9pZCBjdXJyZW50
U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2ln
bmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1Mu
aAppbmRleCBlNjM3ZDYxNTMyLi4wMGI0ZGJjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaApAQCAtNTcsNiAr
NTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxEaWRFbmQoKSBjb25zdDsKICAgICB2b2lk
IHNjcm9sbFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxW
aWV3RGlkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9mZnNldCwgYm9v
bCBpblVzZXJJbnRlcmFjdGlvbik7CisgICAgdm9pZCBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5n
QW5pbWF0aW9uKCk7CiAKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdl
KHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBjb25zdDsKICAgICBDQUxh
eWVyICpzY3JvbGxMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUy5tbQppbmRleCBlNzY4OTgzNzU4Li44NDg4NjNhODFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Lm1tCkBAIC0xNTIsNiArMTUyLDExIEBACiAgICAgfQogfQogCistICh2b2lkKXNjcm9sbFZpZXdE
aWRFbmRTY3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKK3sKKyAg
ICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0Fu
aW1hdGlvbigpOworfQorCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogLSAoQ0dQb2ludClf
c2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNldEZvck9m
ZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRpb24gc3Rh
cnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludClsb2NhdGlvbklu
VmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2FsVmVsb2Np
dHk6KGlub3V0IGRvdWJsZSAqKXZ2CiB7CkBAIC0zMDAsMTUgKzMwNSwzNiBAQCB2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJl
bihjb25zdCBTY3JvbAogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bikpIHsKICAgICAgICAgYXV0byBzY3JvbGxUeXBlID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpID8gU2Nyb2xs
VHlwZTo6UHJvZ3JhbW1hdGljIDogU2Nyb2xsVHlwZTo6VXNlcjsKLSAgICAgICAgc2Nyb2xsaW5n
Tm9kZSgpLnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bigpLCBzY3JvbGxUeXBlKTsKKyAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ05v
ZGUoKS5zZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwodHJ1ZSk7CisgICAgICAgIC8vIElmIHRoZSBz
Y3JvbGwgcG9zaXRpb25zIGFyZSBub3QgdGhlIHNhbWUsIHRoZXJlJ3MgYSBwb3NzaWJpbGl0eSB0
aGF0IHRoZSBzY3JvbGwgb2Zmc2V0IGZyb20gdGhlIFdlYiBwcm9jZXNzIGhhcyBiZWVuIG92ZXJy
aWRkZW4uCisgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIHNjcm9sbCBwb3NpdGlvbiBuZWVk
IHRvIGJlIHNlbnQgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBib29sIHNob3VsZFN5bmNT
Y3JvbGxQb3NpdGlvbiA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxQb3NpdGlvbigpICE9IHNj
cm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgc2Nyb2xsaW5n
Tm9kZSgpLnNjcm9sbFRvKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bigpLCBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywgc2hv
dWxkU3luY1Njcm9sbFBvc2l0aW9uKTsKICAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpCiB7Ci0g
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW3Njcm9sbFZpZXcoKSBzZXRDb250
ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOwotICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBib29sIGFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBz
Y3JvbGxpbmdOb2RlKCkuc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpOworICAgIGJvb2wgbmVl
ZFRvU3RvcEFuaW1hdGlvbiA9IHNjcm9sbGluZ05vZGUoKS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xs
QW5pbWF0aW9uKCk7CisgICAgaWYgKG5lZWRUb1N0b3BBbmltYXRpb24gJiYgYW5pbWF0aW9uSW5Q
cm9ncmVzcykgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAg
W3Njcm9sbFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbFZpZXcoKS5jb250ZW50T2Zmc2V0
IGFuaW1hdGVkOk5PXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0K
KworICAgIGlmIChzY3JvbGxpbmdOb2RlKCkucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkpIHsKKyAg
ICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkg
c2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpIGFu
aW1hdGVkOllFU107CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKworICAgICAg
ICBzY3JvbGxpbmdOb2RlKCkuc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyh0cnVlKTsKKyAg
ICB9IGVsc2UgaWYgKCFhbmltYXRpb25JblByb2dyZXNzIHx8IG5lZWRUb1N0b3BBbmltYXRpb24p
IHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxW
aWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNl
dCgpXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0KIH0KIAogdm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxXaWxsU3RhcnQo
KSBjb25zdApAQCAtMzM1LDYgKzM2MSwxNSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludAogICAg
IHNjcm9sbGluZ05vZGUoKS53YXNTY3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKHNjcm9sbFBv
c2l0aW9uLCB7IH0sIGluVXNlckludGVyYWN0aW9uID8gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFj
dGlvbjo6U3luYyA6IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiB9CiAKK3Zv
aWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZEVu
ZFNjcm9sbGluZ0FuaW1hdGlvbigpCit7CisgICAgYXV0byYgbm9kZSA9IHNjcm9sbGluZ05vZGUo
KTsKKyAgICBpZiAoIShub2RlLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpICYmIG5vZGUuc2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcygpKSkgeworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xs
aW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9kZS5zY3Jv
bGxpbmdOb2RlSUQoKSwgZmFsc2UpOworICAgICAgICBub2RlLnNldFNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MoZmFsc2UpOworICAgIH0KK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25l
ZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3QKIHsKICAgICBpZiAobV91cGRh
dGluZ0Zyb21TdGF0ZU5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCBkYjJjZTA3OWNhLi5kMDlmNjA3YWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE3NjcsOSArMTc2NywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBSZWdpb24mIHJlZ2lvbikKICAgICBwYWdlQ2xp
ZW50KCkuc2V0Vmlld05lZWRzRGlzcGxheShyZWdpb24pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qg
SW50UG9pbnQmIHNjcm9sbE9yaWdpbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U2Nyb2xs
KGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xs
T3JpZ2luLCBjb25zdCBib29sIHdpdGhBbmltYXRpb24pCiB7Ci0gICAgcGFnZUNsaWVudCgpLnJl
cXVlc3RTY3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgaWYgKHdpdGhB
bmltYXRpb24pCisgICAgICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlv
bihzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2VD
bGllbnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOwogfQog
CiBXZWJDb3JlOjpGbG9hdFBvaW50IFdlYlBhZ2VQcm94eTo6dmlld1Njcm9sbFBvc2l0aW9uKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYWUzODUyMjIx
ZC4uYWYwN2VhNDkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTYxMyw3ICs2MTMsNyBAQCBwdWJsaWM6CiAgICAgUGFnZUNsaWVudCYgcGFnZUNsaWVudCgpIGNv
bnN0OwogCiAgICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lv
biYpOwotICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbik7Cisg
ICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBib29sIHdpdGhB
bmltYXRpb24gPSBmYWxzZSk7CiAgICAgCiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Ny
b2xsUG9zaXRpb24oKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBkNmM4YzM4ZDRhLi41MTk4ZWY0NDJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtNTcs
NiArNTcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5
PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KFdlYlByb2Nlc3NQcm94eSYpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIG92ZXJy
aWRlOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3Jv
bGxPcmlnaW4pIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBv
c2l0aW9uKCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJy
aWRlOwogICAgIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggZGM5Zjc0
YzQ5YS4uMmMzMGM0YmMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtOTUsNyArOTUsMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1w
bDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBSZWdpb24mKQogCiB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25z
dCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQogewotICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29u
dGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmln
aW5dOworICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9s
bFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6Tk9dOworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihjb25zdCBGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKK3sK
KyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3Np
dGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOllFU107CiB9CiAKIFdlYkNv
cmU6OkZsb2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4
IDhlNjQ5MzU1NDUuLjNkMzQ1ZDc2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC03Myw2ICs3MywxMCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdO
b2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHN5
bmNMYXllclBvc2l0aW9uKTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdl
ZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1
bnNpZ25lZCB2ZXJ0aWNhbCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQg
c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCisKICAg
ICBXZWJQYWdlKiBtX3dlYlBhZ2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KaW5kZXggMmMw
OThhMTA5Ny4uNTM3ZmQzNGQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUs
OSBAQAogbWVzc2FnZXMgLT4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IgewogICAgIFNjcm9s
bFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCBXZWJDb3JlOjpGbG9hdFBv
aW50IHNjcm9sbFBvc2l0aW9uLCBib29sIHN5bmNMYXllclBvc2l0aW9uKTsKICAgICBDdXJyZW50
U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgdW5zaWduZWQg
aG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5v
ZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCiB9CiAKICNl
bmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4IDgzNTQ0MWQzMTkuLjY4OWQ1
NTYyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3IubW0KQEAgLTEwNCw2ICsxMDQsMTMgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvcjo6Y3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZShTY3JvbGxpbmcK
ICAgICBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhub2RlSUQsIGhvcml6b250YWwsIHZlcnRp
Y2FsKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MpCit7CisgICAgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhub2RlSUQsIGlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IGI5ZGFlMmNlMTAuLmJjZjVlYjhhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxj
YXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBi
ZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisK
KyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAg
ICBBZGQgcnVuIHRpbWUgZmxhZyBmb3IgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nLgorCisgICAg
ICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogSGFuZGxlIENTU09NVmll
d1Ntb290aFNjcm9sbGluZyBieS4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
OgorICAgICAgICAoW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKTogRGlzYWJsZSBDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmcgYnkgZGVmYXVsdC4KKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMg
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZF0pOiBHZXR0ZXIuCisgICAgICAgICgtW1dl
YlByZWZlcmVuY2VzIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6XSk6IFNldHRl
ci4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFu
Z2VkOl0pOgorCiAyMDE5LTEyLTA5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbmFtZSBtZWRpYSBpbiB0aGUgR1BVIHByb2Nlc3MgcHJlZmVyZW5j
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNDQxYjVhODc3Ni4uYzY3OWZiZDZkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCkBAIC0xODgsNiArMTg4LDcgQEAKICNkZWZpbmUgV2ViS2l0RGlyZWN0
b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFi
bGVkIgogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZCIKICNkZWZpbmUgV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFJlbW90
ZVBsYXliYWNrRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRSZW1vdGVQbGF5YmFja0VuYWJs
ZWQiCiAjZGVmaW5lIFdlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0U3VidGxlQ3J5cHRvRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDQ3ZjdjNzVkZGEuLmNkMjM2NzQ0ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bQpAQCAtNjYzLDYgKzY2Myw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgICAgIEBZRVMsIFdl
YktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAorICAgICAgICBA
Tk8sIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAog
ICAgICAgICBAWUVTLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlya0tl
eSwKICAgICAgICAgQE5PLCBXZWJLaXRBbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tG
b3JDcmVkZW50aWFsc0tleSwKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtMzE4MSw2ICsz
MTgyLDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBb
c2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClDU1NPTVZpZXdTbW9vdGhTY3Jv
bGxpbmdFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2
b2lkKXNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6KEJPT0wpZmxhZworeworICAg
IFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Q1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiAtIChCT09MKXdlYkFuaW1hdGlvbnNF
bmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0V2ViQW5p
bWF0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDU5NzU4ZTIz
MzUuLjA5MTE5MzFkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjMyLDYgKzYzMiw3IEBAIGV4dGVy
biBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZp
Y2F0aW9uIFdFQktJVF9ERVBSCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIENTU09NVmlld1Nj
cm9sbGluZ0FQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbGFyZ2VJ
bWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYW5p
bWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgamF2YVNjcmlwdE1hcmt1cEVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggNDdhYWUzMjhkYi4uNjY3MDM1OWUxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjk5Miw2ICsyOTkyLDcgQEAg
c3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmsoKQogICAgIHNldHRp
bmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgdmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0U3ludGhldGljRWRpdGluZ0NvbW1hbmRz
RW5hYmxlZChbcHJlZmVyZW5jZXMgc3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZF0pOwog
ICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3ByZWZlcmVuY2Vz
IENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTbW9vdGhTY3Jv
bGxpbmdFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQoW3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0XSk7CiAKICAgICBzd2l0Y2ggKFtwcmVmZXJlbmNlcyBzdG9yYWdlQmxv
Y2tpbmdQb2xpY3ldKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNDIwMTRkOTlk
NS4uZTdjYTZmNzIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmlkbDogSGFuZGxlIHNtb290aCBzY3JvbGxpbmcgb3B0aW9uLgorICAgICAg
ICAqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcmVm
ZXJlbmNlcy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVE
ZWZhdWx0U2V0dGluZ3MpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldENTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6IERp
dHRvLgorICAgICAgICAqIFdlYlZpZXcuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYlZpZXc6Om5v
dGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisKIDIwMTktMTItMDUgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBQYWdlQ29uZmlndXJhdGlvbjo6ZHJhZ0NsaWVudCBz
aG91bGQgdXNlIGEgc21hcnQgcG9pbnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5kZXgg
YTcxNzYyMjIxYi4uY2NmZjlmMDU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0y
MjMsNiArMjIzLDggQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU2IDogSVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTUKICAgICBIUkVTVUxUIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOworICAgIEhSRVNV
TFQgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7
CiAgICAgSFJFU1VMVCBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09M
KiBlbmFibGVkKTsKICAgICBIUkVTVUxUIHNldEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChbaW5d
IEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoW291
dCwgcmV0dmFsXSBCT09MICplbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggMDk5Mzc0MjBlNC4uMDhjNDU2NzI3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmgKQEAgLTIwOSw2ICsyMDksNyBAQAogI2RlZmluZSBXZWJLaXRTZXJ2ZXJUaW1pbmdF
bmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZCIKIAogI2RlZmlu
ZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJl
ZmVyZW5jZUtleSAiV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkIgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggOTVlYmVhMjY4Yy4uYzhlMjI1YWE0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMzM5
LDYgKzMzOSw4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGlu
Z3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFJl
c2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCisg
ICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdENTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKKwog
ICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRDb3JlTWF0aE1M
RW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgQ0ZEaWN0aW9u
YXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFi
bGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CkBAIC0yMjgzLDYgKzIyODUsMjAg
QEAgSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0Q29yZU1hdGhNTEVuYWJsZWQoQk9PTCBlbmFi
bGVkKQogICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCit7CisgICAg
aWYgKCFlbmFibGVkKQorICAgICAgICByZXR1cm4gRV9QT0lOVEVSOworICAgICplbmFibGVkID0g
Ym9vbFZhbHVlRm9yS2V5KFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVm
ZXJlbmNlS2V5KTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNl
czo6c2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChCT09MIGVuYWJsZWQpCit7Cisg
ICAgc2V0Qm9vbFZhbHVlKFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVm
ZXJlbmNlS2V5LCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19PSzsKK30KKwogSFJFU1VMVCBXZWJQ
cmVmZXJlbmNlczo6cmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQoX091dF8gQk9PTCogZW5hYmxl
ZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZXMuaAppbmRleCAxZGFhYTczMDI1Li42MDY2ZTQ2NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI3MSw2ICsyNzEsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5h
YmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01W
aWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoQk9PTCk7
CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKEJPT0wpOwogICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJs
ZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBz
ZXRGZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChfT3V0XyBCT09MKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGEwNDQ4YmIwMTMuLmQyYjIyZjA0Nzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01MzE4LDYgKzUzMTgsMTEgQEAg
SFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlv
biogbm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0Q1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCghIWVuYWJsZWQpOwogCisgICAgaHIgPSBwcmVmc1By
aXZhdGUtPkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoJmVuYWJsZWQpOworICAgIGlm
IChGQUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3Muc2V0Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCghIWVuYWJsZWQpOworCiAgICAgaHIgPSBwcmVmZXJl
bmNlcy0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRCho
cikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAwMGRhYmU3M2Y0Li5lOWExMjhiMDI2IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBG
csOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5j
cHA6CisgICAgICAgIChUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMpOiBQYXJzZSBDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmg6IEFkZCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkLCBkaXNhYmxlZCBieSBk
ZWZhdWx0LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToK
KyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOiBTZXQgQ1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCBmcm9tIHRoZSB0ZXN0IG9wdGlvbnMuCisKIDIwMTktMTIt
MTAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBB
UEkgdGVzdCBmYWlsdXJlIGFmdGVyIHIyNTMzNTEKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcAppbmRleCA3YzlhZTU5OTRhLi4yMzdjOTg4NzhmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuY3BwCkBAIC0xNDIsNiArMTQyLDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25z
KGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUK
ICAgICAgICAgICAgIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBwYXJzZUJvb2xlYW5UZXN0
SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRh
bDpSZXNpemVPYnNlcnZlckVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlUmVzaXplT2JzZXJ2
ZXIgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAgICAgICBlbHNlIGlm
IChrZXkgPT0gImV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIikK
KyAgICAgICAgICAgIGVuYWJsZUNTU09NVmlld1Ntb290aFNjcm9sbGluZyA9IHBhcnNlQm9vbGVh
blRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJp
bWVudGFsOkNvcmVNYXRoTUxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZUNvcmVNYXRoTUwg
PSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZCIpCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCBlNTMzNWU4MzExLi5mN2U4ZDI5MTFkIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTUwLDYgKzUwLDcgQEAgc3RydWN0IFRlc3RPcHRp
b25zIHsKICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAgIGJvb2wgYWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVSZXNpemVP
YnNlcnZlciB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmcgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlQ29yZU1hdGhNTCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBlbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJs
ZUFzeW5jQ2xpcGJvYXJkQVBJIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQppbmRleCBjY2ZmZTA1NWQzLi42N2NhZWE3MThkIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMDI5LDYgKzEwMjksNyBA
QCBzdGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RP
cHRpb25zJiBvcHRpb25zKQogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVDU1NMb2dpY2FsOwogICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlv
bkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CiAgICAgcHJlZmVy
ZW5jZXMucmVzaXplT2JzZXJ2ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXNpemVPYnNlcnZl
cjsKKyAgICBwcmVmZXJlbmNlcy5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmc7CiAgICAgcHJlZmVyZW5jZXMuY29y
ZU1hdGhNTEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNvcmVNYXRoTUw7CiAgICAgcHJlZmVyZW5j
ZXMucmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJlcXVlc3RJZGxl
Q2FsbGJhY2s7CiAgICAgcHJlZmVyZW5jZXMuYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVBc3luY0NsaXBib2FyZEFQSTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385403</attachid>
            <date>2019-12-11 09:25:57 -0800</date>
            <delta_ts>2019-12-13 04:32:57 -0800</delta_ts>
            <desc>native-animation-for-review</desc>
            <filename>upload_33.diff</filename>
            <type>text/plain</type>
            <size>151899</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MmMyMWFjMDgxLi43NTQzNzBiOGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybSBpcyB1c2lu
ZyBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiB3aGljaCBuZWVkIGVuYWJsZQorICAgICAgICBBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCBhbmQgQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQu
IEluIG9yZGVyIHRvIHRlc3QgcHJvcGVybHksCisgICAgICAgIGNvcHkgc2Nyb2xsLWJlaGF2aW9y
IHRlc3QgdG8gZmFzdC9zY3JvbGxpbmcvaW9zLworCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2
ZVNjcm9sbGluZyk6CisgICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9s
bE5vZGUpOgorICAgICAgICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0
bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKIDIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0
aGUgV2ViIHByb2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uMGEwOTY4ZTAyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzCkBAIC0w
LDAgKzEsODcgQEAKK2Z1bmN0aW9uIG9ic2VydmVTY3JvbGxpbmcoZWxlbWVudHMsIGNhbGxiYWNr
KSB7CisgIGlmICghQXJyYXkuaXNBcnJheShlbGVtZW50cykpCisgICAgICBlbGVtZW50cyA9IFtl
bGVtZW50c107CisgIHZhciBsYXN0Q2hhbmdlZEZyYW1lID0gMDsKKyAgdmFyIGxhc3RMZWZ0ID0g
bmV3IE1hcCgpOworICB2YXIgbGFzdFRvcCA9IG5ldyBNYXAoKTsKKyAgZWxlbWVudHMuZm9yRWFj
aCgoZWxlbWVudCkgPT4geworICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9s
bExlZnQpOworICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsVG9wKTsKKyAg
fSk7CisgIGZ1bmN0aW9uIHRpY2soZnJhbWVzKSB7CisgICAgLy8gV2UgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lIGVpdGhlciBmb3IgNTAwIGZyYW1lcyBvciB1bnRpbCAyMCBmcmFtZXMgd2l0aAorICAg
IC8vIG5vIGNoYW5nZSBoYXZlIGJlZW4gb2JzZXJ2ZWQuCisgICAgaWYgKGZyYW1lcyA+PSA1MDAg
fHwgZnJhbWVzIC0gbGFzdENoYW5nZWRGcmFtZSA+IDIwKSB7CisgICAgICBjYWxsYmFjayh0cnVl
KTsKKyAgICB9IGVsc2UgeworICAgICAgdmFyIHNjcm9sbEhhcHBlbmVkID0gZWxlbWVudHMuc29t
ZSgoZWxlbWVudCkgPT4geworICAgICAgICByZXR1cm4gZWxlbWVudC5zY3JvbGxMZWZ0ICE9IGxh
c3RMZWZ0LmdldChlbGVtZW50KSB8fCBlbGVtZW50LnNjcm9sbFRvcCAhPSBsYXN0VG9wLmdldChl
bGVtZW50KTsKKyAgICAgIH0pOworICAgICAgaWYgKHNjcm9sbEhhcHBlbmVkKSB7CisgICAgICAg
IGxhc3RDaGFuZ2VkRnJhbWUgPSBmcmFtZXM7CisgICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVs
ZW1lbnQpID0+IHsKKyAgICAgICAgICBsYXN0TGVmdC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3Jv
bGxMZWZ0KTsKKyAgICAgICAgICBsYXN0VG9wLnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbFRv
cCk7CisgICAgICAgIH0pOworICAgICAgICBjYWxsYmFjayhmYWxzZSk7CisgICAgICB9CisgICAg
ICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljay5iaW5kKG51bGwsIGZyYW1lcyArIDEpKTsKKyAg
ICB9CisgIH0KKyAgdGljaygwKTsKK30KKworZnVuY3Rpb24gd2FpdEZvclNjcm9sbEVuZChlbGVt
ZW50cykgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICBvYnNlcnZl
U2Nyb2xsaW5nKGVsZW1lbnRzLCAoZG9uZSkgPT4geworICAgICAgaWYgKGRvbmUpCisgICAgICAg
IHJlc29sdmUoKTsKKyAgICB9KTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0U2Nyb2xsKHNj
cm9sbGluZ0VsZW1lbnQpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhl
IGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsKKyAg
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwgYmVoYXZpb3I6ICJpbnN0
YW50In0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhlIGVsZW1lbnQgcG9z
aXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOworICBzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rp
b24gc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgY2xhc3NOYW1lKSB7CisgIHN0eWxl
ZEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYXV0b0JlaGF2aW9yIiwgInNtb290aEJlaGF2aW9y
Iik7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpOworfQorCitmdW5j
dGlvbiBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlv
ciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdz
ID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7Cisg
IHN3aXRjaCAoc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBjYXNlICJzY3JvbGxJbnRvVmlldyI6Cisg
ICAgICBhcmdzLmlubGluZSA9ICJzdGFydCI7CisgICAgICBhcmdzLmJsb2NrID0gInN0YXJ0IjsK
KyAgICAgIGVsZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyhhcmdzKTsKKyAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0Owor
ICAgICAgYXJncy50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3A7CisgICAgICBzY3JvbGxpbmdFbGVt
ZW50W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKKyAgICAgIGJyZWFrOworICB9Cit9CisKK2Z1bmN0
aW9uIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlv
ciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdz
ID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7Cisg
IGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7CisgIGFyZ3MudG9wID0gZWxlbWVudFRv
UmV2ZWFsVG9wOworICBzY3JvbGxpbmdXaW5kb3dbc2Nyb2xsRnVuY3Rpb25dKGFyZ3MpOworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44ZDRjYTY0MTU1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNz
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgSW5zdGFudCBzY3JvbGxpbmcg
b2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAorUEFTUyBTbW9vdGgg
c2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLjM1YzY1MDNhYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKQEAgLTAsMCAr
MSw1MiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBkZWZh
dWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMg
V2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwt
YmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xs
YWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdo
dDogMjAwcHg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlk
PSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6
IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVk
ZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9j
azsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50
VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAt
MTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3Nw
YW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgc2Nyb2xsaW5nRWxlbWVudCA9
IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBl
bGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIHZhciBzY3JvbGxGdW5jdGlvbiA9ICJzY3JvbGwi
OworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50IiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgIH0sICJJbnN0YW50IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdp
dGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJTbW9vdGgg
c2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciIpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41M2E5NjFlZjU2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACisKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhl
ciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQzOGRm
ZmRlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBF
IGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlv
ciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87Cisg
ICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgIH0KKyAgLmF1dG9CZWhhdmlv
ciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7
CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJs
b2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4K
KyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9
ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9z
cGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFj
a2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2
YXIgc2Nyb2xsaW5nRWxlbWVudCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIHN0eWxlZEVsZW1lbnQg
PSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIg
ZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNj
cm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsK
KyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGws
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
cmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9u
LCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOwor
CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1
dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNj
cm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAg
IH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgIH0pOworICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICB9KTsK
KworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVs
ZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xs
aW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45N2Nh
ZWEyN2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzcgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQzMjVi
NGI5ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEsMTY5IEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dT
Y3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMn
IGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUg
cm9vdCBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250
ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIg
aHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZp
b3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
b20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBt
YXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBh
dXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9v
dGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdl
Q29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+Cisg
IDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlz
cGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5k
OiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFz
eW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50LCBzdHlsZWRF
bGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5j
dGlvbigpIHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dDsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBh
Z2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJw
eCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVp
Z2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cu
aW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5p
bm5lckhlaWdodCkgKiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVu
dFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVs
ZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygo
KSA9PiB7IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOyB9KTsKKworICAgIFsic2Nyb2xs
IiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Ny
b2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5n
RWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZl
KCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJh
dXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsg
cmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0
aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7Cisg
ICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGws
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3Jv
bGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9s
bEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAg
ICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsK
KworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhC
ZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZv
clNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQg
LyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5z
dGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIp
OworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXdpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MC4uMzgyMzg1YWFiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjkgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290
aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBv
biB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uOTA1N2IwY2QxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApA
QCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRl
cm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVz
dGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIG9uIHRoZSB3
aW5kb3cgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCxtaW5pbXVtLXNjYWxlPTEsaW5pdGlhbC1zY2FsZT0xIj4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2
aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9y
IHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBhZ2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4KKyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxz
Y3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0gYXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAg
dmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBh
Z2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nV2luZG93
ID0gd2luZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7
CisgICAgcGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkg
KiA1ICsgInB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cu
aW5uZXJIZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCAr
IHdpbmRvdy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsg
d2luZG93LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQg
PSBlbGVtZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUu
dG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2Nh
bGxiYWNrKCgpID0+IHsgcmVzZXRTY3JvbGxGb3JXaW5kb3cod2luZG93KTsgfSk7CisKKyAgICBb
InNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9u
KSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZv
cldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
c2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVh
bFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkg
PT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9y
U2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVu
KCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVu
Y3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9s
bEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
Mik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5n
Iik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDAp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5n
IHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9s
bGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi40NDNhODIwZTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHNjcm9sbEludG9WaWV3IHdp
dGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
Y3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDViNWQ4ZDdjNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50
b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciB3aXRoIHNjcm9s
bEludG9WaWV3IGZvciBuZXN0ZWQgc2Nyb2xsaW5nIG5vZGVzPC90aXRsZT4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLD
qWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVm
LXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisg
IC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICBoZWlnaHQ6IDIwMHB4Owor
ICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
IH0KKyAgLmdyYWRpZW50IHsKKyAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVn
LCByZWQsIGdyZWVuKTsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxk
aXY+CisgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0
aDogNDUwcHgiPgorICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9v
dGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiA0MDBweCI+CisgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
PGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAzNTBweCI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMzAw
cHgiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJs
ZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiAyNTBweCI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAy
MDBweCI+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImVs
ZW1lbnRUb1JldmVhbCIgc3R5bGU9IndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICA8
L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAg
PGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgPC9kaXY+Cisg
ICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1
MDBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
Ly8gVGhlIENTU09NLVZpZXcgc3BlYyBhbmQgaW1wbGVtZW50YXRpb25zIGZvbGxvdyBkaWZmZXJl
bnQgYWxnb3JpdGhtcyAoc2Nyb2xscyBwZXJmb3JtZWQgaW4gcGFyYWxsZWwsIGFzIGlubmVyLXRv
LW91dGVyIHNlcXVlbmNlIG9yIGFzIG91dGVyLXRvLWlubmVyIHNlcXVlbmNlKS4KKyAgLy8gU2Vl
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMTI3CisgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgdmFyIGRpdnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
c2Nyb2xsYWJsZSIpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGFibGVEaXYpOworICAgICAgfSk7CisgICAgICBlbGVt
ZW50VG9SZXZlYWwuc2Nyb2xsSW50b1ZpZXcoe2lubGluZTogInN0YXJ0IiwgYmxvY2s6ICJzdGFy
dCIsIGJlaGF2aW9yOiAiYXV0byJ9KTsKKyAgICAgIHZhciBzY3JvbGxUb3AgPSBuZXcgTWFwKCk7
CisgICAgICB2YXIgaXNTbW9vdGggPSBuZXcgTWFwKCk7CisgICAgICBkaXZzLmZvckVhY2goKHNj
cm9sbGFibGVEaXYpID0+IHsKKyAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2LCBz
Y3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgIGlzU21vb3RoLnNldChzY3JvbGxhYmxl
RGl2LCBzY3JvbGxhYmxlRGl2LmNsYXNzTGlzdC5jb250YWlucygic21vb3RoQmVoYXZpb3IiKSk7
CisgICAgICAgIC8vIElmIHNjcm9sbCBvcGVyYXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIGluIHBh
cmFsbGVsLCBzY3JvbGwgYm94ZXMgd2l0aCBpbnN0YW50IGJlaGF2aW9yIG1pZ2h0IGFsc28gbmVl
ZCB0byB3YWl0IGZvciB0aGVpciBwcmVkZWNlc3NvcnMuCisgICAgICAgIGlmIChpc1Ntb290aC5n
ZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxUb3Au
Z2V0KHNjcm9sbGFibGVEaXYpLCA1MDAsICJFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNo
b3VsZCBub3Qgc2Nyb2xsIGltbWVkaWF0ZWx5Iik7CisgICAgICB9KTsKKworICAgICAgb2JzZXJ2
ZVNjcm9sbGluZyhBcnJheS5mcm9tKGRpdnMpLCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRy
eSB7CisgICAgICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKHNjcm9sbFRvcC5nZXQoc2Nyb2xsYWJsZURpdiks
IHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsK
KyAgICAgICAgICAgIGlmICghaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAg
ICAgICBhc3NlcnRfYW55KGFzc2VydF9lcXVhbHMsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCBb
MCwgNTAwXSwgIkVsZW1lbnQgd2l0aCBpbnN0YW50IGJlaGF2aW9yIHNob3VsZCBqdW1wIHRvIHRo
ZSBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsIDUwMCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2
LCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0gY2F0
Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9u
ZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgInNjcm9s
bEludG9WaWV3IHdpdGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhh
dmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44
NTVhNmE2MTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIwIEBACisKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3Ro
IHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BB
U1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9t
ICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRv
ICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4g
cGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5n
IHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxU
bygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9s
bGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20g
KDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUw
KSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNj
cm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGgg
c2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAK
K1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBm
cm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwg
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0
byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRp
b25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUw
MCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAs
IDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hl
biBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmcgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxp
bmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1w
b3NpdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wYTQx
YjhiMDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTAsMCArMSwxNTEgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsIHBvc2l0
aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yPC90aXRs
ZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNv
bSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3
aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92
ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAw
MHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywg
cmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3
aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1Jl
dmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4
OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4K
KyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIEZvciBzbW9vdGggYmVoYXZpb3IsIGV2
b2x1dGlvbiBvZiBzY3JvbGwgcG9zaXRpb25zIG92ZXIgdGltZSBpcyBub3Qgc3BlY2lmaWVkIGJ5
IENTU09NIFZpZXcuCisgIC8vIFRoaXMgdGVzdCByZWxpZXMgb24gdGhlIG1pbmltYWwgYXNzdW1w
dGlvbiB0aGF0IHNjcm9sbCBwb3NpdGlvbiBmdW5jdGlvbnMgYXJlIG1vbm90b25pYy4KKyAgWyJz
Y3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNo
KGZ1bmN0aW9uKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgW3tsZWZ0OjAsIHRvcDowfSwge2xlZnQ6
MTAwMCwgdG9wOjB9LCB7bGVmdDowLCB0b3A6NTAwfSwge2xlZnQ6MTAwMCwgdG9wOjUwMH1dLmZv
ckVhY2goKGluaXRpYWwpID0+IHsKKyAgICAgIHZhciBmaW5hbExlZnQgPSA1MDA7CisgICAgICB2
YXIgZmluYWxUb3AgPSAyNTA7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAg
c2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIGluaXRpYWwubGVm
dCwgaW5pdGlhbC50b3ApOworICAgICAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNj
cm9sbExlZnQ7CisgICAgICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCBpbml0aWFsLmxlZnQsICJTY3JvbGxM
ZWZ0IHNob3VsZCBiZSBhdCBpbml0aWFsIHBvc2l0aW9uIik7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhvbGRUb3AsIGluaXRpYWwudG9wLCAiU2Nyb2xsVG9wIHNob3VsZCBiZSBhdCBpbml0aWFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgaWYgKHNjcm9sbEZ1bmN0aW9uID09PSAic2Nyb2xsQnki
KQorICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAi
c21vb3RoIiwgZmluYWxMZWZ0IC0gaW5pdGlhbC5sZWZ0LCBmaW5hbFRvcCAtIGluaXRpYWwudG9w
KTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwg
c2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBmaW5hbExlZnQsIGZpbmFsVG9wKTsKKyAgICAgICAg
ICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Ny
b2xsTGVmdDsKKyAgICAgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxU
b3A7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoTWF0aC5oeXBvdChmaW5h
bExlZnQgLSBuZXdMZWZ0LCBmaW5hbFRvcCAtIG5ld1RvcCksIE1hdGguaHlwb3QoZmluYWxMZWZ0
IC0gb2xkTGVmdCwgZmluYWxUb3AgLSBvbGRUb3ApLCAiU2Nyb2xsIHBvc2l0aW9uIHNob3VsZCBt
b3ZlIHRvd2FyZHMgdGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIGlmIChkb25l
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCBmaW5hbExlZnQsICJT
Y3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3VG9wLCBmaW5hbFRvcCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2gg
ZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBvbGRMZWZ0
ID0gbmV3TGVmdDsKKyAgICAgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICAgICAg
fSBjYXRjaChlKSB7CisgICAgICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgICAgfSwgYFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoJHtpbml0aWFsLmxlZnR9LCAke2luaXRpYWwudG9w
fSkgdG8gKCR7ZmluYWxMZWZ0fSwgJHtmaW5hbFRvcH0pIHVzaW5nICR7c2Nyb2xsRnVuY3Rpb259
KCkgYCk7CisgICAgfSk7CisgIH0pOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRT
Y3JvbGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZh
bHNlOworICAgICAgdmFyIHNjcm9sbERpcmVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKKyAgICAgIHZh
ciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0g
b3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7
CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJm
bG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNj
cm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAg
IHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmIChpbml0
aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgaWYgKHNjcm9sbERpcmVjdGlvbkNoYW5n
ZWQpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRMZWZ0LCBu
ZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFz
c2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMg
ZGVjcmVhc2luZyIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgIHNjcm9sbERp
cmVjdGlvbkNoYW5nZWQgPSBuZXdMZWZ0IDw9IG9sZExlZnQgJiYgbmV3VG9wIDw9IG9sZFRvcDsK
KyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFs
KG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAg
ICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRv
cCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAm
JiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBz
Y3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIs
IDUwMCwgMjUwKTsKKyAgICAgICAgICAgICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bExlZnQ7CisgICAgICAgICAgICAgICAgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsK
KyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBy
ZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3As
IDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAg
ICB9CisgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3
VG9wOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7Cisg
ICAgfSk7CisgIH0sICJTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Ny
b2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICByZXNldFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxT
Y3JvbGxBYm9ydGVkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3Ro
IiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5j
dGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoIWluaXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAg
ICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9s
bExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFu
X2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAg
ICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAwICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAg
ICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFsIHNjcm9sbC4KKyAgICAgICAgICAgICAgICBp
bml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShv
dmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIDUwMCwgMjUwKTsKKyAgICAgICAgICAg
ICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAg
bmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0
aW9uIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9s
bFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9u
Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Nyb2xsVG9wIHNo
b3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9s
ZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBj
YXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChk
b25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFuIGlu
c3RhbnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXJvb3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAuLjI3OTlmZGNjMjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzcgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBz
Y3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BB
U1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45NmQxMWFiOTYyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1s
PjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0Pgor
PGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIgd2lkdGg9IjQw
MHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgorICA8c3R5bGU+
CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRvQmVoYXZpb3Ig
eworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21vb3RoQmVoYXZp
b3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8L3N0eWxlPgor
ICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsg
YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Jz4KKyAgICAg
IDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0
OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHlsZT0nZGlzcGxh
eTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWln
aHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2PgorICA8L2Jv
ZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFtZUxvYWRUZXN0
ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5nRWxlbWVudCwg
c3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVm
dCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkg
PT4geworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9k
ZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisg
ICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5m
b3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZl
KSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7
CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9y
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51
bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
YXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAg
ICAgfSk7CisgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Ny
b2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAs
IDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhl
bigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7CisgIH0pKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA1ZWIzMjcyZjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBAQAorCitQ
QVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2lu
ZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMzMzM2Q2NGY4
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzEgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVu
dC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwv
dGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxp
YS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9kZSIg
d2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1sPgor
ICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5hdXRv
QmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAuc21v
b3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQorICA8
L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWlnaHQ6
IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7
Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBzdHls
ZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAx
MHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwvZGl2
PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlmcmFt
ZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5n
V2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBlbGVtZW50VG9S
ZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICBpZnJh
bWVOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5zdGVwX2Z1bmNf
ZG9uZSgoKSA9PiB7CisgICAgc2Nyb2xsaW5nV2luZG93ID0gaWZyYW1lTm9kZS5jb250ZW50V2lu
ZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZyYW1lTm9kZS5jb250ZW50RG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIpOworCisgICAgWyJzY3JvbGwi
LCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4gewor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1
bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3co
c2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGlu
Z1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRv
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAp
OworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwg
Imluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChz
Y3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3co
c2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
YCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJz
Y3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7
CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxX
aW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsK
KworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNmFlNTZlYzc3Li5hNDgxMWZjODAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8
Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwg
YmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRm
b3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5
MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNl
ZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
c3VwcG9ydCBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0uIEl0IHJlbGll
cyBvbiBVSVNjcm9sbFZpZXcncworICAgICAgICBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBw
b3J0IGFuZCBpcyBleGVjdXRlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBUZXN0czog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1w
b3NpdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKworICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBi
eSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVk
IHNjcm9sbCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5p
bWF0aW9uIHN0YXR1cyBmcm9tIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOiBB
ZGQgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gdG8gaW5kaWNhdGUgaXQn
cyBhbmltYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOiBEaXR0
by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6cmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2UpOiBVcGRhdGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFk
ZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90
LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRT
dGF0ZUFmdGVyQ2hpbGRyZW4pOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIHRoZSBzY3JvbGwgaXMg
YW5pbWF0ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGU6OnNjcm9sbFRvKTogSWYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiBpcyB0cnVlLCBzZW5k
IHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLCBldmVuIGlmIHRoZSBzY3Jv
bGwgcG9zaXRpb24gZG9lc24ndCBjaGFuZ2UuCisgICAgICAgIE1haW50YWluIHRoZSBzdGF0dXMg
b2YgbV9zdG9wU2Nyb2xsQW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xs
UG9zaXRpb25DaGFuZ2VkKTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xs
IHBvc2l0aW9uIGltbWVkaWF0ZWx5LCBzbyBkb24ndCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZv
IG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRS
ZXF1ZXN0QW5pbWF0ZWRTY3JvbGwpOiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCBpbmRpY2F0ZXMg
dGhhdCB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0LgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRlZFNjcm9sbCBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1h
dGlvbiBzdGF0dXMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3Jv
bGxBbmltYXRpb24pOiBJZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlv
biwgdGhlIHByZXZpb3VzIHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
VHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQg
b3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGlu
ZGljYXRlIHRoZSBzdGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRp
b24pOiBVcGRhdGUgU2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpTY3JvbGxh
YmxlQXJlYSk6IEFkZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVh
OjpjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9s
bEJlaGF2aW9yVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRDdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogU2Vu
ZCBhIHF1ZXN0IG9mIG5hdGl2ZSBzY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xs
IGFuaW1hdGlvbiBieSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZSgpLgorCiAyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4K
IAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBTY3Jv
bGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
aW5kZXggOTM5Y2U0YmVlMi4uNzMxZTMyMjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtMzY2OCw2ICszNjY4LDE0IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5CiAgICAgYXV0
byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOwogICAgIHNldEN1cnJl
bnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBl
KFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBz
ZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCisKICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkg
PT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQogICAgICAgICBz
Y3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKICAgICBpZiAob2Zmc2V0ICE9IHRo
aXMtPnNjcm9sbE9mZnNldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA0MjllZWU5YTk2
Li5hOTdlYTQyZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4LDcgKzI0OCwxNCBA
QCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVw
ZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUg
PSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
IT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29sIGluUHJvZ3JhbW1h
dGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxU
eXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFj
a0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSBpblByb2dy
YW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBib29sIGFuaW1hdGVkID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbEJl
aGF2aW9yVHlwZSgpID09IFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoOworICAgIC8vIFRoZSBz
Y3JvbGwgcG9zaXRpb24gb2YgYW5pbWF0ZWQgc2Nyb2xsaW5nIHdpbGwgYmUgc2V0IGJ5IHRoZSBV
SSBwcm9jZXNzLiBTbyBzaG91bGRuJ3Qgc2V0IGl0IG5vdy4KKyAgICB1cGRhdGVTY3JvbGxQb3Np
dGlvbiA9ICFhbmltYXRlZCAmJiB1cGRhdGVTY3JvbGxQb3NpdGlvbjsKKyNlbmRpZgorICAgIGlm
ICh1cGRhdGVTY3JvbGxQb3NpdGlvbikKICAgICAgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRl
ckFzeW5jU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHsgfSwgU2Nyb2xs
VHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwog
CiAgICAgLy8gSWYgdGhpcyBmcmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0IGludG8g
dGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCkBAIC0y
NjAsNyArMjY3LDE0IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKFNjcm9sbGFibGVBcmVhJiBzY3JvCiAgICAgaWYgKCFzdGF0ZU5v
ZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgYXV0byBzdGF0dXMgPSBhbmltYXRlZCA/IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2
ZUFuaW1hdGlvbiA6IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbjsKKyAgICBz
Y3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhzdGF0dXMpOworCisgICAgc3Rh
dGVOb2RlLT5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9n
cmFtbWF0aWNTY3JvbGwsIGFuaW1hdGVkKTsKKyNlbHNlCiAgICAgc3RhdGVOb2RlLT5zZXRSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9ncmFtbWF0aWNTY3JvbGwp
OworI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI5MSw2ICszMDUsMzIgQEAgdm9p
ZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9u
QWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBtX3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVy
LnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGlu
Z05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAg
IGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3
LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5Bbmlt
YXRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xs
IGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxh
YmxlQXJlYUZvclNjcm9sbExheWVySUQobm9kZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3Jv
bGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwor
ICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5u
b2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxl
ZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9z
Y2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRlTGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4uM2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQ
cm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVw
ZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0
IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRP
cmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsK
KyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6
b250YWxJbmRleCwgdW5zaWduZWQgdmVydGljYWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
LmNwcAppbmRleCA3MTdiZmMyYTU1Li43ZTIxODhjMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgog
ICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVh
UGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
LCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2RlLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7
CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0y
MTksMTIgKzIyMiwyMiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5
Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFtcyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29s
IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlv
bikKK3sKKyAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb247CisgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworICAgIG1fcmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uID0gcmVxdWVzdGVkV2l0aEFuaW1hdGlvbjsKKyAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOworfQorI2Vsc2UK
IHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogewogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b24gPSByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGw7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKTsK
IH0KKyNlbmRpZgogCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cykKIHsKQEAgLTMx
NCw2ICszMjcsMTEgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVQKICAgICBpZiAobV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiAgICAgICAgIHRz
LmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiByZXByZXNlbnRzIHByb2dy
YW1tYXRpYyBzY3JvbGwiLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dy
YW1tYXRpY1Njcm9sbCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbikKKyAgICAgICAgdHMuZHVtcFByb3Bl
cnR5KCJyZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHdpdGggYW5pbWF0aW9uIiwgbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pOworI2VuZGlmCisKICAgICBpZiAoIW1fcGFy
ZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHRzLmR1bXBQcm9w
ZXJ0eSgicGFyZW50IHJlbGF0aXZlIHNjcm9sbGFibGUgcmVjdCIsIG1fcGFyZW50UmVsYXRpdmVT
Y3JvbGxhYmxlUmVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNDk2N2E2Y2U4MS4u
NmUyNWQ3YmJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKQEAgLTExMSw3ICsxMTEsMTIgQEAg
cHVibGljOgogCiAgICAgY29uc3QgRmxvYXRQb2ludCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOyB9CiAgICAgYm9vbCBy
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSBjb25z
dCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbDsgfQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGJvb2wgcmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uID0gZmFsc2Up
OworI2Vsc2UKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
OworI2VuZGlmCiAKICAgICBib29sIGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50czsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0SXNNb25pdG9yaW5nV2hlZWxFdmVudHMoYm9vbCk7CkBAIC0xNzEsNiArMTc2LDkgQEAg
cHJpdmF0ZToKICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnM7CiAKICAgICBib29sIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsIHsgZmFsc2UgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGJvb2wgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24geyBmYWxzZSB9
OworI2VuZGlmCiAgICAgYm9vbCBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzIHsgZmFsc2UgfTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApp
bmRleCAxNTFhYzI5ZjhhLi43YWRkZmVmNGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC04Miw4ICs4MiwxMyBAQCBwdWJsaWM6CiAgICAg
Ly8gVXBkYXRlcyBGcmFtZVZpZXcvUmVuZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBHcmFw
aGljc0xheWVycy4KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwo
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
ID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgPSAwOwogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBDYWxsZWQgZm9yIHNjcm9sbCBhbmltYXRpb24gc3RhdHVz
IHVwZGF0ZXMuCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCAv
KmlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyovKSB7IH0KKyNlbmRpZgorCiAgICAgLy8gQ2Fs
bGVkIGZvciByZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMuCi0gICAgdmlydHVhbCB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25z
dCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJl
cXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgLypzY3JvbGxQ
b3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCovLCBib29sIC8q
d2l0aEFuaW1hdGlvbiovID0gZmFsc2UpIHsgfQogCiAgICAgLy8gRGVsZWdhdGVkIHNjcm9sbGlu
Zy96b29taW5nIGhhcyBjYXVzZWQgdGhlIHZpZXdwb3J0IHRvIGNoYW5nZSwgc28gdXBkYXRlIHZp
ZXdwb3J0LWNvbnN0cmFpbmVkIGxheWVycwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbWFpbkZy
YW1lVmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGxheW91dFZpZXdwb3J0
LCBkb3VibGUgc2NhbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDczZGNhMjhlZjEu
LjNmYWZkYzI2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTEwNyw4ICsxMDcsMTIg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVCZWZvcmVDaGls
ZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU4KIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0
YXRlTm9kZSkKIHsKICAgICBjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUmIHNjcm9s
bGluZ1N0YXRlTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4oc3Rh
dGVOb2RlKTsKKyAgICBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZTsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIHdpdGhBbmltYXRpb24gPSBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCk7CisjZW5kaWYKICAgICBpZiAoc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkKLSAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbGlu
Z1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxpbmdTdGF0ZU5vZGUu
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkpOwor
ICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChz
Y3JvbGxpbmdOb2RlSUQoKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uKCksIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwoKSwgd2l0aEFuaW1hdGlvbik7CiAKICAgICBtX2lzRmlyc3RD
b21taXQgPSBmYWxzZTsKIH0KQEAgLTE1NywyMSArMTYxLDQzIEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OnNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIFNjcm9sbFBv
c2l0aW9uCiAgICAgc2Nyb2xsVG8oY3VycmVudFNjcm9sbFBvc2l0aW9uKCkgKyBkZWx0YSwgU2Ny
b2xsVHlwZTo6VXNlciwgY2xhbXApOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3Jv
bGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wKQorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9h
dFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNs
YW1wIGNsYW1wLCBib29sIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24pCisjZWxzZQordm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRp
b24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcCBjbGFtcCwgYm9v
bCAvKm5lZWRTeW5jU2Nyb2xsUG9zaXRpb24qLykKKyNlbmRpZgogewotICAgIGlmIChwb3NpdGlv
biA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikKKyAgICBpZiAocG9zaXRpb24gPT0gbV9jdXJy
ZW50U2Nyb2xsUG9zaXRpb24pIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICAv
LyBTZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBp
ZiAocmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgJiYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbikKKyAg
ICAgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhp
cywgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYyk7CisgICAgICAgIHNjcm9sbGlu
Z1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENo
YW5nZShzY3JvbGxpbmdOb2RlSUQoKSwgZmFsc2UpOworICAgICAgICBzZXRSZXF1ZXN0QW5pbWF0
ZWRTY3JvbGwoZmFsc2UpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIElmIGR1cmluZyBhIHNjcm9sbCBhbmltYXRpb24s
IG5lZWQgdG8gc3RvcCBpdCBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgb25lLgorICAgIGlmIChzY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKCkpCisgICAgICAgIHNldE5lZWRzU3RvcEN1cnJlbnRTY3Jv
bGxBbmltYXRpb24odHJ1ZSk7CisjZW5kaWYKICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0SXNIYW5k
bGluZ1Byb2dyYW1tYXRpY1Njcm9sbChzY3JvbGxUeXBlID09IFNjcm9sbFR5cGU6OlByb2dyYW1t
YXRpYyk7Ci0gICAgCisKICAgICBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IGFkanVzdGVkU2Ny
b2xsUG9zaXRpb24ocG9zaXRpb24sIGNsYW1wKTsKLSAgICAKKwogICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUgIiA8PCBz
Y3JvbGxpbmdOb2RlSUQoKSA8PCAiIHNjcm9sbFRvICIgPDwgcG9zaXRpb24gPDwgIiAoZGVsdGEg
ZnJvbSBsYXN0IGNvbW1pdHRlZCBwb3NpdGlvbiAiIDw8IChtX2xhc3RDb21taXR0ZWRTY3JvbGxQ
b3NpdGlvbiAtIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSA8PCAiKSIpOwogCiAgICAgdXBkYXRl
Vmlld3BvcnRGb3JDdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKICAgICBjdXJyZW50U2Nyb2xsUG9z
aXRpb25DaGFuZ2VkKCk7CiAKICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0SXNIYW5kbGluZ1Byb2dy
YW1tYXRpY1Njcm9sbChmYWxzZSk7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNl
dE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oZmFsc2UpOworICAgIHNldFJlcXVlc3RB
bmltYXRlZFNjcm9sbChmYWxzZSk7CisjZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCkBAIC0xNzksNiArMjA1
LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3Np
dGlvbkNoYW5nZWQoKQogICAgIHJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKTsKICAgICByZXBv
c2l0aW9uUmVsYXRlZExheWVycygpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBp
ZiAoIXJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKQorICAgICAgICByZXR1cm47CisjZW5kaWYKICAg
ICBzY3JvbGxpbmdUcmVlKCkubm90aWZ5UmVsYXRlZE5vZGVzQWZ0ZXJTY3JvbGxQb3NpdGlvbkNo
YW5nZSgqdGhpcyk7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKCp0aGlzKTsKIH0KQEAgLTI2Niw2ICsyOTYsMzcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNjcm9sbGluZ1N0YXRl
VHIKICAgICB0cy5kdW1wUHJvcGVydHkoInNjcm9sbGFibGUgYXJlYSBwYXJhbWV0ZXJzIiwgbV9z
Y3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
K3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RBbmltYXRlZFNjcm9s
bChib29sIGFuaW1hdGVkKQoreworICAgIG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsID0gYW5pbWF0
ZWQ7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRl
ZFNjcm9sbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsOwor
fQorCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKGJvb2wgaW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MgPSBpblByb2dyZXNzOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGJvb2wgc3RvcCkKK3sKKyAg
ICBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24gPSBzdG9wOworfQorCitib29sIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9u
OworfQorI2VuZGlmCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNGNiZjRkMWFmMC4uZjlm
MzEwZGI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoK
ICAgICBGbG9hdFNpemUgc2Nyb2xsRGVsdGFTaW5jZUxhc3RDb21taXQoKSBjb25zdCB7IHJldHVy
biBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbiAtIG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9u
OyB9CiAKICAgICAvLyBUaGVzZSBhcmUgaW1wZXJhdGl2ZTsgdGhleSBhZGp1c3QgdGhlIHNjcm9s
bGluZyBsYXllcnMuCi0gICAgdm9pZCBzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xs
VHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3Np
dGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcyk7CisgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBGbG9h
dFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9sbFBvc2l0aW9uQ2xh
bXAgPSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywgYm9vbCBuZWVkU3luY1Nj
cm9sbFBvc2l0aW9uID0gZmFsc2UpOwogICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgRmxvYXRTaXpl
JiwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVk
Z2VzKTsKIAogICAgIHZvaWQgd2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBG
bG9hdFBvaW50JiBwb3NpdGlvbiwgT3B0aW9uYWw8RmxvYXRSZWN0PiBvdmVycmlkZUxheW91dFZp
ZXdwb3J0ID0geyB9LCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbjo6U3luYyk7CkBAIC05MSw2ICs5MSwxNSBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX3Njcm9sbENvbnRhaW5lckxheWVyOyB9CiAgICAgY29uc3QgTGF5ZXJSZXByZXNl
bnRhdGlvbiYgc2Nyb2xsZWRDb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxl
ZENvbnRlbnRzTGF5ZXI7IH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBz
ZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCk7CisgICAgYm9vbCByZXF1ZXN0QW5pbWF0ZWRT
Y3JvbGwoKSBjb25zdDsKKyAgICB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9v
bCk7CisgICAgYm9vbCBzY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGJvb2wpOworICAgIGJvb2wgbmVl
ZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0OworI2VuZGlmCisKIHByb3RlY3Rl
ZDoKICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xs
aW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKQEAgLTE0OCw2ICsxNTcsMTIgQEAgcHJp
dmF0ZToKICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnM7CiAgICAgYm9vbCBtX2lzRmlyc3RDb21taXQgeyB0cnVlIH07CiAKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIGJvb2wgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9zY3JvbGxBbmltYXRpb25JblByb2dyZXNzIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbiB7IGZhbHNlIH07CisjZW5kaWYK
KwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxDb250YWluZXJMYXllcjsKICAgICBM
YXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IGY0NTdiMTU2MWUuLmY2ZDM1NjY1ZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtNTQsMTEgKzU0LDE5IEBAIGVu
dW0gY2xhc3MgU2Nyb2xsUG9zaXRpb25DbGFtcCA6IHVpbnQ4X3QgewogICAgIFRvQ29udGVudEVk
Z2VzLAogfTsKIAotLy8gRklYTUU6IEFkZCBhbm90aGVyIHN0YXR1cyBJbk5hdGl2ZUFuaW1hdGlv
biB0byBpbmRpY2F0ZSBuYXRpdmUgc2Nyb2xsaW5nIGlzIGluIHByb2dyZXNzLgotLy8gU2VlOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKK2VudW0gY2xhc3MgU2Ny
b2xsQmVoYXZpb3JUeXBlIDogdWludDhfdCB7CisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgsCit9
OworI2VuZGlmCisKIGVudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgOiB1aW50OF90IHsK
ICAgICBOb3RJbkFuaW1hdGlvbiwKICAgICBJbk5vbk5hdGl2ZUFuaW1hdGlvbiwKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEluTmF0aXZl
QW5pbWF0aW9uLAorI2VuZGlmCiB9OwogCiBpbmxpbmUgU2Nyb2xsRGlyZWN0aW9uIGxvZ2ljYWxU
b1BoeXNpY2FsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGlzVmVydGlj
YWwsIGJvb2wgaXNGbGlwcGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApp
bmRleCA4ZTZiMGM2NTM1Li4xZDJjMzJlYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcApAQCAtNDY1LDYgKzQ2NSwxMCBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgYm9vbC8qCiB7
CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxWaWV3Ojpz
ZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9s
bEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpOworI2VuZGlmCisKICAg
ICBpZiAocHJvaGliaXRzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGE4YjYwMzdmYmMuLjE1MDcw
NGMyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAg
LTcxLDYgKzcxLDkgQEAgU2Nyb2xsYWJsZUFyZWE6OlNjcm9sbGFibGVBcmVhKCkKICAgICAsIG1f
c2Nyb2xsT3JpZ2luQ2hhbmdlZChmYWxzZSkKICAgICAsIG1fY3VycmVudFNjcm9sbFR5cGUoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFNjcm9sbFR5cGU6OlVzZXIpKQogICAgICwgbV9zY3JvbGxTaG91
bGRDbGVhckxhdGNoZWRTdGF0ZShmYWxzZSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgICwgbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBl
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihTY3JvbGxCZWhhdmlvclR5cGU6Okluc3RhbnQpKQorI2Vu
ZGlmCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4
IDdkOTc5MDcxODUuLjU1NjcyZjgxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaApAQCAtMjQ2LDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsVHlwZSBj
dXJyZW50U2Nyb2xsVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbFR5cGU+
KG1fY3VycmVudFNjcm9sbFR5cGUpOyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsVHlwZShT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihzY3JvbGxUeXBlKTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3VycmVudFNj
cm9sbEJlaGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbEJlaGF2
aW9yVHlwZT4obV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQgc2V0Q3Vy
cmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVoYXZpb3JU
eXBlKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzY3JvbGxCZWhhdmlvclR5cGUpOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xsU2hvdWxk
Q2xlYXJMYXRjaGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENsZWFyTGF0
Y2hlZFN0YXRlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZShi
b29sIHNob3VsZENsZWFyKSB7IG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUgPSBzaG91
bGRDbGVhcjsgfQogCkBAIC00MDksNiArNDE0LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBt
X3Njcm9sbE9yaWdpbkNoYW5nZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbFR5
cGUgOiAxOyAvLyBTY3JvbGxUeXBlCiAgICAgdW5zaWduZWQgbV9zY3JvbGxTaG91bGRDbGVhckxh
dGNoZWRTdGF0ZSA6IDE7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKKyAgICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUgOiAx
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBjZWEwZDkxNmE2Li42MTNhNmFmYTM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI2MDIsMTIgKzI2MDIs
MjQgQEAgU2Nyb2xsT2Zmc2V0IFJlbmRlckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBT
Y3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCkgY28KIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xs
VG9PZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiBzY3JvbGxPZmZzZXQsIFNjcm9sbFR5cGUgc2Ny
b2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlm
IChjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6
SW5Ob25OYXRpdmVBbmltYXRpb24pCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5p
bWF0aW9ucygpOwogCiAgICAgU2Nyb2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFt
cGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9s
bE9mZnNldCkgOiBzY3JvbGxPZmZzZXQ7Ci0gICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0g
dGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhp
cy0+c2Nyb2xsT2Zmc2V0KCkpIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQorICAgICAgICAvLyBJZiBVSVNjcm9sbFZpZXcgaXMgcGVyZm9ybWlu
ZyBhIHNjcm9sbCBhbmltYXRpb24sIHRoZSBzY3JvbGwgb2Zmc2V0IG9mIHRoZSBXZWIgcHJvY2Vz
cyBtaWdodCBiZSBvdmVycmlkZGVuLgorICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGNhbGwgcmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlIGhlcmUgYW5kIGxldCBpdCBiZSBjaGVja2VkIG9uIHRo
ZSBVSSBwcm9jZXNzLgorICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIG9mZnNldCBvbiB0aGUgVUkg
cHJvY2VzcyBpcyBkaWZmZXJlbnQsIHRoZSBjb3JyZWN0IHNjcm9sbCBvZmZzZXQgbmVlZHMgdG8g
c3luYyBiYWNrIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgaWYgKGN1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2ZUFuaW1hdGlv
bikKKyAgICAgICAgICAgIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlv
bkZyb21PZmZzZXQoY2xhbXBlZFNjcm9sbE9mZnNldCkpOworI2VuZGlmCiAgICAgICAgIHJldHVy
bjsKKyAgICB9CiAKICAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxU
eXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CkBAIC0yNjM5LDYg
KzI2NTEsMTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9u
KGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGwKICAgICBhdXRvIHByZXZpb3VzU2Ny
b2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUo
c2Nyb2xsVHlwZSk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZp
b3JUeXBlOjpTbW9vdGgpOworICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Ny
b2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKSB7CisgICAgICAgIHNldEN1cnJlbnRTY3Jv
bGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5k
aWYKKwogICAgIFNjcm9sbE9mZnNldCBuZXdTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3Jv
bGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KG9mZnNldCkgOiBvZmZzZXQ7
CiAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5j
YW5jZWxBbmltYXRpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ0MzU1Y2IwMGQuLmIyOGFhNGQwY2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGll
Y2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZp
b3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0
aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEFkZCBDU1NPTSBzbW9vdGgg
c2Nyb2xsaW5nIGFzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlLiBPbiBpb3MgcGxhdGZvcm0sIHVz
ZSBuYXRpdmUgYW5pbWF0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGludGVyZmFjZXMgdG8gcGVyZm9y
bWFuY2Ugc21vb3RoIHNjcm9sbCBhbmQgc2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBX
ZWIgcHJvY2Vzcy4KKworICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU+OjplbmNvZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU+OjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpkdW1wKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKHBvaW50c0Vx
dWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwpOiBIZWxwIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHR3byBm
bG9hdCBwb2ludHMgYXJlIG5vdCBlcXVhbCBidXQgaW4gdGhlIHNhbWUgZGV2aWNlIHBpeGVsLgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9s
bE9yaWdpbjphbmltYXRlZDpdKTogQWRkIGFuaW1hdGVkIGZsYWcgdG8gc3RhcnQgYSBhbmltYXRl
ZCBzY3JvbGwgaWYgbmVlZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld0RpZEVu
ZFNjcm9sbGluZ0FuaW1hdGlvbjpdKTogU2VuZCBzcm9sbCBlbmQgbWVzc2FnZSB0byB0aGUgV2Vi
IHByb2Nlc3MuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9z
aXRpb246c2Nyb2xsT3JpZ2luOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1h
dGlvbik6IFByb3ZpZGUgaW50ZXJmYWNlIGZvciBhbmltYXRlZCBzY3JvbGxpbmcuCisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Ojpjb21taXRMYXllclRyZWUpOiBBZGQgYW5pbWF0ZWQgZmxhZy4KKyAgICAgICAgKiBVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCk6IFN5bmMgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2Vi
IHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBBZGQgYW5pbWF0ZWQgc2Nyb2xs
aW5nIGluZm8gdG8gbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IFN5bmMgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzc0RpZENoYW5nZSk6IERpdHRvLiBJdCdzIHNwZWNpZmljIHRvIHRoZSByb290IG5vZGUu
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOiBBZGQgYW5pbWF0ZWQgaW5mby4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0
c1Njcm9sbCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpz
Y3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IERp
dHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1t
OgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmll
d0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjpdKTogU2VuZCBzY29sbCBlbmQgaW5mbyB0byB0aGUg
V2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IElmIHRoZSBzY3JvbGwgcG9z
aXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzIGlzbid0IGVxdWFsIHRvIHRoZSBVSSBwcm9jZXNzLAor
ICAgICAgICB0aGUgc2Nyb2xsIHBvc2l0aW9uIHNob3VsZCBiZSBzeW5jaHJvbml6ZWQsIGV2ZW4g
dGhlcmUncyBubyBzY3JvbGxpbmcgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzLgorICAgICAg
ICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpyZXBvc2l0
aW9uU2Nyb2xsaW5nTGF5ZXJzKTogQ2FsbGluZyB0aGUgbmF0aXZlIGFuaW1hdGVkIHNjcm9sbGlu
ZyBpbnRlcmZhY2UgZm9yIHNtb290aCBzY3JvbGwuCisgICAgICAgIElmIHRoZXJlJ3MgYSBzY3Jv
bGwgYW5pbWF0aW9uIHBlcmZvcm1pbmcsIGl0IHNob3VsZCBiZSBzdG9wcGVkIGZpcnN0LCB0aGVu
IHN0YXJ0IGEgbmV3IHNjcm9sbGluZy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlv
bik6IFN5bmMgc2Nyb2xsIGVuZCBpbmZvIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZXF1ZXN0U2Nyb2xsKTogVG8gY2FsbCBkaWZmZXJlbnQgZnVuY3Rpb25zIGZvciBzbW9vdGgg
YW5kIGluc3RhbnQgc2Nyb2xsLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzQ2hhbmdlZEZvck5vZGUpOgorCiAyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNo
ZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9y
IHBhcnNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmNwcAppbmRleCBkN2IxZTE5MzcyLi41NzQ0ZTFjODZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xNTIsNiAr
MTUyLDkgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdAogICAgIFNDUk9MTElOR19OT0RFX0VOQ09E
RShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zLCBzY3Jv
bGxhYmxlQXJlYVBhcmFtZXRlcnMpCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5p
bWF0aW9uKQorI2VuZGlmCiAKICAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2Rl
LnNjcm9sbENvbnRhaW5lckxheWVyKCkpOwpAQCAtMjYwLDcgKzI2MywxNCBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFNjcm9sbAogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgYm9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uOworICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHNjcm9sbFdpdGhBbmltYXRpb24pKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBub2RlLnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNj
cm9sbFBvc2l0aW9uLCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxXaXRoQW5p
bWF0aW9uKTsKKyNlbHNlCiAgICAgICAgIG5vZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2VuZGlmCiAg
ICAgfQogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjE4LDkgQEAg
c3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8
fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVl
c3RlZC1zY3JvbGwtcG9zaXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwog
ICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJv
Z3JhbWF0aWMiLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCgpKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1w
UHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBub2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0K
IAogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXgg
MzM1NGFjNmVlYy4uMTA4ZTRjMDNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xNjE3LDYgKzE2MTcsMTEgQEAgc3RhdGljIGlubGlu
ZSBib29sIHBvaW50c0VxdWFsSW5EZXZpY2VQaXhlbHMoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZs
b2F0IGRldmljZVMKICAgICAgICAgJiYgZmFicyhhLnkgKiBkZXZpY2VTY2FsZUZhY3RvciAtIGIu
eSAqIGRldmljZVNjYWxlRmFjdG9yKSA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNp
bG9uKCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBwb2ludHNFcXVhbEluUm91bmRUb0Rldmlj
ZVBpeGVsKENHUG9pbnQgYSwgQ0dQb2ludCBiLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sK
KyAgICByZXR1cm4gQ0dSb3VuZChhLnggKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChi
LnggKiBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICAgICAgJiYgQ0dSb3VuZChhLnkgKiBkZXZpY2VT
Y2FsZUZhY3RvcikgPT0gQ0dSb3VuZChiLnkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CiBzdGF0
aWMgQ0dTaXplIHJvdW5kU2Nyb2xsVmlld0NvbnRlbnRTaXplKGNvbnN0IFdlYktpdDo6V2ViUGFn
ZVByb3h5JiBwYWdlLCBDR1NpemUgY29udGVudFNpemUpCiB7CiAgICAgZmxvYXQgZGV2aWNlU2Nh
bGVGYWN0b3IgPSBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCk7CkBAIC0yMzQxLDkgKzIzNDYsMTAg
QEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJD
b3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKICAgICByZXR1cm4gY29udGVudE9mZnNldC5jb25z
dHJhaW5lZEJldHdlZW4oV2ViQ29yZTo6RmxvYXRQb2ludCgpLCBXZWJDb3JlOjpGbG9hdFBvaW50
KG1heGltdW1Db250ZW50T2Zmc2V0KSk7CiB9CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNj
cm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9y
aWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luCistICh2b2lkKV9zY3JvbGxUb0Nv
bnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBz
Y3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDooQk9P
TClhbmltYXRlZAogewotICAgIGlmIChfY29tbWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uIHx8
IF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlICE9IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBk
YXRlTW9kZTo6Tm90UmVzaXppbmcpCisgICAgLy8gQW5pbWF0ZWQgc2Nyb2xsaW5nIHNob3VsZG4n
dCBiZSBza2lwcGVkLgorICAgIGlmICghYW5pbWF0ZWQgJiYgKF9jb21taXREaWRSZXN0b3JlU2Ny
b2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5h
bWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZnNldCA9IFdlYkNvcmU6OlNjcm9sbGFi
bGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHRvRmxvYXRT
aXplKHNjcm9sbE9yaWdpbikpOwpAQCAtMjM1NywxMyArMjM2MywyMSBAQCBzdGF0aWMgV2ViQ29y
ZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQg
Y29udGVudE9mZgogCiAgICAgW19zY3JvbGxWaWV3IF9zdG9wU2Nyb2xsaW5nQW5kWm9vbWluZ0Fu
aW1hdGlvbnNdOwogCi0gICAgaWYgKCFDR1BvaW50RXF1YWxUb1BvaW50KGNvbnRlbnRPZmZzZXRJ
blNjcm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdKSkKLSAg
ICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldEluU2Nyb2xs
Vmlld0Nvb3JkaW5hdGVzXTsKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhleSBhcmUgbm90
IGVxdWFsLCBidXQgaW4gdGhlIHNhbWUgZGV2aWNlIHBpeGVsLCBzbyBfc2Nyb2xsVmlldyB3b24n
dCBjaGFuZ2UuCisgICAgLy8gV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIHJvdW5kIHRvIGRldmlj
ZSBwaXhlbCBoZXJlLgorICAgIGlmICghcG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbChj
b250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFtfc2Nyb2xsVmlldyBjb250ZW50
T2Zmc2V0XSwgX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpKQorICAgICAgICBbX3Njcm9sbFZp
ZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMg
YW5pbWF0ZWQ6YW5pbWF0ZWRdOwogICAgIGVsc2UgewogICAgICAgICAvLyBJZiB3ZSBoYXZlbid0
IGNoYW5nZWQgYW55dGhpbmcsIHRoZXJlIHdvdWxkIG5vdCBiZSBhbnkgVmlzaWJsZUNvbnRlbnRS
ZWN0IHVwZGF0ZSBzZW50IHRvIHRoZSBjb250ZW50LgogICAgICAgICAvLyBUaGUgV2ViUHJvY2Vz
cyB3b3VsZCBrZWVwIHRoZSBpbnZhbGlkIGNvbnRlbnRPZmZzZXQgYXMgaXRzIHNjcm9sbCBwb3Np
dGlvbi4KICAgICAgICAgLy8gVG8gc3luY2hyb25pemUgdGhlIFdlYlByb2Nlc3Mgd2l0aCB3aGF0
IGlzIG9uIHNjcmVlbiwgd2Ugc2VuZCB0aGUgVmlzaWJsZUNvbnRlbnRSZWN0IGFnYWluLgogICAg
ICAgICBfcGFnZS0+cmVzZW5kTGFzdFZpc2libGVDb250ZW50UmVjdHMoKTsKKyAgICAgICAgLy8g
SWYgX3Njcm9sbFZpZXcgd29uJ3QgY2hhbmdlLCB3ZSBzdGlsbCBuZWVkIHRvIHRlbGwgdGhlIFdl
YiBwcm9jZXNzIHRoYXQgdGhlIGFuaW1hdGlvbiBzdG9wcGVkLgorICAgICAgICBpZiAoYW5pbWF0
ZWQpIHsKKyAgICAgICAgICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eSogY29vcmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOworICAg
ICAgICAgICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9yLT5z
Y3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uo
ZmFsc2UpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0yODc5LDYgKzI4OTMsMTAgQEAgc3Rh
dGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpG
bG9hdFBvaW50IGNvbnRlbnRPZmYKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0Fu
aW1hdGlvbjooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewogICAgIFtzZWxmIF9kaWRGaW5p
c2hTY3JvbGxpbmddOworCisgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7Cisg
ICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZVJv
b3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsKIH0KIAog
LSAodm9pZClfc2Nyb2xsVmlld0RpZEludGVycnVwdERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3
ICopc2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA0MzUwODBmMzI0Li41Y2I1ZjU4MTcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaApAQCAtOTcsNyArOTcsNyBAQCBzdHJ1Y3QgUHJpbnRJbmZvOwogCiAtIChSZWZQdHI8
V2ViS2l0OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90OwogCi0tICh2b2lkKV9zY3Jv
bGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3Np
dGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbjsKKy0gKHZv
aWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNj
cm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2lu
IGFuaW1hdGVkOihCT09MKWFuaW1hdGVkOwogLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3Jl
OjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2lu
IG1pbmltdW1TY3JvbGxEaXN0YW5jZTooZmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNlOwogLSAo
ZG91YmxlKV9pbml0aWFsU2NhbGVGYWN0b3I7CiAtIChkb3VibGUpX2NvbnRlbnRab29tU2NhbGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZTg0ODI0ZmQ4NS4uZGUzZDMz
Njc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTgxLDYgKzE4MSw4
IEBAIHB1YmxpYzoKICAgICAvLyBUZWxsIHRoZSB2aWV3IHRvIHNjcm9sbCB0byB0aGUgZ2l2ZW4g
cG9zaXRpb24sIGFuZCB3aGV0aGVyIHRoaXMgd2FzIGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4KICAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgPSAw
OwogCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgc2Nyb2xsT3JpZ2luKSB7IH0KKwogICAgIC8vIFJldHVybiB0aGUgY3VycmVudCBzY3JvbGwg
cG9zaXRpb24gKG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgV2ViQ29yZSBzY3JvbGwg
cG9zaXRpb24sIGJlY2F1c2Ugb2Ygc2NhbGluZywgaW5zZXRzIGV0Yy4pCiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCAzODBmMTI0NDQz
Li4wYTQyZjk0NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbQpAQCAtMjI0LDggKzIyNCwxNCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFucwog
CiAgICAgLy8gSGFuZGxlIHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gdXBkYXRlcyBmcm9tIHRo
ZSBzY3JvbGxpbmcgdHJlZSB0cmFuc2FjdGlvbiBhZnRlciBkaWRDb21taXRMYXllclRyZWUoKQog
ICAgIC8vIGhhcyB1cGRhdGVkIHRoZSB2aWV3IHNpemUgYmFzZWQgb24gdGhlIGNvbnRlbnQgc2l6
ZS4KLSAgICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBk
YXRlKQotICAgICAgICBtX3dlYlBhZ2VQcm94eS5yZXF1ZXN0U2Nyb2xsKHJlcXVlc3RlZFNjcm9s
bEluZm8ucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9s
bE9yaWdpbigpKTsKKyAgICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBv
c2l0aW9uVXBkYXRlKSB7CisgICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVx
dWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbgorICAgICAgICAgICAgLCBs
YXllclRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKQorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgICAgICAgICAsIHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdFdpdGhBbmltYXRp
b24KKyNlbmRpZgorICAgICAgICAgICAgKTsKKyAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKIAogICAgIGlmIChtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4
IDQ4MjNmNzZhOTcuLjFkNDBhNmE2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdl
KFdlYkNvcmU6OgogfQogCiAvLyBUaGlzIGNvbWVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlLgot
dm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURp
ZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQm
IG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmll
d3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbikKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBj
b25zdCBGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQ
b2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
IHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BB
bmltYXRpb24pCiB7CiAgICAgLy8gU2Nyb2xsIHVwZGF0ZXMgZm9yIHRoZSBtYWluIGZyYW1lIGFy
ZSBzZW50IHZpYSBXZWJQYWdlUHJveHk6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoKQogICAg
IC8vIHNvIGRvbid0IHNlbmQgdGhlbSBoZXJlLgpAQCAtMjIyLDIxICsyMjIsNDEgQEAgdm9pZCBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9s
bChTY3JvbGxpbmdOb2RlSUQKICAgICBtX3dlYlBhZ2VQcm94eS5zY3JvbGxpbmdOb2RlU2Nyb2xs
Vmlld0RpZFNjcm9sbCgpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSAmJiAh
aW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCisgICAgICAgIHJldHVybjsKKyNlbHNlCiAg
ICAgaWYgKG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpKQog
ICAgICAgICByZXR1cm47CisjZW5kaWYKIAogICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JO
b2RlKHNjcm9sbGVkTm9kZUlELCBuZXdTY3JvbGxQb3NpdGlvbiwgc2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbiA9PSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSk7CiB9CiAK
LXZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVS
ZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
Cit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2Rl
UmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xs
LCBib29sIHdpdGhBbmltYXRpb24pCiB7CiAgICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RT
Y3JvbGxpbmdOb2RlSUQoKSAmJiBtX3JlcXVlc3RlZFNjcm9sbEluZm8pIHsKICAgICAgICAgbV9y
ZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlID0gdHJ1ZTsK
ICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3Jv
bGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdFdpdGhBbmltYXRpb24g
PSB3aXRoQW5pbWF0aW9uOworI2VuZGlmCiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKICAgICB9CiB9CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5n
ZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGJvb2wgaXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hh
bmdlZEZvck5vZGUoc2Nyb2xsZWROb2RlSUQsIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykp
OworfQorCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1Ry
ZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0NoYW5nZWRGb3JOb2RlKHJvb3RTY3JvbGxpbmdOb2RlSUQoKSwgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKSk7Cit9CisjZW5kaWYKKwogU3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6OnNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9s
bGluZ1RyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aAppbmRleCAxYTc2OTQzZjI0Li44MTE1ZTQ3N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAgLTU1LDkgKzU1LDE0IEBAIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYp
OwogICAgIHZpcnR1YWwgflJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKIAorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJv
b2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVS
b290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKKwogICAgIC8vIEluZm9ybSB0aGUgd2ViIHBy
b2Nlc3MgdGhhdCB0aGUgc2Nyb2xsIHBvc2l0aW9uIGNoYW5nZWQgKGNhbGxlZCBmcm9tIHRoZSBz
Y3JvbGxpbmcgdHJlZSkKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xs
UG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3
cG9ydE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7Ci0gICAg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURp
ZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50
PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24gPSBmYWxzZSk7CisgICAg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwog
CiAgICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29u
c3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CiAKQEAg
LTgwLDYgKzg1LDkgQEAgcHVibGljOgogICAgIHN0cnVjdCBSZXF1ZXN0ZWRTY3JvbGxJbmZvIHsK
ICAgICAgICAgYm9vbCByZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlIHsgfTsKICAgICAgICAg
Ym9vbCByZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3JvbGwgeyB9OworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisgICAgICAgIGJvb2wgcmVxdWVzdFdpdGhBbmltYXRpb24geyB9OworI2VuZGlmCiAg
ICAgICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAg
fTsKICAgICB2b2lkIGNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclRyYW5zYWN0aW9uJiwgUmVxdWVzdGVkU2Nyb2xsSW5mbyYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGFmYWJiYzFlYWUuLmU2ZWI0OGJkOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTEwNCwxMiArMTA0LDE2IEBAIHZvaWQgUmVt
b3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUmCiAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGU+KG5vZGUpKQogICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbiA9IGRvd25jYXN0PFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpLmxheW91dFZpZXdwb3J0KCkubG9jYXRp
b24oKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9zY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlE
KCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBz
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBub2RlLm5lZWRzU3RvcEN1cnJlbnRTY3JvbGxB
bmltYXRpb24oKSAmJiAhbm9kZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSk7CisjZWxzZQogICAg
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChu
b2RlLnNjcm9sbGluZ05vZGVJRCgpLCBub2RlLmN1cnJlbnRTY3JvbGxQb3NpdGlvbigpLCBsYXlv
dXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CisjZW5kaWYK
IH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3Rz
U2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCit2b2lkIFJlbW90ZVNj
cm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIG1fc2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5v
ZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAg
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGws
IHdpdGhBbmltYXRpb24pOwogfQogCiBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9s
bGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVU
eXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpAQCAtMTQzLDYgKzE0NywxMyBAQCBSZWY8U2Ny
b2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZAogICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVh
dGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBS
ZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlz
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFu
Z2Uobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIHZv
aWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2Uo
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVy
dGljYWwpCiB7CiAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmN1cnJlbnRTbmFwUG9p
bnRJbmRpY2VzRGlkQ2hhbmdlKG5vZGVJRCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggMjNiYWMwNmEzYi4uMGY5ZTA5NDk0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1MiwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYgc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsgfQogCiAgICAg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZSYsIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBXZWJD
b3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKLSAgICB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSkgb3ZlcnJpZGU7CisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29s
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIHZv
aWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TLmgKaW5kZXggZTYzN2Q2MTUzMi4uMDBiNGRiY2QzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgK
QEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7
CiAgICAgdm9pZCBzY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZv
aWQgc2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxP
ZmZzZXQsIGJvb2wgaW5Vc2VySW50ZXJhY3Rpb24pOworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVu
ZFNjcm9sbGluZ0FuaW1hdGlvbigpOwogCiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNl
c0RpZENoYW5nZSh1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7
CiAgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExheWVy
LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggZTc2ODk4Mzc1OC4uODQ4ODYzYTgxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUy5tbQpAQCAtMTUyLDYgKzE1MiwxMSBAQAogICAgIH0KIH0KIAorLSAodm9pZClz
Y3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxW
aWV3Cit7CisgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRT
Y3JvbGxpbmdBbmltYXRpb24oKTsKK30KKwogI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0g
KENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRP
ZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5z
bGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQp
bG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0
aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAg
dm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFm
dGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24pKSB7CiAgICAgICAgIGF1dG8gc2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRl
Tm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwo
KSA/IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyA6IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAg
IHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSk7CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5v
ZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisgICAgICAgICAgICBz
Y3JvbGxpbmdOb2RlKCkuc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKHRydWUpOworICAgICAgICAv
LyBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9ucyBhcmUgbm90IHRoZSBzYW1lLCB0aGVyZSdzIGEgcG9z
c2liaWxpdHkgdGhhdCB0aGUgc2Nyb2xsIG9mZnNldCBmcm9tIHRoZSBXZWIgcHJvY2VzcyBoYXMg
YmVlbiBvdmVycmlkZGVuLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSBzY3JvbGwgcG9z
aXRpb24gbmVlZCB0byBiZSBzZW50IHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgYm9vbCBz
aG91bGRTeW5jU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsUG9zaXRp
b24oKSAhPSBzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAg
IHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50
RWRnZXMsIHNob3VsZFN5bmNTY3JvbGxQb3NpdGlvbik7CiAgICAgfQogfQogCiB2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXll
cnMoKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFtzY3JvbGxWaWV3
KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgp
XTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgYm9vbCBhbmltYXRpb25JblBy
b2dyZXNzID0gc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKTsKKyAg
ICBib29sIG5lZWRUb1N0b3BBbmltYXRpb24gPSBzY3JvbGxpbmdOb2RlKCkubmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbigpOworICAgIGlmIChuZWVkVG9TdG9wQW5pbWF0aW9uICYmIGFu
aW1hdGlvbkluUHJvZ3Jlc3MpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxWaWV3KCkuY29u
dGVudE9mZnNldCBhbmltYXRlZDpOT107CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKKyAgICB9CisKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZSgpLnJlcXVlc3RBbmltYXRlZFNjcm9s
bCgpKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Ny
b2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxP
ZmZzZXQoKSBhbmltYXRlZDpZRVNdOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CisKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mo
dHJ1ZSk7CisgICAgfSBlbHNlIGlmICghYW5pbWF0aW9uSW5Qcm9ncmVzcyB8fCBuZWVkVG9TdG9w
QW5pbWF0aW9uKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAg
ICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRT
Y3JvbGxPZmZzZXQoKV07CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9
CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xs
V2lsbFN0YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICszNjEsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0
UG9pbnQKICAgICBzY3JvbGxpbmdOb2RlKCkud2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGlu
ZyhzY3JvbGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJbnRlcmFjdGlvbiA/IFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb246OlN5bmMgOiBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQp
OwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9s
bFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKQoreworICAgIGF1dG8mIG5vZGUgPSBzY3Jv
bGxpbmdOb2RlKCk7CisgICAgaWYgKCEobm9kZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBu
b2RlLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJl
ZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdl
KG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFu
Z2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAg
aWYgKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggZGIyY2UwNzljYS4uZDA5ZjYwN2FjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzY3LDkgKzE3NjcsMTIgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAg
ICAgcGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9p
bnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIHBhZ2VD
bGllbnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAg
IGlmICh3aXRoQW5pbWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbFdp
dGhBbmltYXRpb24oc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgZWxzZQorICAg
ICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3Jp
Z2luKTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQ
b3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IGFlMzg1MjIyMWQuLmFmMDdlYTQ5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC02MTMsNyArNjEzLDcgQEAgcHVibGljOgogICAgIFBhZ2VDbGllbnQmIHBhZ2VD
bGllbnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJD
b3JlOjpSZWdpb24mKTsKLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxP
cmlnaW4pOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwg
Ym9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9p
bnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggZDZjOGMzOGQ0YS4uNTE5OGVmNDQy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVy
cmlkZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9u
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3Jp
Z2luKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZp
ZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1Np
emUoKSBvdmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmlu
ZGV4IGRjOWY3NGM0OWEuLjJjMzBjNGJjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTk1LDcgKzk1LDEyIEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3Np
dGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9z
Y3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46
c2Nyb2xsT3JpZ2luXTsKKyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3Np
dGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5P
XTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24o
Y29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxP
cmlnaW4pCit7CisgICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246
c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwog
fQogCiBXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaAppbmRleCA4ZTY0OTM1NTQ1Li4zZDM0NWQ3NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6
U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5k
aWNlc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9y
aXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICB2b2lkIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNl
bmRpZgorCiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmlu
CmluZGV4IDJjMDk4YTEwOTcuLjUzN2ZkMzRkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAg
LTI1LDYgKzI1LDkgQEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsK
ICAgICBTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29y
ZTo6RmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAg
ICAgQ3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQs
IHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1
aW50NjRfdCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRp
ZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQppbmRleCA4MzU0NDFk
MzE5Li42ODlkNTU2MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDQsNiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUo
U2Nyb2xsaW5nCiAgICAgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMobm9kZUlELCBob3Jpem9u
dGFsLCB2ZXJ0aWNhbCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRG
b3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKQoreworICAgIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9k
ZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385591</attachid>
            <date>2019-12-13 04:32:57 -0800</date>
            <delta_ts>2019-12-13 05:53:30 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_34.diff</filename>
            <type>text/plain</type>
            <size>301996</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjg4NDBmM2NmLi4zNWZhMzg0M2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0g
aXMgYmFzZWQgb24gQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5j
IHNjcm9sbCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJl
Zm9yZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0
byBmYXN0L3Njcm9sbGluZy9pb3MvLCB0aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAgICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAg
ICAod2FpdEZvclNjcm9sbEVuZCk6CisgICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNj
cm9sbFdpbmRvdyk6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sLgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNh
dGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJl
aGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4ODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUg
cGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
OiBTa2lwIHRoZXNlIHRlc3RzIG9uIFdLMSBhcyB0aGV5IGRvbid0IHdvcmsgZm9yIG5vdy4KKwor
MjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxOS0xMi0xMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgog
CiAgICAgICAgIENyZWF0ZSBhIFRlc3RFeHBlY3RhdGlvbnMgZmlsZSBmb3IgdGhlIEdQVSBwcm9j
ZXNzIHJlbGF0ZWQgd29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwLi4wYTA5NjhlMDI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKQEAg
LTAsMCArMSw4NyBAQAorZnVuY3Rpb24gb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgY2FsbGJh
Y2spIHsKKyAgaWYgKCFBcnJheS5pc0FycmF5KGVsZW1lbnRzKSkKKyAgICAgIGVsZW1lbnRzID0g
W2VsZW1lbnRzXTsKKyAgdmFyIGxhc3RDaGFuZ2VkRnJhbWUgPSAwOworICB2YXIgbGFzdExlZnQg
PSBuZXcgTWFwKCk7CisgIHZhciBsYXN0VG9wID0gbmV3IE1hcCgpOworICBlbGVtZW50cy5mb3JF
YWNoKChlbGVtZW50KSA9PiB7CisgICAgbGFzdExlZnQuc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Ny
b2xsTGVmdCk7CisgICAgbGFzdFRvcC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOwor
ICB9KTsKKyAgZnVuY3Rpb24gdGljayhmcmFtZXMpIHsKKyAgICAvLyBXZSByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgZWl0aGVyIGZvciA1MDAgZnJhbWVzIG9yIHVudGlsIDIwIGZyYW1lcyB3aXRoCisg
ICAgLy8gbm8gY2hhbmdlIGhhdmUgYmVlbiBvYnNlcnZlZC4KKyAgICBpZiAoZnJhbWVzID49IDUw
MCB8fCBmcmFtZXMgLSBsYXN0Q2hhbmdlZEZyYW1lID4gMjApIHsKKyAgICAgIGNhbGxiYWNrKHRy
dWUpOworICAgIH0gZWxzZSB7CisgICAgICB2YXIgc2Nyb2xsSGFwcGVuZWQgPSBlbGVtZW50cy5z
b21lKChlbGVtZW50KSA9PiB7CisgICAgICAgIHJldHVybiBlbGVtZW50LnNjcm9sbExlZnQgIT0g
bGFzdExlZnQuZ2V0KGVsZW1lbnQpIHx8IGVsZW1lbnQuc2Nyb2xsVG9wICE9IGxhc3RUb3AuZ2V0
KGVsZW1lbnQpOworICAgICAgfSk7CisgICAgICBpZiAoc2Nyb2xsSGFwcGVuZWQpIHsKKyAgICAg
ICAgbGFzdENoYW5nZWRGcmFtZSA9IGZyYW1lczsKKyAgICAgICAgZWxlbWVudHMuZm9yRWFjaCgo
ZWxlbWVudCkgPT4geworICAgICAgICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNj
cm9sbExlZnQpOworICAgICAgICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xs
VG9wKTsKKyAgICAgICAgfSk7CisgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsKKyAgICAgIH0KKyAg
ICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrLmJpbmQobnVsbCwgZnJhbWVzICsgMSkpOwor
ICAgIH0KKyAgfQorICB0aWNrKDApOworfQorCitmdW5jdGlvbiB3YWl0Rm9yU2Nyb2xsRW5kKGVs
ZW1lbnRzKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgIG9ic2Vy
dmVTY3JvbGxpbmcoZWxlbWVudHMsIChkb25lKSA9PiB7CisgICAgICBpZiAoZG9uZSkKKyAgICAg
ICAgcmVzb2x2ZSgpOworICAgIH0pOworICB9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCkgeworICAvLyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0
aGUgZWxlbWVudCBwb3NpdGlvbiBpcyByZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOwor
ICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImlu
c3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dp
bmRvdykgeworICAvLyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0aGUgZWxlbWVudCBw
b3NpdGlvbiBpcyByZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwgYmVoYXZpb3I6ICJpbnN0YW50In0pOworfQorCitmdW5j
dGlvbiBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCBjbGFzc05hbWUpIHsKKyAgc3R5
bGVkRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJhdXRvQmVoYXZpb3IiLCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgc3R5bGVkRWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7Cit9CisKK2Z1
bmN0aW9uIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2
aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFy
Z3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsK
KyAgc3dpdGNoIChzY3JvbGxGdW5jdGlvbikgeworICAgIGNhc2UgInNjcm9sbEludG9WaWV3IjoK
KyAgICAgIGFyZ3MuaW5saW5lID0gInN0YXJ0IjsKKyAgICAgIGFyZ3MuYmxvY2sgPSAic3RhcnQi
OworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbEludG9WaWV3KGFyZ3MpOworICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7
CisgICAgICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgICAgIHNjcm9sbGluZ0Vs
ZW1lbnRbc2Nyb2xsRnVuY3Rpb25dKGFyZ3MpOworICAgICAgYnJlYWs7CisgIH0KK30KKworZnVu
Y3Rpb24gc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2
aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFy
Z3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsK
KyAgYXJncy5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgYXJncy50b3AgPSBlbGVtZW50
VG9SZXZlYWxUb3A7CisgIHNjcm9sbGluZ1dpbmRvd1tzY3JvbGxGdW5jdGlvbl0oYXJncyk7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjhkNGNhNjQxNTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQt
Y3NzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBJbnN0YW50IHNjcm9sbGlu
ZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCitQQVNTIFNtb290
aCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uMzVjNjUwM2FiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMCww
ICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVy
aW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFz
eW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIGRl
ZmF1bHQgdmFsdWUgb2Ygc2Nyb2xsLWJlaGF2aW9yPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJp
YyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9s
bC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3Jv
bGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVp
Z2h0OiAyMDBweDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYg
aWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0
aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEz
NWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1l
bnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246
IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwv
c3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBzY3JvbGxpbmdFbGVtZW50
ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFy
IGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgdmFyIHNjcm9sbEZ1bmN0aW9uID0gInNjcm9s
bCI7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7Cisg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgfSwgIkluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQg
d2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIlNtb290
aCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjUzYTk2MWVmNTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKKworUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxl
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDM4
ZGZmZGVjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50
PC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsK
KyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuYXV0b0JlaGF2
aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9y
IHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUi
PgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3Vu
ZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48
L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1i
bG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Cisg
IHZhciBzY3JvbGxpbmdFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgc3R5bGVkRWxlbWVu
dCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZh
ciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisKKyAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAi
c2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4g
eworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVo
YXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rp
b24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRv
IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwg
YEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
YXV0byBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7Cisg
ICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bFRvcCIpOworICAgICAgfSk7CisgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgIH0p
OworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
ZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7Cisg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJv
b3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk3
Y2FlYTI3YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzNyBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5n
IAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4g
ZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDMy
NWI0YjllMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNjkgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAg
IG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6
IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBh
Z2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4K
KyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0g
YXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxl
ZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1
bmN0aW9uKCkgeworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAg
cGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiA1ICsg
InB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cuaW5uZXJI
ZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsgd2luZG93
LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQgPSBlbGVt
ZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUudG9wID0g
ZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNr
KCgpID0+IHsgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7IH0pOworCisgICAgWyJzY3Jv
bGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChz
Y3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29s
dmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAg
ICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNj
cm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwg
InNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0p
OworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBh
biBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJp
bnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21v
b3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5n
Iik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwLi4zODIzODVhYWI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyOSBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21v
b3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi45MDU3YjBjZDEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1s
CkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGlu
dGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5U
ZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogb24gdGhl
IHdpbmRvdyBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBj
b250ZW50PSJsb25nIi8+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLG1pbmltdW0tc2NhbGU9MSxpbml0aWFsLXNjYWxlPTEiPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVo
YXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZp
b3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBp
ZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwi
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2Pgor
PHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOwor
ICB2YXIgc2Nyb2xsaW5nV2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
cGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICBzY3JvbGxpbmdXaW5k
b3cgPSB3aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRo
KSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9ICgyMCArIHdpbmRv
dy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gKDEw
ICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZlYWxUb3AgPSAoMjAg
KyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUubGVm
dCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbC5zdHls
ZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRkX2NvbXBsZXRpb25f
Y2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbEZvcldpbmRvdyh3aW5kb3cpOyB9KTsKKworICAg
IFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rp
b24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93
LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAg
ICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAg
c2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50Iiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290
aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3Ag
LyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJpbnN0YW50IiwgMCwg
MCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAuLjQ0M2E4MjBlNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mgc2Nyb2xsSW50b1ZpZXcg
d2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJlaGF2aW9yIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40NWI1ZDhkN2M3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxp
bnRvdmlldy1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIHdpdGggc2Ny
b2xsSW50b1ZpZXcgZm9yIG5lc3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxlPgorPG1ldGEgbmFt
ZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJG
csOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3Bk
ZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
KyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIGhlaWdodDogMjAwcHg7
CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsK
KyAgfQorICAuZ3JhZGllbnQgeworICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVk
ZWcsIHJlZCwgZ3JlZW4pOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2Pgor
PGRpdj4KKyAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9Indp
ZHRoOiA0NTBweCI+CisgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIHNt
b290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KKyAgICAgIDxkaXYgY2xhc3M9Imdy
YWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAg
ICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDM1MHB4Ij4KKyAgICAgICAg
PGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAz
MDBweCI+CisgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDI1MHB4Ij4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6
IDIwMHB4Ij4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0
aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0i
ZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgYmFja2dy
b3VuZDogYmxhY2s7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQi
IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAg
IDwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDog
MTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg
ICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBw
eDsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICA8L2Rpdj4K
KyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDUwMHB4OyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0Pgor
ICAvLyBUaGUgQ1NTT00tVmlldyBzcGVjIGFuZCBpbXBsZW1lbnRhdGlvbnMgZm9sbG93IGRpZmZl
cmVudCBhbGdvcml0aG1zIChzY3JvbGxzIHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgYXMgaW5uZXIt
dG8tb3V0ZXIgc2VxdWVuY2Ugb3IgYXMgb3V0ZXItdG8taW5uZXIgc2VxdWVuY2UpLgorICAvLyBT
ZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzMxMjcKKyAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICB2YXIgZGl2cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ii5zY3JvbGxhYmxlIik7CisgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsYWJsZURpdik7CisgICAgICB9KTsKKyAgICAgIGVs
ZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyh7aW5saW5lOiAic3RhcnQiLCBibG9jazogInN0
YXJ0IiwgYmVoYXZpb3I6ICJhdXRvIn0pOworICAgICAgdmFyIHNjcm9sbFRvcCA9IG5ldyBNYXAo
KTsKKyAgICAgIHZhciBpc1Ntb290aCA9IG5ldyBNYXAoKTsKKyAgICAgIGRpdnMuZm9yRWFjaCgo
c2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9sbGFibGVEaXYs
IHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgaXNTbW9vdGguc2V0KHNjcm9sbGFi
bGVEaXYsIHNjcm9sbGFibGVEaXYuY2xhc3NMaXN0LmNvbnRhaW5zKCJzbW9vdGhCZWhhdmlvciIp
KTsKKyAgICAgICAgLy8gSWYgc2Nyb2xsIG9wZXJhdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgaW4g
cGFyYWxsZWwsIHNjcm9sbCBib3hlcyB3aXRoIGluc3RhbnQgYmVoYXZpb3IgbWlnaHQgYWxzbyBu
ZWVkIHRvIHdhaXQgZm9yIHRoZWlyIHByZWRlY2Vzc29ycy4KKyAgICAgICAgaWYgKGlzU21vb3Ro
LmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbFRv
cC5nZXQoc2Nyb2xsYWJsZURpdiksIDUwMCwgIkVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
c2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkiKTsKKyAgICAgIH0pOworCisgICAgICBvYnNl
cnZlU2Nyb2xsaW5nKEFycmF5LmZyb20oZGl2cyksIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAg
dHJ5IHsKKyAgICAgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2
KSwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIp
OworICAgICAgICAgICAgaWYgKCFpc1Ntb290aC5nZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAg
ICAgICAgIGFzc2VydF9hbnkoYXNzZXJ0X2VxdWFscywgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3As
IFswLCA1MDBdLCAiRWxlbWVudCB3aXRoIGluc3RhbnQgYmVoYXZpb3Igc2hvdWxkIGp1bXAgdG8g
dGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgNTAwLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9sbGFibGVE
aXYsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSBj
YXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChk
b25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAic2Ny
b2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJl
aGF2aW9yIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu
Ljg1NWE2YTYxMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjAgQEAKKworUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hl
biBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9s
bFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Ny
b2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUw
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9u
cyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9y
bWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcg
c2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290
aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkg
IAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgw
LCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3Np
dGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAo
NTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25z
IHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUw
MCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9s
bGluZyAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9s
bGluZyB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3Ro
LXBvc2l0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBh
NDFiOGIwOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbApAQCAtMCwwICsxLDE1MSBA
QAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJm
bG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGwgcG9z
aXRpb25zIHdoZW4gc2Nyb2xsaW5nIGFuIGVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3I8L3Rp
dGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAg
IHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHNjcm9sbC1iZWhhdmlvcjog
c21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0i
b3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAy
MDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVn
LCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRv
UmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1
cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFu
PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgLy8gRm9yIHNtb290aCBiZWhhdmlvciwg
ZXZvbHV0aW9uIG9mIHNjcm9sbCBwb3NpdGlvbnMgb3ZlciB0aW1lIGlzIG5vdCBzcGVjaWZpZWQg
YnkgQ1NTT00gVmlldy4KKyAgLy8gVGhpcyB0ZXN0IHJlbGllcyBvbiB0aGUgbWluaW1hbCBhc3N1
bXB0aW9uIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGZ1bmN0aW9ucyBhcmUgbW9ub3RvbmljLgorICBb
InNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVh
Y2goZnVuY3Rpb24oc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBbe2xlZnQ6MCwgdG9wOjB9LCB7bGVm
dDoxMDAwLCB0b3A6MH0sIHtsZWZ0OjAsIHRvcDo1MDB9LCB7bGVmdDoxMDAwLCB0b3A6NTAwfV0u
Zm9yRWFjaCgoaW5pdGlhbCkgPT4geworICAgICAgdmFyIGZpbmFsTGVmdCA9IDUwMDsKKyAgICAg
IHZhciBmaW5hbFRvcCA9IDI1MDsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgaW5pdGlhbC5s
ZWZ0LCBpbml0aWFsLnRvcCk7CisgICAgICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUu
c2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRv
cDsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIGluaXRpYWwubGVmdCwgIlNjcm9s
bExlZnQgc2hvdWxkIGJlIGF0IGluaXRpYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG9sZFRvcCwgaW5pdGlhbC50b3AsICJTY3JvbGxUb3Agc2hvdWxkIGJlIGF0IGluaXRp
YWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBpZiAoc2Nyb2xsRnVuY3Rpb24gPT09ICJzY3JvbGxC
eSIpCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgc2Nyb2xsRnVuY3Rpb24s
ICJzbW9vdGgiLCBmaW5hbExlZnQgLSBpbml0aWFsLmxlZnQsIGZpbmFsVG9wIC0gaW5pdGlhbC50
b3ApOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2Rl
LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCwgZmluYWxUb3ApOworICAgICAg
ICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25lKSB7CisgICAg
ICAgICAgICB0cnkgeworICAgICAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxMZWZ0OworICAgICAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bFRvcDsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChNYXRoLmh5cG90KGZp
bmFsTGVmdCAtIG5ld0xlZnQsIGZpbmFsVG9wIC0gbmV3VG9wKSwgTWF0aC5oeXBvdChmaW5hbExl
ZnQgLSBvbGRMZWZ0LCBmaW5hbFRvcCAtIG9sZFRvcCksICJTY3JvbGwgcG9zaXRpb24gc2hvdWxk
IG1vdmUgdG93YXJkcyB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgaWYgKGRv
bmUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIGZpbmFsTGVmdCwg
IlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIGZpbmFsVG9wLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFj
aCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIG9sZExl
ZnQgPSBuZXdMZWZ0OworICAgICAgICAgICAgICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZv
cm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgke2luaXRpYWwubGVmdH0sICR7aW5pdGlhbC50
b3B9KSB0byAoJHtmaW5hbExlZnR9LCAke2ZpbmFsVG9wfSkgdXNpbmcgJHtzY3JvbGxGdW5jdGlv
bn0oKSBgKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICByZXNl
dFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxTY3JvbGxBYm9ydGVkID0g
ZmFsc2U7CisgICAgICB2YXIgc2Nyb2xsRGlyZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOworICAgICAg
dmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZhciBvbGRUb3Ag
PSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUob3Zl
cmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAgICBvYnNlcnZl
U2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgewor
ICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAg
ICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgaWYgKGlu
aXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAgICAgICAgICBpZiAoc2Nyb2xsRGlyZWN0aW9uQ2hh
bmdlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9sZExlZnQs
IG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBrZWVw
cyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgc2Nyb2xs
RGlyZWN0aW9uQ2hhbmdlZCA9IG5ld0xlZnQgPD0gb2xkTGVmdCAmJiBuZXdUb3AgPD0gb2xkVG9w
OworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1
YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAg
ICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xs
VG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAw
ICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAgICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFs
IHNjcm9sbC4KKyAgICAgICAgICAgICAgICBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3Ro
IiwgNTAwLCAyNTApOworICAgICAgICAgICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Ny
b2xsTGVmdDsKKyAgICAgICAgICAgICAgICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9w
OworICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxk
IHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1Rv
cCwgMjUwLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAg
ICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3AgPSBu
ZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsK
KyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBz
Y3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5pdGlh
bFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsK
KyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKG9s
ZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9v
dGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1
bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05v
ZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmICghaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsKKyAg
ICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Ny
b2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIpOwor
ICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7CisgICAg
ICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAgICAg
IGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxOb2Rl
KG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgNTAwLCAyNTApOworICAgICAgICAg
ICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAg
ICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9z
aXRpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Ny
b2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRp
b24iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Ag
c2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICB9CisgICAgICAgICAg
b2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICB9
IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH0sICJT
Y3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4g
aW5zdGFudCBzY3JvbGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uMjc5OWZkY2MyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzNyBAQAorCitQQVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3Ro
IHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAor
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3
aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk2ZDExYWI5NjIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4K
Kzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9s
bCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4K
KzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12
aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+
Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2RlIiB3aWR0aD0i
NDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFET0NUWVBFPgorPGh0bWw+CisgIDxzdHls
ZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgLmF1dG9CZWhhdmlv
ciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgICAgfQorICAgIC5zbW9vdGhCZWhh
dmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgICB9CisgIDwvc3R5bGU+
CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4
OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsnPgorICAg
ICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWln
aHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0eWxlPSdkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48L3NwYW4+CisgICAgPC9kaXY+CisgIDwv
Ym9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2NyaXB0PgorICB2YXIgaWZyYW1lTG9hZFRl
c3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50
LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBlbGVtZW50VG9SZXZlYWxM
ZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICBpZnJhbWVOb2Rl
LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5zdGVwX2Z1bmNfZG9uZSgo
KSA9PiB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVu
dERvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50VG9SZXZlYWwgPSBpZnJhbWVO
b2RlLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudFRvUmV2ZWFsIik7CisK
KyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJd
LmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJh
dXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Jg
KTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3Jv
bGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICAgIH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
bnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAg
ICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxp
bmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNt
b290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsKKwor
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVt
ZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhh
dmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAy
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBz
Y3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9s
bChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50Iiwg
MCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDVlYjMyNzJmNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisK
K1BBU1MgaWZyYW1lIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13
aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zMzMzZDY0
Zjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFE
T0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Ny
b2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVt
ZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1l
PC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+
PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2Rl
IiB3aWR0aD0iNDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFET0NUWVBFPgorPGh0bWw+
CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgLmF1
dG9CZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgICAgfQorICAgIC5z
bW9vdGhCZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgICB9Cisg
IDwvc3R5bGU+CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdo
dDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVu
KTsnPgorICAgICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUw
MHB4OyBoZWlnaHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0
eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48L3NwYW4+CisgICAgPC9k
aXY+CisgIDwvYm9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2NyaXB0PgorICB2YXIgaWZy
YW1lTG9hZFRlc3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7CisgIHZhciBzY3JvbGxp
bmdXaW5kb3csIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAgdmFyIGVsZW1lbnRU
b1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlm
cmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVu
Y19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdXaW5kb3cgPSBpZnJhbWVOb2RlLmNvbnRlbnRX
aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50VG9SZXZlYWwgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudFRvUmV2ZWFsIik7CisKKyAgICBbInNjcm9s
bCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJl
c29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xs
aW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9u
LCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhz
Y3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cu
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7Cisg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9w
Iik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisK
KyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Ny
b2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIp
OworCisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
NDdmZDVlMWE1NC4uMzZmNTNiNjBhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVz
IG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgRW5hYmxlIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQgb24gc2Nyb2xsIGJlaGF2aW9yIHRlc3RzIGFuZCB1cGRhdGUgZXhwZWN0YXRpb25zLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJv
b3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Ny
b2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6CisKKzIwMTktMTItMTAgIENhdGhp
ZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJp
YyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFu
Y2UtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmUtc3luYyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLW9yaWdpbi1v
YmplY3RzLmh0bWwgZnJvbSB1c3B0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCAzYWMwYTM3Y2ZmLi44
NzVhNzI3Yzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBQcm9wZXJ0
eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogc2Ny
b2xsLWJlaGF2aW9yIGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVk
IHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhh
dmlvciBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byAK
K1BBU1MgUHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9yIGRvZXMgbm90IGluaGVyaXQgCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dAppbmRleCA5MDY4Yjc5NzU1Li44
ZDRjYTY0MTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQg
d2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKLUZBSUwgU21vb3RoIHNjcm9sbGluZyBvZiBh
biBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFNtb290aCBzY3JvbGxpbmcgb2YgYW4gZWxl
bWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1j
c3MuaHRtbAppbmRleCA2OTI1Y2YwOTJjLi5mZTQ3NWIwMzlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1
bHQtY3NzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1
ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBl
Y3RlZC50eHQKaW5kZXggMmI5MTI5YzFjZi4uNTNhOTYxZWY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTIsMzUgKzIsMzUgQEAKIFBBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAog
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVs
ZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxl
bWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1l
bnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAotRkFJTCBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0
byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1l
bGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKaW5kZXggM2NiZDcy
MmY3Mi4uNmMxNTkyOWM5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+
CiA8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3Jv
bGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwvdGl0bGU+CiA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKaW5kZXggZDkyMjI1OGFm
Mi4uOTdjYWVhMjdiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1y
b290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0CkBAIC0zLDM1ICszLDM1IEBAIFBBU1MgUGFnZSBsb2FkZWQKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290
IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBi
dXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBn
b3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAg
YnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50
b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
NDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9v
dGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAppbmRleCBmY2Y3NWFhMWRkLi42ZDliMjI0MmVhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
RE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
eHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxl
PgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4
dAppbmRleCBjNmJlOTY2NjFjLi4zODIzODVhYWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0zLDI3ICszLDI3IEBAIFBBU1Mg
UGFnZSBsb2FkZWQKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
Ci1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQg
Z290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1G
QUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290
IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2Vy
dF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0
ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
IFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5k
b3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKaW5kZXgg
OGM4OGVjNjg2MS4uYmYzODczMDQyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS13aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdp
bmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMn
IGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogb24gdGhlIHdpbmRvdyBvZiB0aGUgbWFpbiBm
cmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLG1pbmltdW0tc2Nh
bGU9MSxpbml0aWFsLXNjYWxlPTEiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Ny
b2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9s
bGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKaW5kZXggN2NlMTBjMDg5Ni4uNDQzYTgyMGU1
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHNjcm9sbEludG9WaWV3IHdpdGgg
bmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNob3VsZCBub3Qgc2Nyb2xsIGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1Mgc2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Ny
b2xsLWJlaGF2aW9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRv
dmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC5odG1sCmluZGV4IDNhODkwNjUzMmIuLjNmM2Q5YjcyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBF
IGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5U
ZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIHdpdGggc2Nyb2xsSW50b1ZpZXcgZm9yIG5l
c3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMuaHRtbAppbmRleCAwMDVkMmI2MDRkLi5lYWEwZmZmMDE5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5n
IHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRoIHNtb290aCBi
ZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3
YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUt
cm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVj
dGVkLnR4dAppbmRleCBiNmZhMWMyZWM4Li4yNzk5ZmRjYzI5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMywzNSArMywzNSBAQCBQQVNTIGlm
cmFtZSBsb2FkZWQKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1G
QUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVz
cyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
NTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5n
IGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290Lmh0bWwKaW5kZXggZTY0MWU1M2UzMy4uZThjY2I2NmJlNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBo
dG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50
YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+VGVz
dGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3Jv
bGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggY2M2NjVlYmRi
OC4uMDVlYjMyNzJmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2lu
ZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0CkBAIC0zLDI3ICszLDI3IEBAIFBBU1MgaWZyYW1lIGxvYWRlZAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290
aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3Qg
NTAwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190
aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVt
YmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUw
MCBidXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAw
Ci1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBn
b3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFi
b3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1z
dWJmcmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5o
dG1sCmluZGV4IGQ5MzFlMDAzZDQuLjkyNjg0ZDY3NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXdpbmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9w
dGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBv
biB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDQ5NmNmMmRjYi4uMDQxZjM2ZWJjZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NzQ4LDYgKzc0OCwxNSBAQCB3ZWJraXQub3JnL2IvMTg5NTk0IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmltYXRpb25zL3BlbmRpbmctcwogCiB3ZWJraXQub3JnL2Iv
MTg4MDcwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZXJy
b3ItcHJvcGFnYXRpb24tYmFja3dhcmQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKKyMgVGVzdHMg
Zm9yIHNtb290aCBzY3JvbGwgYmVoYXZpb3IgZG8gbm90IGFsbCB3b3JrIGFuZCB0aGV5IGFyZSBz
bG93LCBzbyBsZXQncyBqdXN0IHNraXAgdGhlbS4KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS1yb290Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS13aW5kb3cuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE5MTM1NyBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c3ViZnJhbWUtd2luZG93Lmh0bWwgWyBTa2lwIF0KKworIyBUaGlzIGlzIGZhaWxpbmcgb24gbWFj
LXdrMSwgdHJ5IHRvIGZpZ3VyZSBpdCBvdXQgaW4gdGhlIGZvbGxvdy11cCBidWcuCit3ZWJraXQu
b3JnL2IvMTkxMzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvaW5oZXJpdGFuY2UuaHRtbCBbIFNraXAgXQorCiB3ZWJraXQub3JnL2IvMTg5OTA4IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL3Jlc291cmNlX3RpbWlu
Zy53b3JrZXIuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTg5NzU2IFsgTW9qYXZl
KyBdIGNvbXBvc2l0aW5nL2ZpbHRlcnMvb3BhY2l0eS1jaGFuZ2Utb24tZmlsdGVyZWQtcGFpbnRz
LWludG8tYW5jZXN0b3IuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDUyMjA2ODczMWMuLjBlODE0YmJjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC05NjQsOCArOTY0LDEwIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAg
cGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbAogICAgIHBhZ2UvUmVzaXplT2JzZXJ2ZXJF
bnRyeS5pZGwKICAgICBwYWdlL1NjcmVlbi5pZGwKKyAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmlk
bAogICAgIHBhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAogICAgIHBhZ2UvU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uLmlkbAorICAgIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKICAgICBwYWdlL1Nj
cm9sbFRvT3B0aW9ucy5pZGwKICAgICBwYWdlL1NoYXJlRGF0YS5pZGwKICAgICBwYWdlL1VuZG9J
dGVtLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhMTZiNDQwYWQuLmE0ODExZmM4MDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNDAgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBp
Z2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVs
aWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggc3VwcG9ydCBuYXRp
dmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0uIEl0IHJlbGllcyBvbiBVSVNjcm9s
bFZpZXcncworICAgICAgICBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBwb3J0IGFuZCBpcyBl
eGVjdXRlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBUZXN0czogZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJm
cmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5p
bWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBieSBjYWxsaW5nIGFu
aW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKTog
QWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCBvciBu
b3QuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1
cyBmcm9tIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOiBBZGQgbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gdG8gaW5kaWNhdGUgaXQncyBhbmltYXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOiBEaXR0by4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25XaXRoQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBVcGRh
dGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhIGZsYWcgdG8g
aW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4pOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIHRoZSBzY3JvbGwgaXMgYW5pbWF0ZWQgb3Ig
bm90LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9s
bFRvKTogSWYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiBpcyB0cnVlLCBzZW5kIHRoZSBzY3JvbGwg
cG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLCBldmVuIGlmIHRoZSBzY3JvbGwgcG9zaXRpb24g
ZG9lc24ndCBjaGFuZ2UuCisgICAgICAgIE1haW50YWluIHRoZSBzdGF0dXMgb2YgbV9zdG9wU2Ny
b2xsQW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbC4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFu
Z2VkKTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlt
bWVkaWF0ZWx5LCBzbyBkb24ndCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZvIG5vdy4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0QW5pbWF0
ZWRTY3JvbGwpOiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlz
IGFuIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRlZFNjcm9sbCBjb25zdCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24p
OiBJZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHByZXZp
b3VzIHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRk
IFNjcm9sbEJlaGF2aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQgb3Igc21vb3RoIHNj
cm9sbC4KKyAgICAgICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGluZGljYXRlIHRoZSBz
dGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBVcGRhdGUg
U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSk6IEFk
ZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjdXJyZW50U2Ny
b2xsQmVoYXZpb3JUeXBlIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogU2VuZCBhIHF1ZXN0IG9m
IG5hdGl2ZSBzY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBi
eSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorCisyMDE5
LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24g
b2YgdGhlIFdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ4ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIHByb2dyYW1tYXRpYyBzbW9vdGggc2Nyb2xsaW5n
IGluIFdlYktpdCBmcm9tIHRoZSBDU1NPTSBWaWV3CisgICAgICAgIHNwZWNpZmljYXRpb24gWzFd
LiBUbyB1c2UgdGhpcyBlZmZlY3QsIHdlYiBkZXZlbG9wZXJzIGNhbiBwYXNzIGEgYmVoYXZpb3Ig
cGFyYW1ldGVyIChhdXRvLAorICAgICAgICBzbW9vdGgsIG9yIGluc3RhbnQpIHRvIEVsZW1lbnQu
c2Nyb2xsLCBFbGVtZW50LnNjcm9sbFRvLCBFbGVtZW50LnNjcm9sbEJ5LAorICAgICAgICBFbGVt
ZW50LnNjcm9sbEludG9WaWV3LCBXaW5kb3cuc2Nyb2xsLCBXaW5kb3cuc2Nyb2xsVG8gb3IgV2lu
ZG93LnNjcm9sbEJ5IFsyXS4gV2hlbiBiZWhhdmlvcgorICAgICAgICBpcyBhdXRvLCB0aGUgaW5z
dGFudC9zbW9vdGggY2hhcmFjdGVyaXN0aWMgaXMgYWN0dWFsbHkgdGFrZW4gZnJvbSB0aGUgdmFs
dWUgb2YgYSBuZXcgQ1NTCisgICAgICAgIHNjcm9sbC1iZWhhdmlvciBwcm9wZXJ0eSBbM10uIEJv
dGggdGhlIG5ldyBDU1MgYW5kIERPTSBiZWhhdmlvciBhcmUgcHJvdGVjdGVkIGJ5IGEgcnVudGlt
ZQorICAgICAgICBmbGFnLgorCisgICAgICAgIFsxXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldworICAgICAgICBbMl0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZp
ZXcvI2RpY3RkZWYtc2Nyb2xsb3B0aW9ucworICAgICAgICBbM10gaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yCisKKyAgICAgICAgVGVz
dHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQu
aHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAgICAgICAg
ICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgt
cG9zaXRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAor
ICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDogQnVpbGQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCBvbiBhbGwgcGxhdGZvcm1z
LgorICAgICAgICAqIFNvdXJjZXNHVEsudHh0OiBSZW1vdmUgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmNwcCBzaW5jZSBpdCBpcyBidWlsdCBvbiBhbGwgcGxhdGZvcm1zIG5vdy4KKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmll
dyk6IFBhc3Mgc2Nyb2xsIGJlaGF2aW9yLCBpZiBhbnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzY3JvbGxCeSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxUbyk6IEhh
bmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Ny
b2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNj
cm9sbFRvcCk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGgu
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpzY3JvbGxCeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9s
bFRvIGNvbnN0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290
aC4KKyAgICAgICAgVGhlIG9wdGltaXphdGlvbiBvZiBjYW5jZWwgKDAsIDApIHNjcm9sbGluZyBp
cyBza2lwcGVkIGlmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcy4KKyAgICAgICAg
T3RoZXJ3aXNlLCB0aGUgcHJldmlvdXMgc2Nyb2xsIHdvbid0IGJlIHN0b3BwZWQgYnkgYSBmb2xs
b3ctdXAgc2Nyb2xsLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBTdGFydCBhbiBhbmltYXRl
ZCBzY3JvbGwuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRpb246OnNjcm9sbCk6IEZ1bmN0aW9uIHRvIGFuaW1hdGUgc2Nyb2xsaW5n
IHRvIGEgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvblNtb290aC5jcHA6IEJ1aWxkIHRoaXMgZmlsZSBvbiBhbGwgcGxhdGZvcm1zLiBBZGQgYQor
ICAgICAgICBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgcGFyYW1ldGVyIHRvIHNs
b3cgZG93biB0aGUgc21vb3RoIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdGlvblNtb290aDo6c2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlv
blNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEpOiBTY2FsZSB0aGUgdGltZSBwYXJhbWV0ZXJzIG9m
IHRoZQorICAgICAgICBhbmltYXRpb24gc28gdGhhdCBpdCBsb29rcyBzbW9vdGhlci4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaDogRGVjbGFyZSB0aGUgY2xhc3Mg
b24gYWxsIHBsYXRmb3Jtcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IpOiBJbml0
aWFsaXplIGFuaW1hdGlvbiBtZW1iZXIgZm9yIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9PZmZzZXQpOiBBbmltYXRlIHNj
cm9sbGluZyB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMpOiBDb3B5IGxvZ2ljIGZyb20gU2Nyb2xsQW5p
bWF0aW9uU21vb3RoLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzZXJ2
aWNlU2Nyb2xsQW5pbWF0aW9ucyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3I6OndpbGxFbmRMaXZlUmVzaXplKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvcjo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaDogTmV3IGFuaW1hdGlvbiBtZW1i
ZXIgZm9yIHNtb290aCBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6c2Vy
dmljZVNjcm9sbEFuaW1hdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjp3aWxsRW5kTGl2ZVJlc2l6ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFkZFZl
cnRpY2FsU2Nyb2xsYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yOjpTY3JvbGxBbmltYXRvcjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yU3Rh
dHVzIHRvIGluZGljYXRlIHRoZSBzdGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Ny
b2xsUG9zaXRpb24pOiBGb2xsb3cgdGhlIENTU09NIFZpZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMg
aW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGludGVycnVwdCBpdCBhbmQgY29udGludWUgdGhlIHNj
cm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJlIGF0IHRoZSBmaW5hbCBwb3NpdGlvbikuCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09m
ZnNldFdpdGhBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNl
dFNjcm9sbE9mZnNldEZyb21JbnRlcm5hbHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24pOiBUbyBhdm9pZCBpdGVyYXRlIGNh
bGxpbmcsCisgICAgICAgIG1vdmUgdGhlIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShwb3Np
dGlvbikgY2hlY2tpbmcgb3V0IG9mIHNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24oKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyBjb25zdCk6IE1haW50YWlu
IGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFi
bGVBcmVhOjpzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyk6CisgICAgICAgICogcGxhdGZvcm0vZ2Vu
ZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JHZW5lcmljOjp1cGRhdGVQb3NpdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JN
YWM6OmNhbmNlbEFuaW1hdGlvbnMpOiBDYWxsIHBhcmVudCBtZW1iZXIgdG8gaGFuZGxlIHByb2dy
YW1tYXRpYyBzY3JvbGxpbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQpOiBBZGQgZmxhZyB0byBp
bmRpY2F0ZSBhbmltYXRlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNl
dFNjcm9sbFRvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRTY3Jv
bGxQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9YUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpzY3JvbGxUb1lQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnNjcm9sbFRvUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnNjcm9sbFRvT2Zmc2V0KTogRm9sbG93IHRoZSBDU1NPTSBWaWV3IHNwZWM6IElmIGEgc2Nyb2xs
IGlzIGluCisgICAgICAgIHByb2dyZXNzLCB3ZSBpbnRlcnJ1cHQgaXQgYW5kIGNvbnRpbnVlIHRo
ZSBzY3JvbGwgY2FsbCAoZXZlbiB3aGVuIHdlIGFyZSBhdCB0aGUgZmluYWwKKyAgICAgICAgcG9z
aXRpb24pLiBJdCdzIFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCBzY3JvbGwuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24p
OiBEaXR0by4gVGhpcyBpcyBzaW1pbGFyIHRvIHNjcm9sbFRvT2Zmc2V0CisgICAgICAgIGJ1dCBh
bmltYXRlcyB0aGUgc2Nyb2xsLiBJdCdzIFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoIHNjcm9s
bC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6IEFnYWluIGRvbid0IGRv
IGFuIGVhcmx5IHJldHVybiBpZiBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MuIFdlIGNh
bGwgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uIGluc3RlYWQgb2Ygc2Nyb2xsVG9PZmZzZXQg
d2hlbiBhcHByb3ByaWF0ZS4KKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gbWF5IG5v
dCB3b3JrIHdlbGwgZm9yIHNldmVyYWwgbmVzdGVkIHNjcm9sbCBib3hlcyB3aXRoIGF0IGxlYXN0
IG9uZQorICAgICAgICBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yLiBJdCB3aWxsIGhhbmRs
ZWQgaW4gYnVnIEZvbGxvdy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDogQWRk
IHNjcm9sbCBiZWhhdmlvciB0byBTY3JvbGxUZWN0VG9WaXNpYmxlT3B0aW9ucy4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
aXN0Qm94OjpzZXRTY3JvbGxMZWZ0KTogQWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3ApOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp1bmNvbnN0cmFpbmVkU2Nyb2xsVG8p
OgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5n
IHNjcm9sbC1iZWhhdmlvciBjc3MgcHJvcGVydHkgYW5kIFNjcm9sbE9wdGlvbnMuCisKKyAgICAg
ICAgVGVzdHM6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IEFkZCBJREwgZmlsZXMgZm9yIFNjcm9sbE9wdGlvbnMgYW5kIFNjcm9sbEJlaGF2aW9yLgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogSGVhZGVycy5jbWFrZTogQWRk
IGhlYWRlcnMgZm9yIFNjcm9sbEJlaGF2b3IgYW5kIFNjcm9sbE9wdGlvbnMuCisgICAgICAgICog
U291cmNlcy50eHQ6IEFkZCBTY3JvbGxCZWhhdm9yIGFuZCBTY3JvbGxPcHRpb25zIGltcGxlbWVu
dGF0aW9uLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRk
IGZpbGVzIHRvIHRoZSBidWlsZCBzeXN0ZW0uCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHA6IEhhbmRsZSBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChXZWJD
b3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZSk6Cisg
ICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjogQWRkIHNjcm9sbC1iZWhhdmlvci4KKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogQWRkIGtleXdvcmRzIGZvciBzY3JvbGwt
YmVoYXZpb3IuCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcDogQWRk
IHJ1bnRpbWUgY29uZmlnIGZvciBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHRIYXNoOjpoYXNoKToKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHA6IFJlbW92ZSBzY3JvbGwtYmVo
YXZpb3IgdGVtcGxhdGVzLiBJdCBpcyBoYW5kbGVkIGluIHRoZSBzbG93IHBhdGggc2luY2UgcHJv
cGVydHkgY2FuIGJlIGRpc2FibGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBh
dGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKToKKyAgICAgICAgKiBjc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVT
Y3JvbGxCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6cGFy
c2VTaW5nbGVWYWx1ZSk6IFBhcnNlIHNjcm9sbC1iZWhhdmlvciAob25seSBpZiBlbmFibGVkKS4K
KyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjp1c2VTbW9vdGhTY3JvbGxpbmcpOiBIZWxwZXIgZnVuY2l0b24gdG8gZGV0ZXJtaW5lIHRo
ZSBzY3JvbGwgYmVoYXZpb3IgdG8gYXBwbHkgdG8gYW4gZWxlbWVudCBmcm9tIHRoZSBDU1MgYW5k
IERPTSBiZWhhdmlvci4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmg6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOiBNYWtlIHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBT
Y3JvbGxPcHRpb24uIEFsc28gcmVtb3ZlIHVubmVjZXNzYXJ5IGZvcndhcmQgZGVjbGFyYXRpb24u
CisgICAgICAgICogcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xh
c3MgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb24uCisgICAgICAgICogcGFnZS9TY3JvbGxPcHRp
b25zLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmg6IE1ha2UgdGhpcyBzdHJ1Y3QgaW5oZXJp
dHMgZnJvbSBTY3JvbGxPcHRpb25zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVG9PcHRpb25z
OjpTY3JvbGxUb09wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6bm9ybWFsaXplTm9uRmluaXRl
Q29vcmRpbmF0ZXNPckZhbGxCYWNrVG8pOiBDb3B5IHRoZSBjdXJyZW50IFNjcm9sbFRvT3B0aW9u
cyBzbyB0aGF0IHRoZSBzY3JvbGwgYmVoYXZpb3IgaXMgcHJlc2VydmVkLgorICAgICAgICAqIHBh
Z2UvU2Nyb2xsVG9PcHRpb25zLmlkbDogTWFrZSB0aGlzIGNsYXNzIGluaGVyaXQgZnJvbSBTY3Jv
bGxPcHRpb25zLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDogTmV3IHNldHRpbmcgZm9y
IENTU09NIFZpZXcgc21vb3RoIHNjcm9sbGluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaDogSGFuZGxlICdzbW9vdGggc2Nyb2xsaW5nJyBib29sZWFuIGRhdGEuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dXNlU21vb3RoU2Nyb2xsaW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRVc2VTbW9vdGhTY3JvbGxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpj
b252ZXJ0U21vb3RoU2Nyb2xsaW5nKToKKwogMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRo
aWVjaGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4ZWQgUGF0dGVybi5oIGNvbXBpbGUgZXJy
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDBiZmFiZWNhNDMuLmU5NzE0Yzg1
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTE1LDggKzkxNSwxMCBAQCBK
U19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2Fs
bGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvUmVzaXplT2JzZXJ2ZXJFbnRyeS5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JlZW4uaWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2Uv
U2Nyb2xsQmVoYXZpb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5p
ZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TaGFy
ZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvVW5kb0l0ZW0uaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IGVlODllZTNmMGMuLjJmMTc3MjYwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtODE2LDggKzgxNiwxMCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgcGFnZS9SZW1vdGVGcmFtZS5oCiAgICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVs
ZXIuaAogICAgIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisgICAgcGFnZS9TY3JvbGxC
ZWhhdmlvci5oCiAgICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaAogICAgIHBhZ2UvU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmgKKyAgICBwYWdlL1Njcm9sbE9wdGlvbnMuaAogICAgIHBhZ2Uv
U2Nyb2xsVG9PcHRpb25zLmgKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luLmgKICAgICBwYWdlL1Nl
Y3VyaXR5T3JpZ2luRGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGJjYTczY2Y5ZTcuLjNlNjgwNDRm
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNjQ3LDYgKzE2NDcsNyBAQCBwYWdlL1Jlc291cmNlVXNh
Z2VPdmVybGF5LmNwcAogcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAogcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAogcGFnZS9TY3JlZW4uY3BwCitwYWdlL1Njcm9sbEJlaGF2aW9y
LmNwcAogcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNw
cAogcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKQEAgLTE3NTIsNiArMTc1Myw3IEBAIHBsYXRmb3Jt
L1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5jcHAKIHBsYXRmb3JtL1NTTEtleUdlbmVyYXRvci5jcHAKIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmNwcAorcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAKIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Ny
b2xsYmFyLmNwcApAQCAtMzM3Niw4ICszMzc4LDEwIEBAIEpTU1ZHWm9vbUFuZFBhbi5jcHAKIEpT
U1ZHWm9vbUV2ZW50LmNwcAogSlNTY3JlZW4uY3BwCiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
CitKU1Njcm9sbEJlaGF2aW9yLmNwcAogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwCiBKU1Nj
cm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAKK0pTU2Nyb2xsT3B0aW9ucy5jcHAKIEpTU2Nyb2xsVG9P
cHRpb25zLmNwcAogSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNwcAogSlNTZXJ2aWNl
V29ya2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRleCBjMmMyNzA5Yjg3Li41NGI1MzZlZDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzR1RLLnR4dApAQCAtNjMsNyArNjMsNiBAQCBwYWdlL3Njcm9sbGluZy9u
aWNvc2lhL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLmNwcAogcGFnZS9zY3JvbGxpbmcvZ2VuZXJp
Yy9TY3JvbGxpbmdUaHJlYWRHZW5lcmljLmNwcAogCiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25L
aW5ldGljLmNwcAotcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0v
VXNlckFnZW50UXVpcmtzLmNwcAogCiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2Vu
ZXJpYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAwM2U2ZjU0MzNiLi5iYzk5NzA2ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzk3LDYgKzIzOTcs
OCBAQAogCQk4MzQwN0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0MDdG
QzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVF
MDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhENCAvKiBK
U1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVF
QzEgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9s
bEludG9WaWV3T3B0aW9ucy5oICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyog
SlNTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNFOUIzMDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAq
LzsgfTsKKwkJODM0NDc2RUYxREE1QkM1RTAwMkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1
QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVC
QzVFMDAyQjZFRDIgLyogSlNTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Nj
cm9sbFRvT3B0aW9ucy5oICovOyB9OwogCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYgLyogQ2xh
c3NDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzQ4QkZBQTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggKi87IH07
CiAJCTgzNERGQUQwMUY3REFFNUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRERkFDQzFGN0RBRTU2
MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNDUxLDYgKzI0NTMsOCBAQAogCQk4M0M0NUI4RTFE
QzJCNjhBMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZh
bGlkYXRpb25CdWJibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUw
QzNFNzFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMw
MTAwNkY5Qzk3IC8qIFNjcm9sbEludG9WaWV3T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNj
cm9sbEludG9WaWV3T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMz
RTcxREE1OUI2MjAwMzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3
IC8qIFNjcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQx
REE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNj
cm9sbFRvT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTgzRDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICov
OyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmgg
Ki87IH07CkBAIC0xMDE2Nyw5ICsxMDE3MSwxNCBAQAogCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcy
NUIgLyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTaGFyZWRTdHJpbmdIYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8q
IFNjcm9sbEludG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY3JvbGxJbnRvVmlld09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQzNCAvKiBTY3JvbGxCZWhhdmlvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xs
T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYy
MDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcm9sbFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzUwQzNFODFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50
b1ZpZXdPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxJbnRvVmlld09w
dGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNj
cm9sbEJlaGF2aW9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTgx
REE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNjcm9sbE9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUw
QzNFODFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTY3JvbGxUb09wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzUyMEM3RDFBNzFCRkNDMDA2QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NGb250RmFtaWx5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNTY1N0M2MUVDQUIwRTgwMENERTcyRCAvKiBKU0RPTU1hdHJpeElu
aXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXRyaXhJ
bml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjkxLDkgKzEwMzAwLDEz
IEBACiAJCTgzRTk1OUUxMUI4QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1
QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxCZWhhdmlvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxPcHRpb25z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZF
OEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTU2Nyb2xsVG9PcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZG
RDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThFNSAvKiBK
U1Njcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3Jv
bGxPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1
MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1Njcm9sbFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4M0VFNTk4QjFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTk4QzFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JD
YWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDc2OCwxMCArMjA3
ODEsMTUgQEAKIAkJCQlCQ0VDMDFCQTBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmNwcCAqLywK
IAkJCQlCQ0VDMDFCQjBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmggKi8sCiAJCQkJQkNFQzAx
QkMwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2
MjAwMzU2NDM0IC8qIFNjcm9sbEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYy
MDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAz
NTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaWRsICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1
NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCAqLywKIAkJCQk4MzUwQzNFNzFE
QTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCiAJCQkJODM1MEMz
RTgxREE1OUI2MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgKi8sCisJCQkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAqLywKKwkJCQk4MzUw
QzNFODFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwgKi8sCiAJCQkJODM1MEMz
RTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5oICovLAogCQkJCTgzNTBDM0U4
MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMuaWRsICovLAogCQkJCUJDRDBFMEY3
MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgKi8sCkBAIC0yNTU2MywxMCAr
MjU1ODEsMTQgQEAKIAkJCQk1OEIyRkEwMjIyMzJENjBBMDA5MzhENjMgLyogSlNSZXNpemVPYnNl
cnZlckVudHJ5LmggKi8sCiAJCQkJQkNFQzAxQzAwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVu
LmNwcCAqLywKIAkJCQlCQ0VDMDFDMTBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCAqLywK
KwkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAgKi8s
CisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLywK
IAkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkQ4RTUgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMu
Y3BwICovLAogCQkJCTgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3
T3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExv
Z2ljYWxQb3NpdGlvbi5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpT
U2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCisJCQkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5jcHAgKi8sCisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThGNiAv
KiBKU1Njcm9sbFRvT3B0aW9ucy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2
IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi8sCiAJCQkJN0M3M0ZCMEYxOTFFRjZGNDAwN0RFMDYx
IC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLywKQEAgLTMwOTEyLDggKzMwOTM0LDEwIEBA
CiAJCQkJNUUyQzQzNkMxQkNGMDcxRTAwMDFFMkJDIC8qIEpTUlRDVHJhY2tFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNFQzAxQzMwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVDRTEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9j
ZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAg
LyogSlNTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYxREE1QkM1
RTAwMkI1RUMxIC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVDMSAvKiBKU1Njcm9sbE9w
dGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBK
U1Njcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VEMDZBRDExQzc3NzU0ODAw
RkRGQUYxIC8qIEpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE4MkMyNTYxRjMxNDNDRDAwNTlCQTdDIC8qIEpTU2VydmljZVdvcmtlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMjExNyw2ICszMjE0MSw3IEBACiAJCQkJNDRDOTkxODYwRjNEMUVCRTAw
NTg2NjcwIC8qIFNjcm9sbGJhclRoZW1lSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCODUz
RTBFN0M3RjExMDBBQjY5ODQgLyogU2Nyb2xsYmFyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTcxNDA2MTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suaCBpbiBI
ZWFkZXJzICovLAorCQkJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBODRGMDUxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9s
bENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjA1QUVEMTVGOTQ4NDgwMDRERjBD
MCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNjJFRTgx
NERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTMyMTUzLDYgKzMyMTc4LDcgQEAKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyog
U2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUFGRThEMDE5Q0I4
NjcyMDAwRjU2RDggLyogU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODNDNTc5NUQxREE1QzMwMTAwNkY5Qzg2IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUY0Nzg3NTU0MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ2NzI5MjgxRTBERTY4NTAw
QUNDM0Q4IC8qIFNjcm9sbFNuYXBPZmZzZXRzSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
NTc5NUQxREE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwCmluZGV4IDFjNGUzNmYxNDkuLmQ0YWJmMjNiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMzkzLDYgKzMzOTMs
MTAgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclBy
b3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwogICAgICAgICAg
ICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVUb3Vj
aCk7CiAjZW5kaWYKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2aW9yOgorICAg
ICAgICAgICAgaWYgKCFzdHlsZS51c2VTbW9vdGhTY3JvbGxpbmcoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8p
OworICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVTbW9vdGgpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGVyc3BlY3RpdmU6CiAg
ICAgICAgICAgICBpZiAoIXN0eWxlLmhhc1BlcnNwZWN0aXZlKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IDQxNTc4YTk0ZWQuLmY5ODJk
M2Y1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzU1Nyw2ICsz
NTU3LDE2IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIv
U1ZHL3NoYXBlcy5odG1sIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Ny
b2xsLWJlaGF2aW9yIjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAg
ICAiYXV0byIsCisgICAgICAgICAgICAgICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
Y3Nzb20tdmlldyIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9
CisgICAgICAgIH0sCiAgICAgICAgICJzaGFwZS1yZW5kZXJpbmciOiB7CiAgICAgICAgICAgICAi
aW5oZXJpdGVkIjogdHJ1ZSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCkBAIC02NDg5LDYgKzY0
OTksMjIgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9j
c3MtdWktNC8jcHJvcGRlZi11c2VyLXNlbGVjdCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwK
KyAgICAgICAgInNjcm9sbC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisg
ICAgICAgICAgICAgICAgImF1dG8iLAorICAgICAgICAgICAgICAgICJzbW9vdGgiCisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAg
ICAgICAiY29udmVydGVyIjogIlNtb290aFNjcm9sbGluZyIsCisgICAgICAgICAgICAgICAgIm5h
bWUtZm9yLW1ldGhvZHMiOiAiVXNlU21vb3RoU2Nyb2xsaW5nIgorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJleHBlcmlt
ZW50YWwiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7Cisg
ICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAg
ICAgICAgICJzY3JvbGwtcGFkZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRp
ZXMiOiB7CiAgICAgICAgICAgICAgICAgImVuYWJsZS1pZiI6ICJFTkFCTEVfQ1NTX1NDUk9MTF9T
TkFQIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggOGRmZTNhYmIy
MS4uZGE4MjY5ZTYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAg
LTEzODgsNiArMTM4OCwxMCBAQCBwYW4teQogcGluY2gtem9vbQogI2VuZGlmCiAKKy8vIHNjcm9s
bC1iZWhhdmlvcgorLy8gYXV0bworc21vb3RoCisKIC8vIGhhbmdpbmctcHVuY3R1YXRpb24KIGFs
bG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNv
bnRleHQuY3BwCmluZGV4IDc1MzcxODhjYjkuLjcxZjlhYTYyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcApAQCAtNzUsNiArNzUsNyBAQCBD
U1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgVVJMJiBzaGVldEJhcwogICAgIGF0dGFjaG1lbnRFbmFibGVkID0gUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQo
KTsKICNlbmRpZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRp
bmdzKCkuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CisgICAgc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
KCk7CiAgICAgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IGRvY3VtZW50LnBhZ2UoKSA/IGRvY3VtZW50
LnBhZ2UoKS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpIDogZmFsc2U7CiB9CiAKQEAgLTk5LDYgKzEw
MCw3IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBD
U1NQYXJzZXJDb250ZXh0JiBiKQogICAgICAgICAmJiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIu
YXR0YWNobWVudEVuYWJsZWQKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2Vy
RW5hYmxlZCA9PSBiLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAorICAgICAgICAmJiBhLnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCA9PSBiLnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBh
Lmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
CiAgICAgICAgICYmIGEudXNlU3lzdGVtQXBwZWFyYW5jZSA9PSBiLnVzZVN5c3RlbUFwcGVhcmFu
Y2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmlu
ZGV4IDg2NTI1ZmQ3MGMuLmM3NGRjOTRjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBib29s
IGF0dGFjaG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRD
U1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0
IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4g
eyBmYWxzZSB9OwpAQCAtMTE2LDcgKzExNyw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFz
aCB7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAgICAgICYga2V5LmF0
dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYKLSAg
ICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDEyCisgICAgICAgICAgICAmIGtleS5t
b2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0
aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJpdHMpOwogICAgICAgICBy
ZXR1cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckZhc3RQYXRocy5jcHAKaW5kZXggMzFkMTJhYjlhYi4uNDIxMjg4OWVkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtNjM2
LDEwICs2MzYsNiBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9w
ZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZAogICAgICAgICAgICAgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVN0aWNreSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0U3RpY2t5
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6IC8vIG5vbmUgfCBib3RoIHwgaG9yaXpvbnRh
bCB8IHZlcnRpY2FsIHwgYXV0bwogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5v
bmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJvdGggfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUhvcml6
b250YWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVZlcnRpY2FsIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvOwotICAgIC8vIEZJWE1FLU5FV1BBUlNFUjogSW52ZXN0aWdhdGUgdGhpcyBwcm9wZXJ0
eS4KLSAgICAvLyBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsQmVoYXZpb3I6IC8vIGF1dG8gfCBzbW9v
dGgKLSAgICAvLyAgICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmNzc29tU21vb3Ro
U2Nyb2xsRW5hYmxlZCgpKTsKLSAgICAvLyAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0
byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU21vb3RoOwogICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFw
ZVJlbmRlcmluZzoKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDcmlz
cGVkZ2VzIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVHZW9tZXRyaWNQcmVjaXNpb247CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVqb2luOgpAQCAtOTM5LDcgKzkzNSw2IEBAIGJvb2wgQ1NT
UGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJZCkKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5Rm9udEtlcm5pbmc6CiAgICAgLy8gY2FzZSBD
U1NQcm9wZXJ0eUh5cGhlbnM6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93QW5jaG9y
OgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKICAgICAvLyBjYXNlIENT
U1Byb3BlcnR5U2Nyb2xsU25hcFR5cGU6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGln
bkxhc3Q6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRDb21iaW5lVXByaWdodDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggZWJk
MGVhZjVmNi4uNjNmNWFiNTJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTIzMjcsNiArMjMyNywxNCBAQCBzdGF0aWMgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlKQogCiAjZW5kaWYKIAorc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29u
c3VtZVNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1
dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5pZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENTU1Zh
bHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlU21vb3RoKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3RhdGljIFJlZlB0
cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChyYW5n
ZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTM5MjcsNiArMzkz
NSwxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZh
bHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3Jv
bGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxTbmFwVHlwZShtX3Jhbmdl
KTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKKyAgICAgICAg
aWYgKCFtX2NvbnRleHQuc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVybiBjb25zdW1lQ2xpcCht
X3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDcwZDllMWIwYWUuLmJlNWE4NTI2YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTgzMiw3ICs4MzIsNiBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9W
aWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgog
ICAgIGJvb2wgaW5zaWRlRml4ZWQ7CiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJvdW5kcyA9IHJl
bmRlcmVyKCktPmFic29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwogCi0gICAgLy8gRklY
TUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCiAgICAgU2Ny
b2xsSW50b1ZpZXdPcHRpb25zIG9wdGlvbnM7CiAgICAgaWYgKGFyZykgewogICAgICAgICBhdXRv
IHZhbHVlID0gYXJnLnZhbHVlKCk7CkBAIC04NTEsNyArODUwLDggQEAgdm9pZCBFbGVtZW50Ojpz
Y3JvbGxJbnRvVmlldyhPcHRpb25hbDxWYXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9u
cz4+JiYgYXIKICAgICAgICAgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLAogICAgICAgICBp
c0hvcml6b250YWwgPyBhbGlnblggOiBhbGlnblksCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFs
aWduWSA6IGFsaWduWCwKLSAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6
Tm8KKyAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8sCisgICAgICAg
IG9wdGlvbnMuYmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0bykKICAgICB9Owog
ICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYWJzb2x1dGVCb3VuZHMsIGluc2lk
ZUZpeGVkLCB2aXNpYmxlT3B0aW9ucyk7CiB9CkBAIC05MTIsNyArOTEyLDcgQEAgdm9pZCBFbGVt
ZW50OjpzY3JvbGxCeShjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMpCiAKIHZvaWQgRWxl
bWVudDo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIHNjcm9sbEJ5KHsgeCwg
eSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMoeCwgeSkpOwogfQogCiB2b2lkIEVs
ZW1lbnQ6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpCkBAIC05NDgsMTMgKzk0OCwxNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9s
bFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBp
bmcpCiAgICAgICAgIGFkanVzdEZvckFic29sdXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsTGVmdCgp
LCAqcmVuZGVyZXIpLAogICAgICAgICBhZGp1c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVyZXItPnNj
cm9sbFRvcCgpLCAqcmVuZGVyZXIpCiAgICAgKTsKLSAgICByZW5kZXJlci0+c2V0U2Nyb2xsTGVm
dChjbGFtcFRvSW50ZWdlcihzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXIt
PnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFt
cGluZyk7Ci0gICAgcmVuZGVyZXItPnNldFNjcm9sbFRvcChjbGFtcFRvSW50ZWdlcihzY3JvbGxU
b09wdGlvbnMudG9wLnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKKyAgICBJbnRQb2ludCBzY3Jv
bGxQb3NpdGlvbigKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLmxlZnQu
dmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksCisgICAgICAgIGNs
YW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSkKKyAgICApOworICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9v
dGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZp
b3I6OkF1dG8pLCAqdGhpcyk7CisgICAgcmVuZGVyZXItPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkLCBjbGFtcGluZyk7
CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAg
IHNjcm9sbFRvKHsgeCwgeSB9KTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSkp
OwogfQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5VW5pdHMoaW50IHVuaXRzLCBTY3JvbGxHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKQEAgLTEyODgsMTMgKzEyOTIsMTkgQEAgdm9pZCBFbGVtZW50
OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0KQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxp
bmdFbGVtZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVu
dEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRT
Y3JvbGxQb3NpdGlvbihJbnRQb2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmll
dygpLT5zY3JvbGxZKCkpKTsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFt
ZVdpdGhOb25OdWxsVmlldygpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVz
ZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAvLyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQorICAgICAgICAgICAg
Ym9vbCBhbmltYXRlZCA9IGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3Ro
U2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1l
bnQoKSk7CisgICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQ
b2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAq
IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmlldygpLT5zY3JvbGxZKCkpLCBh
bmltYXRlZCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChh
dXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKSB7Ci0gICAgICAgIHJlbmRlcmVyLT5zZXRTY3Jv
bGxMZWZ0KHN0YXRpY19jYXN0PGludD4obmV3TGVmdCAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVj
dGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyk7CisgICAgICAgIGludCBjbGFt
cGVkTGVmdCA9IGNsYW1wVG9JbnRlZ2VyKG5ld0xlZnQgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZl
Y3RpdmVab29tKCkpOworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5n
KFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3Jv
bGxMZWZ0KGNsYW1wZWRMZWZ0LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkKTsK
ICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVyKCkpCiAg
ICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3Rh
dGUodHJ1ZSk7CiAgICAgfQpAQCAtMTMwNSwxMyArMTMxNSwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNl
dFNjcm9sbFRvcChpbnQgbmV3VG9wKQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVt
ZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1l
V2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQ
b3NpdGlvbihJbnRQb2ludChmcmFtZS0+dmlldygpLT5zY3JvbGxYKCksIHN0YXRpY19jYXN0PGlu
dD4obmV3VG9wICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZh
Y3RvcigpKSkpOworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5v
bk51bGxWaWV3KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3Vt
ZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICBib29sIGFu
aW1hdGVkID0gZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxp
bmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICpkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsK
KyAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZy
YW1lLT52aWV3KCktPnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKSwgYW5pbWF0ZWQp
OworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoYXV0byogcmVu
ZGVyZXIgPSByZW5kZXJCb3goKSkgewotICAgICAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKHN0
YXRpY19jYXN0PGludD4obmV3VG9wICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgp
KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKKyAgICAgICAgaW50IGNsYW1wZWRUb3AgPSBj
bGFtcFRvSW50ZWdlcihuZXdUb3AgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
OworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2
aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3AoY2xhbXBl
ZFRvcCwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7CiAgICAgICAgIGlmIChh
dXRvKiBzY3JvbGxhYmxlQXJlYSA9IHJlbmRlcmVyLT5sYXllcigpKQogICAgICAgICAgICAgc2Ny
b2xsYWJsZUFyZWEtPnNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKHRydWUpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAwNTY4YjA2OWRjLi4yOGI0NjVmMGRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNTk1LDcgKzE1OTUsNyBAQCBkb3Vi
bGUgRE9NV2luZG93OjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIAogdm9pZCBET01XaW5kb3c6
OnNjcm9sbEJ5KGRvdWJsZSB4LCBkb3VibGUgeSkgY29uc3QKIHsKLSAgICBzY3JvbGxCeSh7IHgs
IHkgfSk7CisgICAgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKHgsIHkpKTsKIH0KIAogdm9pZCBE
T01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QK
QEAgLTE2MTcsMTAgKzE2MTcsMTAgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNj
cm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QKIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbFRv
KGRvdWJsZSB4LCBkb3VibGUgeSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpIGNvbnN0CiB7Ci0g
ICAgc2Nyb2xsVG8oeyB4LCB5IH0sIGNsYW1waW5nKTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09w
dGlvbnMoeCwgeSksIGNsYW1waW5nKTsKIH0KIAotdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNv
bnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0Cit2b2lk
IERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3Jv
bGxDbGFtcGluZyBjbGFtcGluZykgY29uc3QKIHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxh
eWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNjMzLDEyICsxNjMzLDIyIEBAIHZv
aWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMsIFNj
cm9sbENsYW1waW5nKSBjb25zdAogICAgICAgICB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9u
KCkueCgpLCB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkueSgpCiAgICAgKTsKIAotICAg
IGlmICghc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Nyb2xsVG9PcHRpb25zLnRv
cC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKSA9PSBJbnRQb2ludCgw
LCAwKSkKKyAgICAvLyBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiBmb3IgdGhlIGNvbW1vbiBjYXNl
IG9mIHNjcm9sbGluZyB0byAoMCwgMCkgd2hlbiB0aGUgc2Nyb2xsZXIgaXMgYWxyZWFkeSBhdCB0
aGUgb3JpZ2luLgorICAgIC8vIElmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcywg
dGhpcyBvcHRpbWl6YXRpb24gaXMgc2tpcHBlZCB0byBlbnN1cmUgdGhhdCB0aGUgYW5pbWF0ZWQg
c2Nyb2xsIGlzIHJlYWxseSBzdG9wcGVkLgorICAgIGlmICh2aWV3LT5jdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYg
IXNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkgJiYgIXNjcm9sbFRvT3B0aW9ucy50b3AudmFs
dWUoKSAmJiB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkgPT0gSW50UG9pbnQoMCwgMCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgSW50UG9pbnQgbGF5b3V0UG9zKHZpZXctPm1hcEZy
b21DU1NUb0xheW91dFVuaXRzKHNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkpLCB2aWV3LT5t
YXBGcm9tQ1NTVG9MYXlvdXRVbml0cyhzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkpKTsKKwor
ICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQo
KT8KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTA1OQorICAgIGlmIChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhT
Y3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6
OkF1dG8pLCAqZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkpKSB7CisgICAgICAgIHZpZXct
PnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihsYXlvdXRQb3MsIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYywgY2xhbXBpbmcpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgdmlldy0+
c2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihsYXlvdXRQb3MpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggMDQwMTJmOWVmZi4uNzMxZTMyMjk5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMjI3OSw3ICsyMjc5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9s
bEVsZW1lbnRUb1JlY3QoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKICAgICBzZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChib3VuZHMueCgpIC0gY2VudGVyaW5n
T2Zmc2V0WCAtIHJlY3QueCgpLCBib3VuZHMueSgpIC0gY2VudGVyaW5nT2Zmc2V0WSAtIHJlY3Qu
eSgpKSk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sIGFuaW1hdGVk
KQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRnJhbWVWaWV3
OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uIDw8ICIgLCBjbGVhcmluZyBh
bmNob3IiKTsKIApAQCAtMjI5Miw3ICsyMjkyLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAgICAgUGFn
ZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwogICAgIGlmIChwYWdlICYmIHBhZ2UtPmlzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKCkpCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVu
dFRlc3RNb25pdG9yKHBhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKLSAgICBTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgaWYgKGFuaW1hdGVk
KQorICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBv
c2l0aW9uKHNjcm9sbFBvc2l0aW9uKSwgY3VycmVudFNjcm9sbFR5cGUoKSk7CisgICAgZWxzZQor
ICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CiAK
ICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShvbGRTY3JvbGxUeXBlKTsKIH0KQEAgLTM2NjAsNiAr
MzY2MywyNiBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24m
IG5ld1Bvc2l0aW9uKQogICAgIGRpZENoYW5nZVNjcm9sbE9mZnNldCgpOwogfQogCit2b2lkIEZy
YW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYg
b2Zmc2V0LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQoreworICAgIGF1
dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAg
c2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygp
ID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAg
c2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CisgICAgaWYgKG9mZnNldCAhPSB0
aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zm
c2V0V2l0aEFuaW1hdGlvbihvZmZzZXQpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZp
b3VzU2Nyb2xsVHlwZSk7Cit9CisKIGZsb2F0IEZyYW1lVmlldzo6YWRqdXN0U2Nyb2xsU3RlcEZv
ckZpeGVkQ29udGVudChmbG9hdCBzdGVwLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKGdyYW51bGFyaXR5
ICE9IFNjcm9sbEJ5UGFnZSB8fCBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggZTM2Zjk5NjgwNC4uYjM3ZjA2MGUzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0yMjMsNyArMjIzLDcgQEAgcHVibGljOgogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpeGVkVmlz
aWJsZUNvbnRlbnRSZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICNlbmRpZgotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBm
aW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNj
cm9sbFBvc2l0aW9uJiwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIHJl
c3RvcmVTY3JvbGxiYXIoKTsKICAgICB2b2lkIHNjaGVkdWxlU2Nyb2xsVG9Gb2N1c2VkRWxlbWVu
dChTZWxlY3Rpb25SZXZlYWxNb2RlKTsKICAgICB2b2lkIHNjcm9sbFRvRm9jdXNlZEVsZW1lbnRJ
bW1lZGlhdGVseUlmTmVlZGVkKCk7CkBAIC02NTksNiArNjU5LDggQEAgcHVibGljOgogCiAgICAg
dm9pZCByZW5kZXJMYXllckRpZFNjcm9sbChjb25zdCBSZW5kZXJMYXllciYpOwogCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xs
T2Zmc2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xh
bXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisKIHByb3RlY3RlZDoKICAgICBib29s
IHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwog
ICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNGVkMjljYjQyYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEJlaGF2aW9yLmgiCisKKyNpbmNsdWRlICJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29s
IHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvciBiZWhhdmlvciwgRWxlbWVudCYgYXNz
b2NpYXRlZEVsZW1lbnQpCit7CisgICAgaWYgKCFhc3NvY2lhdGVkRWxlbWVudC5kb2N1bWVudCgp
LnNldHRpbmdzKCkuQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCgpIHx8ICFhc3NvY2lh
dGVkRWxlbWVudC5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nCisgICAgc3dpdGNo
IChiZWhhdmlvcikgeworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OkF1dG86CisgICAgICAgIHJl
dHVybiBhc3NvY2lhdGVkRWxlbWVudC5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZVNtb290aFNjcm9s
bGluZygpOworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQ6CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBjYXNlIFNjcm9sbEJlaGF2aW9yOjpTbW9vdGg6CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVo
YXZpb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xYmFlZjg4MWU4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5o
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxl
bWVudDsKKworZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIEF1dG8g
PSAwLAorICAgIEluc3RhbnQsCisgICAgU21vb3RoCit9OworCitib29sIHVzZVNtb290aFNjcm9s
bGluZyhTY3JvbGxCZWhhdmlvciwgRWxlbWVudCYgYXNzb2NpYXRlZEVsZW1lbnQpOworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9s
bEJlaGF2aW9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjg5NzFhZTkzN2EKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmlkbApAQCAtMCww
ICsxLDI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K2VudW0gU2Nyb2xsQmVoYXZpb3IgeyAiYXV0byIsICJpbnN0YW50IiwgInNtb290aCIgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oCmluZGV4IDkzOWNkNzM0
MjUuLmYyNzVmMmZiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50
b1ZpZXdPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09w
dGlvbnMuaApAQCAtMjAsMTIgKzIwLDExIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNj
cm9sbExvZ2ljYWxQb3NpdGlvbi5oIgorI2luY2x1ZGUgIlNjcm9sbE9wdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBFbGVtZW50OwotCi1zdHJ1Y3QgU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zIHsKK3N0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnMgOiBTY3JvbGxPcHRpb25z
IHsKICAgICBPcHRpb25hbDxTY3JvbGxMb2dpY2FsUG9zaXRpb24+IGJsb2NrUG9zaXRpb24geyBT
Y3JvbGxMb2dpY2FsUG9zaXRpb246OlN0YXJ0IH07CiAgICAgT3B0aW9uYWw8U2Nyb2xsTG9naWNh
bFBvc2l0aW9uPiBpbmxpbmVQb3NpdGlvbiB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6TmVhcmVz
dCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlk
bAppbmRleCBjZjlkMWZkNzY3Li4xYjI0YzY4NmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsCkBAIC0xNyw4ICsxNyw3IEBACiAgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQz
KTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRp
b25zIHsKK2RpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7
CiAgICAgW0ltcGxlbWVudGVkQXM9YmxvY2tQb3NpdGlvbl0gU2Nyb2xsTG9naWNhbFBvc2l0aW9u
IGJsb2NrID0gInN0YXJ0IjsKICAgICBbSW1wbGVtZW50ZWRBcz1pbmxpbmVQb3NpdGlvbl0gU2Ny
b2xsTG9naWNhbFBvc2l0aW9uIGlubGluZSA9ICJuZWFyZXN0IjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2Nyb2xsT3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmUx
ODY3YzYwMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9w
dGlvbnMuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU2Nyb2xsT3B0aW9ucyB7CisgICAg
T3B0aW9uYWw8U2Nyb2xsQmVoYXZpb3I+IGJlaGF2aW9yIHsgU2Nyb2xsQmVoYXZpb3I6OkF1dG8g
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9w
dGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMyOWQ2ZmYx
MDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMu
aWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworZGljdGlvbmFyeSBTY3JvbGxPcHRpb25zIHsKKyAgICBTY3JvbGxCZWhhdmlv
ciBiZWhhdmlvciA9ICJhdXRvIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Njcm9sbFRvT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMu
aAppbmRleCBjZTFjYmExYzdjLi5mNTc3NGQ0NGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xs
VG9PcHRpb25zLmgKQEAgLTI4LDE0ICsyOCwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIlNjcm9sbE9wdGlvbnMuaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgU2Nyb2xsVG9PcHRpb25z
IHsKK3N0cnVjdCBTY3JvbGxUb09wdGlvbnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBPcHRpb25h
bDxkb3VibGU+IGxlZnQ7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiB0b3A7CisKKyAgICBTY3JvbGxU
b09wdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAgU2Nyb2xsVG9PcHRpb25zKGRvdWJsZSB4LCBkb3Vi
bGUgeSkKKyAgICAgICAgOiBsZWZ0KHgpCisgICAgICAgICwgdG9wKHkpCisgICAgeyB9CiB9Owog
CiBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlv
bmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZSBmYWxsYmFja1ZhbHVlKQpAQCAtNDcsNyArNTQsNyBA
QCBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlv
bmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZQogLy8gRklYTUUoaHR0cHM6Ly93ZWJraXQub3JnL2Iv
ODgzMzkpOiBDb25zaWRlciB1c2luZyBGbG9hdFBvaW50IG9yIERvdWJsZVBvaW50IGZvciBmYWxs
YmFjayBhbmQgcmV0dXJuIHZhbHVlcy4KIGlubGluZSBTY3JvbGxUb09wdGlvbnMgbm9ybWFsaXpl
Tm9uRmluaXRlQ29vcmRpbmF0ZXNPckZhbGxCYWNrVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiB2
YWx1ZSwgZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25z
OworICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zID0gdmFsdWU7CiAgICAgb3B0aW9ucy5sZWZ0
ID0gbm9ybWFsaXplTm9uRmluaXRlVmFsdWVPckZhbGxCYWNrVG8odmFsdWUubGVmdCwgeCk7CiAg
ICAgb3B0aW9ucy50b3AgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tUbyh2YWx1
ZS50b3AsIHkpOwogICAgIHJldHVybiBvcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxU
b09wdGlvbnMuaWRsCmluZGV4IDUxMGJjMDcxYTYuLjJiOWI1NTQxMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKQEAgLTI2LDggKzI2LDcgQEAKICAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotLy8gRklYTUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVo
YXZpb3IuCi1kaWN0aW9uYXJ5IFNjcm9sbFRvT3B0aW9ucyB7CitkaWN0aW9uYXJ5IFNjcm9sbFRv
T3B0aW9ucyA6IFNjcm9sbE9wdGlvbnMgewogICAgIHVucmVzdHJpY3RlZCBkb3VibGUgbGVmdDsK
ICAgICB1bnJlc3RyaWN0ZWQgZG91YmxlIHRvcDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlh
bWwKaW5kZXggYjMyOWYxMjQ3OS4uMWQ3OWY0NTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbApAQCAtNjIyLDYgKzYyMiw5IEBAIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6
CiBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCitDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBpbnB1dEV2
ZW50c0VuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRl
eCA0MjllZWU5YTk2Li4wMmQ1ODk3NTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4
LDcgKzI0OCwxNiBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tG
b3J3YXJkQ2FjaGUgPSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRD
YWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29s
IGluUHJvZ3JhbW1hdGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUo
KSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Ny
b2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRp
b24gPSBpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisKKyAgICBi
b29sIGFuaW1hdGVkID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhbmlt
YXRlZCA9IHNjcm9sbGFibGVBcmVhLmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSA9PSBTY3Jv
bGxCZWhhdmlvclR5cGU6OlNtb290aDsKKyAgICAvLyBUaGUgc2Nyb2xsIHBvc2l0aW9uIG9mIGFu
aW1hdGVkIHNjcm9sbGluZyB3aWxsIGJlIHNldCBieSB0aGUgVUkgcHJvY2Vzcy4gU28gc2hvdWxk
bid0IHNldCBpdCBub3cuCisgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSAhYW5pbWF0ZWQgJiYg
dXBkYXRlU2Nyb2xsUG9zaXRpb247CisjZW5kaWYKKyAgICBpZiAodXBkYXRlU2Nyb2xsUG9zaXRp
b24pCiAgICAgICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3JvbGxp
bmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCB7IH0sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIAogICAgIC8vIElmIHRoaXMgZnJh
bWUgdmlldydzIGRvY3VtZW50IGlzIGJlaW5nIHB1dCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUsIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIG91cgpAQCAtMjYwLDcgKzI2OSwxMiBAQCBib29s
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShT
Y3JvbGxhYmxlQXJlYSYgc2NybwogICAgIGlmICghc3RhdGVOb2RlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBhdXRvIHN0YXR1cyA9IGFuaW1hdGVkID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Oklu
TmF0aXZlQW5pbWF0aW9uIDogU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOwor
ICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKHN0YXR1cyk7CisjZW5k
aWYKKworICAgIHN0YXRlTm9kZS0+c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9z
aXRpb24sIGluUHJvZ3JhbW1hdGljU2Nyb2xsLCBhbmltYXRlZCk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTI5MSw2ICszMDUsMzIgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBt
X3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29s
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGZy
YW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZy
YW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXct
PnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhT
Y3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9s
bGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQobm9k
ZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAg
ICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhh
dmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5ub2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBk
YXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9y
dE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRl
TGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4u
M2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3lu
Y1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25h
bDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhT
Y3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWxJbmRleCwgdW5zaWduZWQgdmVydGlj
YWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3MTdiZmMyYTU1Li40ZTQw
MTRlOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29u
c3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
V2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0
aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2Rl
LmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0yMTksMTAgKzIyMiwxNSBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0
IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFt
cyk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwg
Ym9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlvbikKIHsKICAgICBtX3JlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgbV9yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gPSByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0ocmVxdWVzdGVkV2l0aEFuaW1hdGlvbik7CisjZW5kaWYKICAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQogCkBAIC0z
MTQsNiArMzIyLDExIEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJv
cGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUCiAgICAgaWYgKG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogICAgICAgICB0
cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gcmVwcmVzZW50cyBwcm9n
cmFtbWF0aWMgc2Nyb2xsIiwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisgICAgICAgIHRzLmR1bXBQcm9w
ZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB3aXRoIGFuaW1hdGlvbiIsIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3Bh
cmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICB0cy5kdW1wUHJv
cGVydHkoInBhcmVudCByZWxhdGl2ZSBzY3JvbGxhYmxlIHJlY3QiLCBtX3BhcmVudFJlbGF0aXZl
U2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDQ5NjdhNmNlODEu
LjZjNjkyYzFkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xMTEsNyArMTExLDEwIEBA
IHB1YmxpYzoKIAogICAgIGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsgfQogICAgIGJvb2wg
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgY29u
c3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGw7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHJlcXVlc3RlZFdpdGhBbmltYXRpb24pOwogCiAg
ICAgYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faXNNb25p
dG9yaW5nV2hlZWxFdmVudHM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKGJvb2wpOwpAQCAtMTcxLDYgKzE3NCw5IEBAIHByaXZhdGU6CiAgICAg
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogCiAg
ICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCB7IGZhbHNlIH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgogICAg
IGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggMTUxYWMyOWY4
YS4uN2FkZGZlZjRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaApAQCAtODIsOCArODIsMTMgQEAgcHVibGljOgogICAgIC8vIFVwZGF0ZXMgRnJh
bWVWaWV3L1JlbmRlckxheWVyIHNjcm9sbGluZyBzdGF0ZSBhbmQgR3JhcGhpY3NMYXllcnMuCiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlJiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb246OlN5bmMpID0gMDsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgLy8gQ2FsbGVkIGZvciBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cyB1cGRhdGVzLgorICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgLyppc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MqLykgeyB9CisjZW5kaWYKKwogICAgIC8vIENhbGxlZCBmb3IgcmVxdWVz
dGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzLgotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
LypzY3JvbGxQb3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCov
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChT
Y3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9zaXRpb24qLywgYm9v
bCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLywgYm9vbCAvKndpdGhBbmltYXRpb24q
LyA9IGZhbHNlKSB7IH0KIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxpbmcvem9vbWluZyBoYXMg
Y2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2aWV3cG9ydC1jb25zdHJh
aW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5GcmFtZVZpZXdwb3J0Q2hh
bmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwgZG91YmxlIHNjYWxl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYxLi4xN2M3ZjJhOGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3LDEyIEBAIHZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Ny
b2xsaW5nU3RhdGVOCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCiB7CiAg
ICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3JvbGxpbmdTdGF0ZU5vZGUg
PSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CisgICAg
Ym9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICB3aXRoQW5pbWF0aW9uID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uV2l0aEFuaW1hdGlvbigpOworI2VuZGlmCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbikpCi0gICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyAgICAgICAgc2Nyb2xs
aW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlE
KCksIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxp
bmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsKCksIHdpdGhBbmltYXRpb24pOwogCiAgICAgbV9pc0ZpcnN0Q29tbWl0ID0gZmFsc2U7
CiB9CkBAIC0xNTcsMjEgKzE2MSw0MSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBTY3JvbGxQb3NpdGlvbgogICAgIHNj
cm9sbFRvKGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpICsgZGVsdGEsIFNjcm9sbFR5cGU6OlVzZXIs
IGNsYW1wKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8o
Y29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
UG9zaXRpb25DbGFtcCBjbGFtcCkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNj
cm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUs
IFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXAsIGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbikK
IHsKLSAgICBpZiAocG9zaXRpb24gPT0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24pCisgICAgaWYg
KHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSB7CisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAgICAgLy8gU2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIg
cHJvY2Vzcy4KKyAgICAgICAgaWYgKHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpICYmIG5lZWRTeW5j
U2Nyb2xsUG9zaXRpb24pCisgICAgICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwoKnRoaXMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMp
OworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uoc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAg
ICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGZhbHNlKTsKKyNlbHNlCisgICAgICAgIFVOVVNF
RF9QQVJBTShuZWVkU3luY1Njcm9sbFBvc2l0aW9uKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47
CisgICAgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBJZiBkdXJpbmcgYSBz
Y3JvbGwgYW5pbWF0aW9uLCBuZWVkIHRvIHN0b3AgaXQgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9u
ZS4KKyAgICBpZiAoc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpKQorICAgICAgICBzZXROZWVk
c1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKHRydWUpOworI2VuZGlmCiAgICAgc2Nyb2xsaW5n
VHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Nyb2xsVHlwZSA9PSBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMpOwotICAgIAorCiAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRp
b24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7Ci0gICAgCisKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBzY3JvbGxUbyAiIDw8IHBvc2l0
aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFzdCBjb21taXR0ZWQgcG9zaXRpb24gIiA8PCAobV9sYXN0
Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gLSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgPDwgIiki
KTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CiAgICAg
Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNl
dElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOworCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGZhbHNlKTsK
KyAgICBzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoZmFsc2UpOworI2VuZGlmCiB9CiAKIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQo
KQpAQCAtMTc5LDYgKzIwMywxMCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpj
dXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKICAgICByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5
ZXJzKCk7CiAgICAgcmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKTsKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgaWYgKCFyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSkKKyAgICAgICAgcmV0
dXJuOworI2VuZGlmCiAgICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlmeVJlbGF0ZWROb2Rlc0FmdGVy
U2Nyb2xsUG9zaXRpb25DaGFuZ2UoKnRoaXMpOwogICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcyk7CiB9CkBAIC0yNjYsNiArMjk0LDM3IEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRz
LCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAgdHMuZHVtcFByb3BlcnR5KCJzY3JvbGxhYmxlIGFyZWEg
cGFyYW1ldGVycyIsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKTsKIH0KIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1
ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCBhbmltYXRlZCkKK3sKKyAgICBtX3JlcXVlc3RBbmltYXRl
ZFNjcm9sbCA9IGFuaW1hdGVkOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3RB
bmltYXRlZFNjcm9sbDsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sIGluUHJvZ3Jlc3MpCit7CisgICAgbV9zY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzID0gaW5Qcm9ncmVzczsKK30KKworYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzczsKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihi
b29sIHN0b3ApCit7CisgICAgbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uID0gc3Rv
cDsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbjsKK30KKyNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4
IDRjYmY0ZDFhZjAuLmY5ZjMxMGRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNjAsNyAr
NjAsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gLSBtX2xhc3RDb21taXR0
ZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8gVGhlc2UgYXJlIGltcGVyYXRpdmU7IHRoZXkg
YWRqdXN0IHRoZSBzY3JvbGxpbmcgbGF5ZXJzLgotICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxv
YXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlvbkNs
YW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOworICAgIHZvaWQgc2Ny
b2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBT
Y3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMs
IGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiA9IGZhbHNlKTsKICAgICB2b2lkIHNjcm9sbEJ5
KGNvbnN0IEZsb2F0U2l6ZSYsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNs
YW1wOjpUb0NvbnRlbnRFZGdlcyk7CiAKICAgICB2b2lkIHdhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRT
Y3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UmVjdD4g
b3ZlcnJpZGVMYXlvdXRWaWV3cG9ydCA9IHsgfSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpOwpAQCAtOTEsNiArOTEsMTUg
QEAgcHVibGljOgogICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbENvbnRhaW5l
ckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxDb250YWluZXJMYXllcjsgfQogICAgIGNv
bnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbGVkQ29udGVudHNMYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIHZvaWQgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wpOworICAgIGJvb2wg
cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKGJvb2wpOworICAgIGJvb2wgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygp
IGNvbnN0OworICAgIHZvaWQgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29s
KTsKKyAgICBib29sIG5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUoU2Nyb2xs
aW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCkBAIC0xNDgs
NiArMTU3LDEyIEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogICAgIGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9
OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVxdWVzdEFuaW1hdGVk
U2Nyb2xsIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB7
IGZhbHNlIH07CisgICAgYm9vbCBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24geyBm
YWxzZSB9OworI2VuZGlmCisKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsQ29udGFp
bmVyTGF5ZXI7CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbGVkQ29udGVudHNMYXll
cjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCmluZGV4IGI3
YzFkMjRlYjQuLjUyM2E3N2YzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdGlvbi5oCkBAIC0zMiwxMiArMzIsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGbG9hdFBvaW50OwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CitlbnVtIGNsYXNzIFNjcm9sbENs
YW1waW5nIDogdWludDhfdDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0aW9uIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TY3JvbGxBbmltYXRpb24o
KSB7IH07CiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHksIGZsb2F0IC8qIHN0ZXAgKi8sIGZsb2F0IC8qIG11bHRpcGxpZXIgKi8p
IHsgcmV0dXJuIHRydWU7IH07CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBGbG9hdFBv
aW50JikgeyB9OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVu
dFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAppbmRleCBkMDY0ZTY5Mzc5Li4yY2E1
NzhhMzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b25TbW9vdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlv
blNtb290aC5jcHAKQEAgLTI4LDggKzI4LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJTY3JvbGxBbmltYXRpb25TbW9vdGguaCIKIAotI2lmIEVOQUJMRShTTU9PVEhfU0NST0xM
SU5HKQotCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVh
LmgiCiAKQEAgLTM4LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0
IGRvdWJsZSBmcmFtZVJhdGUgPSA2MDsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIHRpY2tUaW1lID0g
MV9zIC8gZnJhbWVSYXRlOwogc3RhdGljIGNvbnN0IFNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2
YWwgeyAxX21zIH07CitzdGF0aWMgY29uc3QgZG91YmxlIHNtb290aEZhY3RvckZvclByb2dyYW1t
YXRpY1Njcm9sbCA9IDU7CiAKIFNjcm9sbEFuaW1hdGlvblNtb290aDo6U2Nyb2xsQW5pbWF0aW9u
U21vb3RoKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgRmxvYXRQb2ludCYg
cG9zaXRpb24sIFdURjo6RnVuY3Rpb248dm9pZCAoRmxvYXRQb2ludCYmKT4mJiBub3RpZnlQb3Np
dGlvbkNoYW5nZWRGdW5jdGlvbikKICAgICA6IFNjcm9sbEFuaW1hdGlvbihzY3JvbGxhYmxlQXJl
YSkKQEAgLTY3LDkgKzY2LDIyIEBAIGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51CiAgICAgcmV0dXJu
IG5lZWRUb1Njcm9sbDsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNjcm9sbChj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3sKKyAgICBTY3JvbGxHcmFudWxhcml0eSBncmFu
dWxhcml0eSA9IFNjcm9sbEJ5UGFnZTsKKyAgICBib29sIG5lZWRUb1Njcm9sbCA9IHVwZGF0ZVBl
ckF4aXNEYXRhKG1faG9yaXpvbnRhbERhdGEsIGdyYW51bGFyaXR5LCBwb3NpdGlvbi54KCkgLSBt
X2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVt
U2Nyb2xsUG9zaXRpb24oKS54KCksIG1fc2Nyb2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0
aW9uKCkueCgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG5lZWRU
b1Njcm9sbCB8PQorICAgICAgICB1cGRhdGVQZXJBeGlzRGF0YShtX3ZlcnRpY2FsRGF0YSwgZ3Jh
bnVsYXJpdHksIHBvc2l0aW9uLnkoKSAtIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwg
bV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKS55KCksIG1fc2Nyb2xsYWJs
ZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueSgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFt
bWF0aWNTY3JvbGwpOworICAgIGlmIChuZWVkVG9TY3JvbGwgJiYgIWFuaW1hdGlvblRpbWVyQWN0
aXZlKCkpIHsKKyAgICAgICAgbV9zdGFydFRpbWUgPSBtX2hvcml6b250YWxEYXRhLnN0YXJ0VGlt
ZTsKKyAgICAgICAgYW5pbWF0aW9uVGltZXJGaXJlZCgpOworICAgIH0KK307CisKIHZvaWQgU2Ny
b2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKCkKIHsKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3Ao
KTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0aW9u
U21vb3RoOjp1cGRhdGVWaXNpYmxlTGVuZ3RocygpCkBAIC0yNDcsNyArMjU5LDcgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGdldEFuaW1hdGlvblBhcmFtZXRlcnNGb3JHcmFudWxhcml0eShTY3JvbGxH
cmFudWxhcml0eSBncmFudWwKICAgICB9CiB9CiAKLWJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
Ojp1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0YSYgZGF0YSwgU2Nyb2xsR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3JvbGxQb3NpdGlvbiwgZmxvYXQg
bWF4U2Nyb2xsUG9zaXRpb24pCitib29sIFNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlUGVy
QXhpc0RhdGEoUGVyQXhpc0RhdGEmIGRhdGEsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBv
c2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yKQogewogICAgIGlmICghZGF0YS5zdGFydFRpbWUg
fHwgIWRlbHRhIHx8IChkZWx0YSA8IDApICE9IChkYXRhLmRlc2lyZWRQb3NpdGlvbiAtIGRhdGEu
Y3VycmVudFBvc2l0aW9uIDwgMCkpIHsKICAgICAgICAgZGF0YS5kZXNpcmVkUG9zaXRpb24gPSBk
YXRhLmN1cnJlbnRQb3NpdGlvbjsKQEAgLTI2NCw2ICsyNzYsMTIgQEAgYm9vbCBTY3JvbGxBbmlt
YXRpb25TbW9vdGg6OnVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiBkYXRhLCBTY3JvbGxH
cmFudWxhcmkKICAgICBDdXJ2ZSBjb2FzdFRpbWVDdXJ2ZTsKICAgICBnZXRBbmltYXRpb25QYXJh
bWV0ZXJzRm9yR3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHksIGFuaW1hdGlvblRpbWUsIHJlcGVhdE1p
bmltdW1TdXN0YWluVGltZSwgYXR0YWNrVGltZSwgcmVsZWFzZVRpbWUsIGNvYXN0VGltZUN1cnZl
LCBtYXhpbXVtQ29hc3RUaW1lKTsKIAorICAgIGFuaW1hdGlvblRpbWUgKj0gc21vb3RoRmFjdG9y
OworICAgIHJlcGVhdE1pbmltdW1TdXN0YWluVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgYXR0
YWNrVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgcmVsZWFzZVRpbWUgKj0gc21vb3RoRmFjdG9y
OworICAgIG1heGltdW1Db2FzdFRpbWUgKj0gc21vb3RoRmFjdG9yOworCiAgICAgZGF0YS5kZXNp
cmVkUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsKICAgICBpZiAoIWRhdGEuc3RhcnRUaW1lKQogICAg
ICAgICBkYXRhLmF0dGFja1RpbWUgPSBhdHRhY2tUaW1lOwpAQCAtMzkyLDYgKzQxMCw4IEBAIHZv
aWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckZpcmVkKCkKIAogICAgIGlm
IChjb250aW51ZUFuaW1hdGlvbikKICAgICAgICAgc3RhcnROZXh0VGltZXIoc3RkOjptYXgobWlu
aW11bVRpbWVySW50ZXJ2YWwsIGRlbHRhVG9OZXh0RnJhbWUpKTsKKyAgICBlbHNlCisgICAgICAg
IG1fc2Nyb2xsYWJsZUFyZWEuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIAogICAgIG1fbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVu
Y3Rpb24oRmxvYXRQb2ludChtX2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV92ZXJ0
aWNhbERhdGEuY3VycmVudFBvc2l0aW9uKSk7CiB9CkBAIC00MDcsNSArNDI3LDMgQEAgYm9vbCBT
Y3JvbGxBbmltYXRpb25TbW9vdGg6OmFuaW1hdGlvblRpbWVyQWN0aXZlKCkgY29uc3QKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5o
CmluZGV4IDAyY2M0ZWUyYmQuLjgxNzNmYTdlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCkBAIC0yNywxNCArMjcsMTMgQEAKIAogI2lu
Y2x1ZGUgIlNjcm9sbEFuaW1hdGlvbi5oIgogCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
Ci0KICNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZs
b2F0UG9pbnQ7CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKK2VudW0gY2xhc3MgU2Nyb2xsQ2xhbXBp
bmcgOiB1aW50OF90OwogCiBjbGFzcyBTY3JvbGxBbmltYXRpb25TbW9vdGggZmluYWw6IHB1Ymxp
YyBTY3JvbGxBbmltYXRpb24gewogcHVibGljOgpAQCAtNTEsNiArNTAsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdy
YW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNjcm9sbChjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKQEAg
LTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaW50IHZpc2libGVMZW5ndGggeyAwIH07
CiAgICAgfTsKIAotICAgIGJvb2wgdXBkYXRlUGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmLCBTY3Jv
bGxHcmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9h
dCBtYXhTY3JvbGxQb3NpdGlvbik7CisgICAgYm9vbCB1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlz
RGF0YSYsIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9z
aXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yID0gMSk7
CiAgICAgYm9vbCBhbmltYXRlU2Nyb2xsKFBlckF4aXNEYXRhJiwgTW9ub3RvbmljVGltZSBjdXJy
ZW50VGltZSk7CiAKICAgICB2b2lkIHJlcXVlc3RBbmltYXRpb25UaW1lckZpcmVkKCk7CkBAIC0x
MDgsNCArMTA4LDMgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5jcHAKaW5kZXggYTYxMTg2ODM3ZC4uNGQ1OThjNzVhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAK
QEAgLTUyLDYgKzUzLDE4IEBAIFNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcihTY3JvbGxh
YmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgICwgbV9zY3JvbGxDb250cm9sbGVyKCp0aGlzKQog
I2VuZGlmCisgICAgLCBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbChtYWtlVW5pcXVlPFNj
cm9sbEFuaW1hdGlvblNtb290aD4oc2Nyb2xsYWJsZUFyZWEsIG1fY3VycmVudFBvc2l0aW9uLCBb
dGhpc10oRmxvYXRQb2ludCYmIHBvc2l0aW9uKSB7CisgICAgICAgIGF1dG8gcHJldmlvdXNTY3Jv
bGxUeXBlID0gbV9zY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsVHlwZSgpOworICAgICAgICBt
X3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKFNjcm9sbFR5cGU6OlByb2dyYW1t
YXRpYyk7CisgICAgICAgIGJvb2wgdXBkYXRlZCA9IG1fc2Nyb2xsYWJsZUFyZWEucmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpOworICAgICAgICBt
X3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7
CisgICAgICAgIGlmICh1cGRhdGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEZs
b2F0U2l6ZSBkZWx0YSA9IHBvc2l0aW9uIC0gbV9jdXJyZW50UG9zaXRpb247CisgICAgICAgIG1f
Y3VycmVudFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7CisgICAgICAgIG5vdGlmeVBvc2l0
aW9uQ2hhbmdlZChkZWx0YSk7CisgICAgfSkpCiB7CiB9CiAKQEAgLTc1LDYgKzg4LDE0IEBAIGJv
b2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHksCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCkKK3sKKyAg
ICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3Vy
cmVudFBvc2l0aW9uKTsKKyAgICBhdXRvIG5ld1Bvc2l0aW9uID0gU2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQsIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJsZUFy
ZWEuc2Nyb2xsT3JpZ2luKCkpKTsKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+
c2Nyb2xsKG5ld1Bvc2l0aW9uKTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbik7Cit9
CisKIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQogewogICAgIEZsb2F0UG9p
bnQgbmV3UG9zaXRvbiA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQo
b2Zmc2V0LCB0b0Zsb2F0U2l6ZShtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CkBA
IC0yNDUsNCArMjY2LDMzIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnJlbW92ZVdoZWVsRXZlbnRU
ZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdoZWVsRXZlbnRUCiB9CiAjZW5kaWYKIAor
dm9pZCBTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucygpCit7CisjaWYgIVVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Nj
cm9sbC0+c3RvcCgpOworI2VuZGlmCit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VT
Y3JvbGxBbmltYXRpb25zKCkKK3sKKyNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJ
TUVSKQorICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT5zZXJ2aWNlQW5pbWF0aW9u
KCk7CisjZW5kaWYKK30KKwordm9pZCBTY3JvbGxBbmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUo
KQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVu
Z3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJh
cihTY3JvbGxiYXIqKQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRh
dGVWaXNpYmxlTGVuZ3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jp
em9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopCit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0
aWNTY3JvbGwtPnVwZGF0ZVZpc2libGVMZW5ndGhzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IGE1YzY5
YzUzYjcuLjliN2MwOWI2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0
UG9pbnQ7CiBjbGFzcyBQbGF0Zm9ybVRvdWNoRXZlbnQ7CitjbGFzcyBTY3JvbGxBbmltYXRpb247
CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKIGNsYXNzIFNjcm9sbGJhcjsKIGNsYXNzIFdoZWVsRXZl
bnRUZXN0TW9uaXRvcjsKQEAgLTY4LDYgKzY5LDcgQEAgcHVibGljOgogICAgIC8vIFRoZSBiYXNl
IGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0ZWx5LCBuZXZlciBh
bmltYXRlcy4KICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBT
Y3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAKKyAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxD
bGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAogICAgIFNjcm9sbGFibGVBcmVh
JiBzY3JvbGxhYmxlQXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWE7IH0KQEAg
LTg1LDggKzg3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmKTsKICAgICBjb25zdCBGbG9hdFBvaW50JiBjdXJyZW50UG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2N1cnJlbnRQb3NpdGlvbjsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNh
bmNlbEFuaW1hdGlvbnMoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1h
dGlvbnMoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsQW5pbWF0aW9ucygpOworICAgIHZp
cnR1YWwgdm9pZCBzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpOwogCiAgICAgdmlydHVhbCB2b2lk
IGNvbnRlbnRBcmVhV2lsbFBhaW50KCkgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNl
RW50ZXJlZENvbnRlbnRBcmVhKCkgeyB9CkBAIC05NywxNiArOTksMTYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBtb3VzZUlzRG93bkluU2Nyb2xsYmFyKFNjcm9sbGJhciosIGJvb2wpIGNv
bnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRMaXZlUmVzaXplKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGNvbnRlbnRzUmVzaXplZCgpIGNvbnN0IHsgfQotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJl
c2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50QXJlYURpZFNob3coKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgY29udGVudEFyZWFEaWRIaWRlKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
bG9ja092ZXJsYXlTY3JvbGxiYXJTdGF0ZVRvSGlkZGVuKGJvb2wpIHsgfQogICAgIHZpcnR1YWwg
Ym9vbCBzY3JvbGxiYXJzQ2FuQmVBY3RpdmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAg
IHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikg
eyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFy
Kik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9s
bGJhciopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJQYXJ0TGF5
ZXJzKFNjcm9sbGJhciopIHsgfQpAQCAtMTUxLDYgKzE1Myw4IEBAIHByb3RlY3RlZDoKICAgICBT
Y3JvbGxDb250cm9sbGVyIG1fc2Nyb2xsQ29udHJvbGxlcjsKICNlbmRpZgogICAgIEZsb2F0UG9p
bnQgbV9jdXJyZW50UG9zaXRpb247CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQW5pbWF0
aW9uPiBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDg5MTE0OTEw
M2QuLmY2ZDM1NjY1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAt
NTQsNiArNTQsMjEgQEAgZW51bSBjbGFzcyBTY3JvbGxQb3NpdGlvbkNsYW1wIDogdWludDhfdCB7
CiAgICAgVG9Db250ZW50RWRnZXMsCiB9OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKK2VudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JUeXBlIDog
dWludDhfdCB7CisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgsCit9OworI2VuZGlmCisKK2VudW0g
Y2xhc3MgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgOiB1aW50OF90IHsKKyAgICBOb3RJbkFuaW1hdGlv
biwKKyAgICBJbk5vbk5hdGl2ZUFuaW1hdGlvbiwKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEluTmF0aXZlQW5pbWF0aW9uLAorI2VuZGlm
Cit9OworCiBpbmxpbmUgU2Nyb2xsRGlyZWN0aW9uIGxvZ2ljYWxUb1BoeXNpY2FsKFNjcm9sbExv
Z2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGlzVmVydGljYWwsIGJvb2wgaXNGbGlwcGVk
KQogewogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCmluZGV4IGIxMjZhOWMyYjcuLjFkMmMzMmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00NjEsMTAgKzQ2MSwxNCBAQCB2b2lkIFNjcm9sbFZp
ZXc6OmNvbXBsZXRlVXBkYXRlc0FmdGVyU2Nyb2xsVG8oY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpCiAgICAgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpOwogfQogCi12
b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBz
Y3JvbGxQb3NpdGlvbikKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sLyogYW5pbWF0ZWQqLykKIHsKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNj
cm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlm
IChwcm9oaWJpdHNTY3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00NzUsMTMgKzQ3
OSwxNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKIAogICAgIFNjcm9sbFBvc2l0aW9uIG5ld1Njcm9sbFBv
c2l0aW9uID0gIWRlbGVnYXRlc1Njcm9sbGluZygpID8gYWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRo
aW5SYW5nZShzY3JvbGxQb3NpdGlvbikgOiBzY3JvbGxQb3NpdGlvbjsKIAotICAgIGlmICgoIWRl
bGVnYXRlc1Njcm9sbGluZygpIHx8IGN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6
VXNlcikgJiYgbmV3U2Nyb2xsUG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKKyAg
ICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNj
cm9sbFR5cGU6OlVzZXIpICYmIGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9s
bEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiAmJiBuZXdTY3JvbGxQb3NpdGlvbiA9PSB0
aGlzLT5zY3JvbGxQb3NpdGlvbigpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoY3VycmVu
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0
aXZlQW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMo
KTsKKwogICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUobmV3U2Nyb2xsUG9zaXRp
b24pKQogICAgICAgICByZXR1cm47CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBv
c2l0aW9uKTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1
czo6Tm90SW5BbmltYXRpb24pOwogfQogCiBib29sIFNjcm9sbFZpZXc6OnNjcm9sbChTY3JvbGxE
aXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTUz
OCw3ICs1NDYsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Ny
b2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICAKICAgICBpZiAoIW1hbmFnZXNTY3Jv
bGxiYXJzKCkpIHsKICAgICAgICAgaWYgKHNjcm9sbE9yaWdpbkNoYW5nZWQoKSkgewotICAgICAg
ICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3Jv
bGxPZmZzZXRGcm9tUG9zaXRpb24oZGVzaXJlZFBvc2l0aW9uKSk7CisgICAgICAgICAgICBpZiAo
IXJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShkZXNpcmVkUG9zaXRpb24pKQorICAgICAgICAg
ICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oc2Ny
b2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOwogICAgICAgICAgICAgcmVz
ZXRTY3JvbGxPcmlnaW5DaGFuZ2VkKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDQzMDE2MGQ2YWUuLjUzOTgxMDgzOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTI2MCw3ICsyNjAsNyBAQCBw
dWJsaWM6CiAgICAgU2Nyb2xsUG9zaXRpb24gY2FjaGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX2NhY2hlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBGdW5jdGlvbnMgZm9y
IHNjcm9sbGluZyB0aGUgdmlldy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24o
Y29uc3QgU2Nyb2xsUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRp
b24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2UpOwogICAgIHZv
aWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYgcykgeyByZXR1cm4gc2V0U2Nyb2xsUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb24oKSArIHMpOyB9CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNjcm9sbHMg
YnkgbGluZXMsIHBhZ2VzIG9yIHBpeGVscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcAppbmRleCA5NmQwZjMwMGIzLi4xNTA3MDRjMmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC03MSw2ICs3MSw5IEBAIFNjcm9s
bGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSgpCiAgICAgLCBtX3Njcm9sbE9yaWdpbkNoYW5nZWQo
ZmFsc2UpCiAgICAgLCBtX2N1cnJlbnRTY3JvbGxUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihT
Y3JvbGxUeXBlOjpVc2VyKSkKICAgICAsIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUo
ZmFsc2UpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykKKyAgICAsIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KSkKKyNlbmRpZgogewogfQogCkBAIC0xNDIs
NiArMTQ1LDEyIEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhCiAgICAgcmV0dXJuIHNjcm9sbEFu
aW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGll
cik7CiB9CiAKK3ZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQoreworICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlz
IDw8ICIgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKKyAgICBzY3Jv
bGxBbmltYXRvcigpLnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7Cit9CisKIHZvaWQgU2Nyb2xsYWJs
ZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBv
ZmZzZXQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Nyb2xs
VG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKQEAgLTIyMSwxNiArMjMwLDE1
IEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1U
b3VjaEV2ZW50JiB0b3VjaEV2ZW50KQogLy8gTk9URTogT25seSBjYWxsZWQgZnJvbSBJbnRlcm5h
bHMgZm9yIHRlc3RpbmcuCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9t
SW50ZXJuYWxzKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogeworICAgIGlmIChyZXF1ZXN0
U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKQor
ICAgICAgICByZXR1cm47CisKICAgICBzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9uKG9mZnNl
dCk7CiB9CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRp
b24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQpCiB7Ci0gICAgU2Nyb2xsUG9zaXRpb24gcG9z
aXRpb24gPSBzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KTsKLSAgICBpZiAocmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9uKTsKKyAgICBzY3JvbGxQb3NpdGlvbkNoYW5n
ZWQoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpOwogfQogCiB2b2lkIFNjcm9sbGFi
bGVBcmVhOjp3aWxsU3RhcnRMaXZlUmVzaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCmluZGV4IGQ3NDM4YzE1Y2QuLjU1NjcyZjgxZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNjIsNyArNjIsMTEgQEAgaW5saW5lIGlu
dCBvZmZzZXRGb3JPcmllbnRhdGlvbihTY3JvbGxPZmZzZXQgb2Zmc2V0LCBTY3JvbGxiYXJPcmll
bnRhdGlvbiBvcmllbnQKIAogY2xhc3MgU2Nyb2xsYWJsZUFyZWEgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U2Nyb2xsYWJsZUFyZWE+IHsKIHB1YmxpYzoKKyAgICBTY3JvbGxCZWhhdmlvclN0YXR1
cyBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSB7IHJldHVybiBtX2N1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1czsgfQorICAgIHZvaWQgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xs
QmVoYXZpb3JTdGF0dXMgc3RhdHVzKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzID0g
c3RhdHVzOyB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rp
b24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2lu
dCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwg
ZmxvYXQgb2Zmc2V0KTsKIApAQCAtMjQyLDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xs
VHlwZSBjdXJyZW50U2Nyb2xsVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9s
bFR5cGU+KG1fY3VycmVudFNjcm9sbFR5cGUpOyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xs
VHlwZShTY3JvbGxUeXBlIHNjcm9sbFR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihzY3JvbGxUeXBlKTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3Vy
cmVudFNjcm9sbEJlaGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9s
bEJlaGF2aW9yVHlwZT4obV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQg
c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVo
YXZpb3JUeXBlKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihzY3JvbGxCZWhhdmlvclR5cGUpOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xs
U2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENs
ZWFyTGF0Y2hlZFN0YXRlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRT
dGF0ZShib29sIHNob3VsZENsZWFyKSB7IG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUg
PSBzaG91bGRDbGVhcjsgfQogCkBAIC0zNzgsNiArMzg3LDggQEAgcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX2N1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4IHsgMCB9OwogI2VuZGlmCiAKKyAg
ICBTY3JvbGxCZWhhdmlvclN0YXR1cyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyB7IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiB9OworCiAgICAgLy8gVGhlcmUgYXJl
IDggcG9zc2libGUgY29tYmluYXRpb25zIG9mIHdyaXRpbmcgbW9kZSBhbmQgZGlyZWN0aW9uLiBT
Y3JvbGwgb3JpZ2luIHdpbGwgYmUgbm9uLXplcm8gaW4gdGhlIHggb3IgeSBheGlzCiAgICAgLy8g
aWYgdGhlcmUgaXMgYW55IHJldmVyc2VkIGRpcmVjdGlvbiBvciB3cml0aW5nLW1vZGUuIFRoZSBj
b21iaW5hdGlvbnMgYXJlOgogICAgIC8vIHdyaXRpbmctbW9kZSAvIGRpcmVjdGlvbiAgICAgc2Ny
b2xsT3JpZ2luLngoKSBzZXQgICAgc2Nyb2xsT3JpZ2luLnkoKSBzZXQKQEAgLTQwMyw2ICs0MTQs
OSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZCA6IDE7CiAg
ICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9sbFR5cGUKICAgICB1
bnNpZ25lZCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHVuc2lnbmVkIG1f
Y3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMv
U2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVy
aWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcAppbmRleCAyMDhhZjdiODQ3Li5hZDMzMmMzMjgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1h
dG9yR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3Jv
bGxBbmltYXRvckdlbmVyaWMuY3BwCkBAIC0xNjIsNiArMTYyLDggQEAgdm9pZCBTY3JvbGxBbmlt
YXRvckdlbmVyaWM6OndpbGxFbmRMaXZlUmVzaXplKCkKIAogdm9pZCBTY3JvbGxBbmltYXRvckdl
bmVyaWM6OnVwZGF0ZVBvc2l0aW9uKEZsb2F0UG9pbnQmJiBwb3NpdGlvbikKIHsKKyAgICBpZiAo
bV9zY3JvbGxhYmxlQXJlYS5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocm91bmRlZEludFBv
aW50KHBvc2l0aW9uKSkpCisgICAgICAgIHJldHVybjsKICAgICBGbG9hdFNpemUgZGVsdGEgPSBw
b3NpdGlvbiAtIG1fY3VycmVudFBvc2l0aW9uOwogICAgIG1fY3VycmVudFBvc2l0aW9uID0gV1RG
TW92ZShwb3NpdGlvbik7CiAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGRlbHRhKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBm
NTkxNzY3MmVlLi42Mzc1M2FkMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC0xMTU1LDYgKzExNTUsNyBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpub3RpZnlDb250ZW50QXJlYVNjcm9sbGVkKGNvbnN0IEZsb2F0U2l6ZSYg
ZGVsdGEpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNhbmNlbEFuaW1hdGlvbnMoKQogewor
ICAgIFNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKCk7CiAgICAgbV9oYXZlU2Nyb2xs
ZWRTaW5jZVBhZ2VMb2FkID0gZmFsc2U7CiAKICAgICBpZiAoc2Nyb2xsYmFyUGFpbnRUaW1lcklz
QWN0aXZlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGY4ZDNh
NDkyNWEuLjZkMWY4NTdjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CkBAIC01ODEsMjAgKzU4MSwyOCBAQCBzdGF0aWMgdm9pZCBzZXR1cFdoZWVsRXZlbnRNb25pdG9y
KFJlbmRlckxheWVyJiBsYXllcikKICAgICBsYXllci5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVs
RXZlbnRUZXN0TW9uaXRvcihwYWdlLndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAotdm9p
ZCBSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xs
TGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBT
Y3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8
ICFsYXllcigpKQogICAgICAgICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigq
bGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Nyb2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Nyb2xs
VHlwZSwgY2xhbXBpbmcpOworICAgIGxheWVyKCktPnNjcm9sbFRvWFBvc2l0aW9uKG5ld0xlZnQs
IHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyQm94Ojpz
ZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwg
U2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFt
cGluZykKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAgICAg
ICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAgbGF5
ZXIoKS0+c2Nyb2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7Cisg
ICAgbGF5ZXIoKS0+c2Nyb2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBhbmltYXRl
ZCwgY2xhbXBpbmcpOworfQorCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsUG9zaXRpb24oY29u
c3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wg
YW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGlmICghaGFzT3ZlcmZs
b3dDbGlwKCkgfHwgIWxheWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBzZXR1cFdoZWVsRXZl
bnRNb25pdG9yKCpsYXllcigpKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1Bvc2l0aW9uKHBvc2l0
aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCiB2b2lkIFJlbmRlckJv
eDo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2lu
dCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKaW5kZXggNDk1NDgxNDA1NC4uMjIxOTI4MDU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaApAQCAtMjQ3LDggKzI0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBz
Y3JvbGxUb3AoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFt
cGluZzo6Q2xhbXBlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9s
bFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZp
cnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9
IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9
IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2
b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwg
Ym9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpD
bGFtcGVkKTsKIAogICAgIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9tYXJnaW5Cb3gudG9wKCk7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94LmJvdHRvbSgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBkODRhZDFhMWRhLi42MTNhNmFm
YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI1NzUs
MTYgKzI1NzUsMjQgQEAgdm9pZCBSZW5kZXJMYXllcjo6YXBwbHlQb3N0TGF5b3V0U2Nyb2xsUG9z
aXRpb25JZk5lZWRlZCgpCiAgICAgbV9wb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb24gPSBXVEY6Om51
bGxvcHQ7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5k
ZXJMYXllcjo6c2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwg
Ym9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgU2Nyb2xsUG9z
aXRpb24gcG9zaXRpb24oeCwgbV9zY3JvbGxQb3NpdGlvbi55KCkpOwotICAgIHNjcm9sbFRvT2Zm
c2V0KHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1w
aW5nKTsKKyAgICBzY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRl
ZCwgY2xhbXBpbmcpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihp
bnQgeSwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3Zv
aWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlIHNjcm9s
bFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIFNj
cm9sbFBvc2l0aW9uIHBvc2l0aW9uKG1fc2Nyb2xsUG9zaXRpb24ueCgpLCB5KTsKLSAgICBzY3Jv
bGxUb09mZnNldChzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBl
LCBjbGFtcGluZyk7CisgICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwg
YW5pbWF0ZWQsIGNsYW1waW5nKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3Np
dGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlw
ZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgaWYgKGFu
aW1hdGVkKQorICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0
RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIGVsc2UK
KyAgICAgICAgc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9u
KSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOwogfQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6
OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25z
dApAQCAtMjU5NCwyMiArMjYwMiw2OCBAQCBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1w
U2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjbwogCiB2b2lk
IFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9m
ZnNldCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAg
IHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50
KTsKKyNlbmRpZgorCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xs
QW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CisKICAgICBTY3JvbGxPZmZzZXQgY2xhbXBl
ZFNjcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xh
bXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9sbE9mZnNldDsKLSAgICBpZiAoY2xh
bXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICBpZiAoY2xhbXBl
ZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkgeworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgICAgIC8vIElmIFVJU2Ny
b2xsVmlldyBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHNjcm9sbCBvZmZz
ZXQgb2YgdGhlIFdlYiBwcm9jZXNzIG1pZ2h0IGJlIG92ZXJyaWRkZW4uCisgICAgICAgIC8vIFNv
IHdlIG5lZWQgdG8gY2FsbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUgaGVyZSBhbmQgbGV0
IGl0IGJlIGNoZWNrZWQgb24gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIC8vIElmIHRoZSBzY3Jv
bGwgb2Zmc2V0IG9uIHRoZSBVSSBwcm9jZXNzIGlzIGRpZmZlcmVudCwgdGhlIGNvcnJlY3Qgc2Ny
b2xsIG9mZnNldCBuZWVkcyB0byBzeW5jIGJhY2sgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAg
ICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0
dXM6OkluTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICAgICAgcmVxdWVzdFNjcm9sbFBvc2l0aW9u
VXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7Cisj
ZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxU
eXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3Jv
bGxUeXBlKTsKIAogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogI2lmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpCi0gICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGlu
YXRvciA9IHBhZ2UoKS5zY3JvbGxpbmdDb29yZGluYXRvcigpKQotICAgICAgICBoYW5kbGVkID0g
c2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywg
c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpKTsKKyAgICBoYW5k
bGVkID0gcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNl
dChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CiAjZW5kaWYKIAotICAgIGlmICghaGFuZGxlZCkKKyAg
ICBpZiAoIWhhbmRsZWQpIHsKICAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9u
KGNsYW1wZWRTY3JvbGxPZmZzZXQsIGNsYW1waW5nKTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAgICB9CisK
KyAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworfQorCitib29s
IFJlbmRlckxheWVyOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9z
aXRpb24mIHBvc2l0aW9uKQoreworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgaWYg
KFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5zY3Jv
bGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3It
PnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgcG9zaXRpb24pOworI2VuZGlmCisg
ICAgcmV0dXJuIGZhbHNlOworfQogCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9s
bFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNj
cm9sbFR5cGUpOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9y
VHlwZTo6U21vb3RoKTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9s
bFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xs
VHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlm
CisKKyAgICBTY3JvbGxPZmZzZXQgbmV3U2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNjcm9sbE9mZnNldChvZmZzZXQpIDogb2Zmc2V0Owor
ICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0
YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pCisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2Fu
Y2VsQW5pbWF0aW9ucygpOworICAgIGlmIChuZXdTY3JvbGxPZmZzZXQgIT0gdGhpcy0+c2Nyb2xs
T2Zmc2V0KCkpCisgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhBbmlt
YXRpb24obmV3U2Nyb2xsT2Zmc2V0KTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91
c1Njcm9sbFR5cGUpOwogfQogCkBAIC0yNjQ1LDcgKzI2OTksNyBAQCB2b2lkIFJlbmRlckxheWVy
OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCiAjZW5kaWYKICAgICB9
CiAgICAgCi0gICAgaWYgKG1fc2Nyb2xsUG9zaXRpb24gPT0gbmV3UG9zaXRpb24pIHsKKyAgICBp
ZiAobV9zY3JvbGxQb3NpdGlvbiA9PSBuZXdQb3NpdGlvbiAmJiBjdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pIHsKICAg
ICAgICAgLy8gRklYTUU6IE5vdGhpbmcgZ3VhcmFudGVlcyB3ZSBnZXQgYSBzY3JvbGxUbygpIHdp
dGggYW4gdW5jaGFuZ2VkIHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgYSB1c2VyIGdlc3R1cmUuCiAg
ICAgICAgIC8vIFRoZSBTY3JvbGxpbmdDb29yZGluYXRvciBwcm9iYWJseSBuZWVkcyB0byBtZXNz
YWdlIHRoZSBtYWluIHRocmVhZCB3aGVuIGEgZ2VzdHVyZSBlbmRzLgogICAgICAgICBpZiAocmVx
dWlyZXNTY3JvbGxQb3NpdGlvblJlY29uY2lsaWF0aW9uKCkpIHsKQEAgLTI3OTAsMTAgKzI4NDQs
MTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRS
ZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgTGF5b3V0UmVjdCByZXZlYWxS
ZWN0ID0gZ2V0UmVjdFRvRXhwb3NlKGxheWVyQm91bmRzLCBsb2NhbEV4cG9zZVJlY3QsIGluc2lk
ZUZpeGVkLCBvcHRpb25zLmFsaWduWCwgb3B0aW9ucy5hbGlnblkpOwogCiAgICAgICAgIFNjcm9s
bE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zm
c2V0KCkgKyB0b0ludFNpemUocm91bmRlZEludFJlY3QocmV2ZWFsUmVjdCkubG9jYXRpb24oKSkp
OwotICAgICAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCAhPSBzY3JvbGxPZmZzZXQoKSkgewor
ICAgICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZp
b3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uIHx8IGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xs
T2Zmc2V0KCkpIHsKICAgICAgICAgICAgIFNjcm9sbE9mZnNldCBvbGRTY3JvbGxPZmZzZXQgPSBz
Y3JvbGxPZmZzZXQoKTsKLSAgICAgICAgICAgIHNjcm9sbFRvT2Zmc2V0KGNsYW1wZWRTY3JvbGxP
ZmZzZXQpOwotICAgICAgICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXREaWZmZXJlbmNlID0gc2Ny
b2xsT2Zmc2V0KCkgLSBvbGRTY3JvbGxPZmZzZXQ7CisgICAgICAgICAgICBib29sIGFuaW1hdGVk
ID0gKGJveC0+ZWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9y
LCAqYm94LT5lbGVtZW50KCkpKTsKKyAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb24oc2Nyb2xs
UG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBTY3JvbGxUeXBlOjpQcm9n
cmFtbWF0aWMsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0RGlm
ZmVyZW5jZSA9IGNsYW1wZWRTY3JvbGxPZmZzZXQgLSBvbGRTY3JvbGxPZmZzZXQ7CiAgICAgICAg
ICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZSgtc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSk7CiAgICAg
ICAgICAgICBuZXdSZWN0ID0gTGF5b3V0UmVjdChib3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxv
YXRRdWFkKEZsb2F0UmVjdChsb2NhbEV4cG9zZVJlY3QpKSwgVXNlVHJhbnNmb3JtcykuYm91bmRp
bmdCb3goKSk7CiAgICAgICAgIH0KQEAgLTI4MTMsMTAgKzI4NjgsMTMgQEAgdm9pZCBSZW5kZXJM
YXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3Qs
IGJvb2wgaW5zaWQKICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0gZnJhbWVW
aWV3LnZpc2libGVDb250ZW50UmVjdChMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsKICAg
ICAgICAgICAgICAgICBMYXlvdXRSZWN0IGV4cG9zZVJlY3QgPSBnZXRSZWN0VG9FeHBvc2Uodmll
d1JlY3QsIGFic29sdXRlUmVjdCwgaW5zaWRlRml4ZWQsIG9wdGlvbnMuYWxpZ25YLCBvcHRpb25z
LmFsaWduWSk7CiAKLSAgICAgICAgICAgICAgICBJbnRQb2ludCBzY3JvbGxPZmZzZXQocm91bmRl
ZEludFBvaW50KGV4cG9zZVJlY3QubG9jYXRpb24oKSkpOworICAgICAgICAgICAgICAgIEludFBv
aW50IHNjcm9sbFBvc2l0aW9uKHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkp
KTsKICAgICAgICAgICAgICAgICAvLyBBZGp1c3Qgb2Zmc2V0cyBpZiB0aGV5J3JlIG91dHNpZGUg
b2YgdGhlIGFsbG93YWJsZSByYW5nZS4KLSAgICAgICAgICAgICAgICBzY3JvbGxPZmZzZXQgPSBz
Y3JvbGxPZmZzZXQuY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1l
Vmlldy5jb250ZW50c1NpemUoKSkpOwotICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3Jv
bGxQb3NpdGlvbihzY3JvbGxPZmZzZXQpOworICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9u
ID0gc2Nyb2xsUG9zaXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50
KGZyYW1lVmlldy5jb250ZW50c1NpemUoKSkpOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBT
aG91bGQgd2UgdXNlIGNvbnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAg
ICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDUwNTkKKyAgICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gb3duZXJFbGVtZW50LT5j
b250ZW50RG9jdW1lbnQoKSAmJiBvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1
bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgKm93
bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAg
ICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGFu
aW1hdGVkKTsKIAogICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NP
cmlnaW5TY3JvbGxpbmcgPT0gU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8
IGZyYW1lVmlldy5zYWZlVG9Qcm9wYWdhdGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIHBhcmVudExheWVyID0gb3duZXJFbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3Np
bmdMYXllcigpOwpAQCAtMjg1NSw3ICsyOTEzLDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9s
bFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lk
CiAgICAgICAgICAgICAvLyBBdm9pZCBzY3JvbGxpbmcgdG8gdGhlIHJvdW5kZWQgdmFsdWUgb2Yg
cmV2ZWFsUmVjdC5sb2NhdGlvbigpIGlmIHdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdG8gc2Nyb2xs
CiAgICAgICAgICAgICBpZiAocmV2ZWFsUmVjdCAhPSB2aWV3UmVjdCkgewogICAgICAgICAgICAg
ICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQo
cmV2ZWFsUmVjdC5sb2NhdGlvbigpKS5jb25zdHJhaW5lZEJldHdlZW4obWluU2Nyb2xsUG9zaXRp
b24sIG1heFNjcm9sbFBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Ny
b2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAvLyBG
SVhNRTogU2hvdWxkIHdlIHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAg
ICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDUwNTkKKyAgICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gcmVuZGVyZXIoKS5kb2N1
bWVudCgpLmRvY3VtZW50RWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJl
aGF2aW9yLCAqcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAg
ICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0
aW9uLCBhbmltYXRlZCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMgaXMg
dGhlIG91dGVybW9zdCB2aWV3IG9mIGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0aGlz
IHZpZXcgd2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNmNhNDIy
YjdiMi4uOGM5Nzc4Mzc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgK
QEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKKyNpbmNsdWRlICJTY3JvbGxCZWhhdmlv
ci5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC0xMzQsNiArMTM1LDcgQEAgc3RydWN0IFNjcm9sbFJl
Y3RUb1Zpc2libGVPcHRpb25zIHsKICAgICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCB7
IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCB9OwogICAgIGNvbnN0IFNjcm9s
bEFsaWdubWVudCYgYWxpZ25ZIHsgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVk
IH07CiAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyBzaG91bGRBbGxvd0Nyb3Nz
T3JpZ2luU2Nyb2xsaW5nIHsgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfTsK
KyAgICBTY3JvbGxCZWhhdmlvciBiZWhhdmlvciB7IFNjcm9sbEJlaGF2aW9yOjpBdXRvIH07CiB9
OwogCiBjbGFzcyBSZW5kZXJMYXllciBmaW5hbCA6IHB1YmxpYyBTY3JvbGxhYmxlQXJlYSB7CkBA
IC00MzksOSArNDQxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbEJ5UmVjdXJzaXZlbHko
Y29uc3QgSW50U2l6ZSYgZGVsdGEsIFNjcm9sbGFibGVBcmVhKiogc2Nyb2xsZWRBcmVhID0gbnVs
bHB0cik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IFNj
cm9sbE9mZnNldCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYsIFNj
cm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCi0gICAgdm9pZCBzY3JvbGxUb1hQb3NpdGlvbihpbnQg
eCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7
Ci0gICAgdm9pZCBzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgYm9vbCByZXF1ZXN0U2Nyb2xs
UG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIHZv
aWQgc2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNj
cm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xs
VG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1w
aW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9Qb3NpdGlv
bihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCiAgICAgLy8gVGhlc2UgYXJl
IG9ubHkgdXNlZCBieSBtYXJxdWVlLgogICAgIHZvaWQgc2Nyb2xsVG9YT2Zmc2V0KGludCB4KSB7
IHNjcm9sbFRvT2Zmc2V0KFNjcm9sbE9mZnNldCh4LCBzY3JvbGxPZmZzZXQoKS55KCkpLCBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggMjVjZDJkMzNhNy4u
YzMzZTkwNjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cApAQCAtNzQzLDcgKzc0Myw3IEBAIGludCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxMZWZ0KCkgY29u
c3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0
KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlckxpc3RCb3g6OnNl
dFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKIH0K
IApAQCAtNzYwLDcgKzc2MCw3IEBAIHN0YXRpYyB2b2lkIHNldHVwV2hlZWxFdmVudFRlc3RNb25p
dG9yKFJlbmRlckxpc3RCb3gmIHJlbmRlcmVyKQogICAgIHJlbmRlcmVyLnNjcm9sbEFuaW1hdG9y
KCkuc2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKHJlbmRlcmVyLnBhZ2UoKS53aGVlbEV2ZW50VGVz
dE1vbml0b3IoKSk7CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBu
ZXdUb3AsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW5kZXJMaXN0Qm94Ojpz
ZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcp
CiB7CiAgICAgLy8gRGV0ZXJtaW5lIGFuIGluZGV4IGFuZCBzY3JvbGwgdG8gaXQuICAgIAogICAg
IGludCBpbmRleCA9IG5ld1RvcCAvIGl0ZW1IZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDY1ZDkyMjZiM2EuLjI1YzkwNjUxZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTA2LDggKzEwNiw4IEBAIHBy
aXZhdGU6CiAgICAgaW50IHNjcm9sbFRvcCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3Jv
bGxXaWR0aCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxD
bGFtcGluZykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBl
LCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwg
U2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0
U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRl
OwogCiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RS
ZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0
IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggOWVlODg4ODY3MS4uNGRmN2QzMThkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5jcHAKQEAgLTM3NiwxMyArMzc2LDEzIEBAIGludCBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OnNjcm9sbFRvcCgpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2Ny
b2xsVG9wKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3Jv
bGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3Jv
bGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxlbWVu
dCgpKQogICAgICAgICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbExlZnQobmV3TGVmdCk7
CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3AoaW50
IG5ld1RvcCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJvb2ws
IFNjcm9sbENsYW1waW5nKQogewogICAgIGlmIChpbm5lclRleHRFbGVtZW50KCkpCiAgICAgICAg
IGlubmVyVGV4dEVsZW1lbnQoKS0+c2V0U2Nyb2xsVG9wKG5ld1RvcCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5k
ZXggM2Y1Nzg2ZGZlNC4uNjY2YWEzMTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTcsOCArNTcsOCBA
QCBwcml2YXRlOgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQg
c2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Ny
b2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChp
bnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVy
cmlkZTsKICAgICBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5
LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gbnVsbHB0ciwg
UmVuZGVyQm94KiBzdGFydEJveCA9IG51bGxwdHIsIGNvbnN0IEludFBvaW50JiB3aGVlbEV2ZW50
QWJzb2x1dGVQb2ludCA9IEludFBvaW50KCkpIGZpbmFsOwogICAgIGJvb2wgbG9naWNhbFNjcm9s
bChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlw
bGllciA9IDEsIEVsZW1lbnQqKiBzdG9wRWxlbWVudCA9IDApIGZpbmFsOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDVkY2IyMWM2NDYuLjAw
N2E0ZDEzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCkBAIC03MzYsNiArNzM2LDggQEAgcHVibGljOgogICAgIGJvb2wgdXNlVG91Y2hPdmVyZmxv
d1Njcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnVzZVRvdWNo
T3ZlcmZsb3dTY3JvbGxpbmc7IH0KICNlbmRpZgogCisgICAgYm9vbCB1c2VTbW9vdGhTY3JvbGxp
bmcoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT51c2VTbW9vdGhTY3Jv
bGxpbmc7IH0KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgVGV4dFNpemVBZGp1
c3RtZW50IHRleHRTaXplQWRqdXN0KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlSW5oZXJpdGVkRGF0
YS0+dGV4dFNpemVBZGp1c3Q7IH0KICAgICBBdXRvc2l6ZVN0YXR1cyBhdXRvc2l6ZVN0YXR1cygp
IGNvbnN0OwpAQCAtMTI2Nyw2ICsxMjY5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlVG91
Y2hPdmVyZmxvd1Njcm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRh
LCB1c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nLCB2KTsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHNl
dFVzZVNtb290aFNjcm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWRE
YXRhLCB1c2VTbW9vdGhTY3JvbGxpbmcsIHYpOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0la
SU5HKQogICAgIHZvaWQgc2V0VGV4dFNpemVBZGp1c3QoVGV4dFNpemVBZGp1c3RtZW50IGFkanVz
dG1lbnQpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB0ZXh0U2l6ZUFkanVzdCwgYWRq
dXN0bWVudCk7IH0KICAgICB2b2lkIHNldEF1dG9zaXplU3RhdHVzKEF1dG9zaXplU3RhdHVzKTsK
QEAgLTE3MDQsNiArMTcwOCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNl
VG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorICAg
IHN0YXRpYyBib29sIGluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxzZTsg
fQorCiAgICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIoKSB7
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7
IH0KICAgICBzdGF0aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgaW5pdGlhbEFwcGxlQ29sb3JG
aWx0ZXIoKSB7IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJl
dHVybiBvcHM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGZiMzIwODIzMzcuLmQy
YTUzMWZhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAg
LCBiYWNrZmFjZVZpc2liaWxpdHkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjpp
bml0aWFsQmFja2ZhY2VWaXNpYmlsaXR5KCkpKQogICAgICwgdXNlckRyYWcoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVXNlckRyYWcoKSkpCiAgICAgLCB0ZXh0T3Zl
cmZsb3coc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVGV4dE92ZXJm
bG93KCkpKQorICAgICwgdXNlU21vb3RoU2Nyb2xsaW5nKHN0YXRpY19jYXN0PHVuc2lnbmVkPihS
ZW5kZXJTdHlsZTo6aW5pdGlhbFVzZVNtb290aFNjcm9sbGluZygpKSkKICAgICAsIG1hcmdpbkJl
Zm9yZUNvbGxhcHNlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihNYXJnaW5Db2xsYXBzZTo6Q29sbGFw
c2UpKQogICAgICwgbWFyZ2luQWZ0ZXJDb2xsYXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTWFy
Z2luQ29sbGFwc2U6OkNvbGxhcHNlKSkKICAgICAsIGFwcGVhcmFuY2Uoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQXBwZWFyYW5jZSgpKSkKQEAgLTE4MCw2ICsxODEs
NyBAQCBpbmxpbmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KG8u
YmFja2ZhY2VWaXNpYmlsaXR5KQogICAgICwgdXNlckRyYWcoby51c2VyRHJhZykKICAgICAsIHRl
eHRPdmVyZmxvdyhvLnRleHRPdmVyZmxvdykKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhvLnVz
ZVNtb290aFNjcm9sbGluZykKICAgICAsIG1hcmdpbkJlZm9yZUNvbGxhcHNlKG8ubWFyZ2luQmVm
b3JlQ29sbGFwc2UpCiAgICAgLCBtYXJnaW5BZnRlckNvbGxhcHNlKG8ubWFyZ2luQWZ0ZXJDb2xs
YXBzZSkKICAgICAsIGFwcGVhcmFuY2Uoby5hcHBlYXJhbmNlKQpAQCAtMjc4LDYgKzI4MCw3IEBA
IGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIGJhY2tmYWNlVmlzaWJpbGl0eSA9
PSBvLmJhY2tmYWNlVmlzaWJpbGl0eQogICAgICAgICAmJiB1c2VyRHJhZyA9PSBvLnVzZXJEcmFn
CiAgICAgICAgICYmIHRleHRPdmVyZmxvdyA9PSBvLnRleHRPdmVyZmxvdworICAgICAgICAmJiB1
c2VTbW9vdGhTY3JvbGxpbmcgPT0gby51c2VTbW9vdGhTY3JvbGxpbmcKICAgICAgICAgJiYgbWFy
Z2luQmVmb3JlQ29sbGFwc2UgPT0gby5tYXJnaW5CZWZvcmVDb2xsYXBzZQogICAgICAgICAmJiBt
YXJnaW5BZnRlckNvbGxhcHNlID09IG8ubWFyZ2luQWZ0ZXJDb2xsYXBzZQogICAgICAgICAmJiBh
cHBlYXJhbmNlID09IG8uYXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggMTljNTkx
YjJkMS4uMTZhMjg1MTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xODEsNiArMTgxLDcg
QEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgdXNlckRyYWcgOiAyOyAvLyBVc2VyRHJhZwogICAg
IHVuc2lnbmVkIHRleHRPdmVyZmxvdyA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IGxpbmVzIHRoYXQg
c3BpbGwgb3V0IHNob3VsZCBiZSB0cnVuY2F0ZWQgd2l0aCAiLi4uIgorICAgIHVuc2lnbmVkIHVz
ZVNtb290aFNjcm9sbGluZyA6IDE7IC8vIFNjcm9sbEJlaGF2aW9yCiAgICAgdW5zaWduZWQgbWFy
Z2luQmVmb3JlQ29sbGFwc2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIG1h
cmdpbkFmdGVyQ29sbGFwc2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIGFw
cGVhcmFuY2UgOiA2OyAvLyBFQXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUJ1aWxkZXJDb252ZXJ0ZXIuaAppbmRleCA3ZjNmMGNiYzRlLi5lMzgyMDRmNjgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTI5LDYgKzEy
OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBjb252ZXJ0T3ZlcmZsb3dTY3JvbGxpbmco
QnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKICNlbmRpZgogICAgIHN0YXRpYyBGb250
RmVhdHVyZVNldHRpbmdzIGNvbnZlcnRGb250RmVhdHVyZVNldHRpbmdzKEJ1aWxkZXJTdGF0ZSYs
IGNvbnN0IENTU1ZhbHVlJik7CisgICAgc3RhdGljIGJvb2wgY29udmVydFNtb290aFNjcm9sbGlu
ZyhCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBGb250U2VsZWN0
aW9uVmFsdWUgY29udmVydEZvbnRXZWlnaHRGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKICAg
ICBzdGF0aWMgRm9udFNlbGVjdGlvblZhbHVlIGNvbnZlcnRGb250U3RyZXRjaEZyb21WYWx1ZShj
b25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBPcHRpb25hbDxGb250U2VsZWN0aW9uVmFsdWU+
IGNvbnZlcnRGb250U3R5bGVGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKQEAgLTE0MDMsNiAr
MTQwNCwxMSBAQCBpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0T3ZlcmZsb3dT
Y3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVgogfQogI2VuZGlmCiAKK2lubGluZSBi
b29sIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTbW9vdGhTY3JvbGxpbmcoQnVpbGRlclN0YXRl
JiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQoreworICAgIHJldHVybiBkb3duY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZT4odmFsdWUpLnZhbHVlSUQoKSA9PSBDU1NWYWx1ZVNtb290aDsKK30KKwogaW5s
aW5lIFNWR0xlbmd0aFZhbHVlIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTVkdMZW5ndGhWYWx1
ZShCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIFNW
R0xlbmd0aFZhbHVlOjpmcm9tQ1NTUHJpbWl0aXZlVmFsdWUoZG93bmNhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWU+KHZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTA3
Nzc5NjJkNS4uNzI0MDA4MTBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtMTc0Niw3ICsxNzQ2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjp1bmNvbnN0
cmFpbmVkU2Nyb2xsVG8oRWxlbWVudCYgZWxlbWVudCwgZG91YmxlIHgsIGQKICAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+dmlldygpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yIH07CiAKLSAgICBlbGVtZW50LnNjcm9sbFRvKHsgeCwgeSB9LCBT
Y3JvbGxDbGFtcGluZzo6VW5jbGFtcGVkKTsKKyAgICBlbGVtZW50LnNjcm9sbFRvKFNjcm9sbFRv
T3B0aW9ucyh4LCB5KSwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CiAgICAgcmV0dXJuIHsg
fTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBlODQ1MmU3ZjkxLi5iMjhhYTRkMGNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDcyIEBACisyMDE5LTEyLTExICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBv
biBuYXRpdmUgc2Nyb2xsIGludGVyZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBh
cyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4gT24gaW9zIHBsYXRmb3JtLCB1c2UgbmF0aXZlIGFu
aW1hdGVkIHNjcm9sbGluZworICAgICAgICBpbnRlcmZhY2VzIHRvIHBlcmZvcm1hbmNlIHNtb290
aCBzY3JvbGwgYW5kIHNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3Mu
CisKKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6
ZW5jb2RlKToKKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlPjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChwb2ludHNFcXVhbEluUm91bmRU
b0RldmljZVBpeGVsKTogSGVscCBmdW5jdGlvbiB0byBjaGVjayBpZiB0d28gZmxvYXQgcG9pbnRz
IGFyZSBub3QgZXF1YWwgYnV0IGluIHRoZSBzYW1lIGRldmljZSBwaXhlbC4KKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46YW5p
bWF0ZWQ6XSk6IEFkZCBhbmltYXRlZCBmbGFnIHRvIHN0YXJ0IGEgYW5pbWF0ZWQgc2Nyb2xsIGlm
IG5lZWRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdB
bmltYXRpb246XSk6IFNlbmQgc3JvbGwgZW5kIG1lc3NhZ2UgdG8gdGhlIFdlYiBwcm9jZXNzLgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9s
bE9yaWdpbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOiBQcm92
aWRlIGludGVyZmFjZSBmb3IgYW5pbWF0ZWQgc2Nyb2xsaW5nLgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5
ZXJUcmVlKTogQWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVE
aWRTY3JvbGwpOiBTeW5jIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxp
bmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogQWRkIGFuaW1hdGVkIHNjcm9sbGluZyBpbmZvIHRv
IG1fcmVxdWVzdGVkU2Nyb2xsSW5mby4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3NEaWRDaGFuZ2UpOiBTeW5jIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgdG8gdGhlIFdl
YiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2UpOiBEaXR0by4gSXQncyBzcGVjaWZpYyB0byB0aGUgcm9vdCBub2RlLgorICAgICAgICAq
IFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKTogQWRkIGFuaW1hdGVkIGluZm8uCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBE
aXR0by4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJl
ZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbToKKyAgICAgICAg
KC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmRTY3Jv
bGxpbmdBbmltYXRpb246XSk6IFNlbmQgc2NvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNz
LgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Ojpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4pOiBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIHRo
ZSBXZWIgcHJvY2VzcyBpc24ndCBlcXVhbCB0byB0aGUgVUkgcHJvY2VzcywKKyAgICAgICAgdGhl
IHNjcm9sbCBwb3NpdGlvbiBzaG91bGQgYmUgc3luY2hyb25pemVkLCBldmVuIHRoZXJlJ3Mgbm8g
c2Nyb2xsaW5nIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGlu
Z0xheWVycyk6IENhbGxpbmcgdGhlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcgaW50ZXJmYWNl
IGZvciBzbW9vdGggc2Nyb2xsLgorICAgICAgICBJZiB0aGVyZSdzIGEgc2Nyb2xsIGFuaW1hdGlv
biBwZXJmb3JtaW5nLCBpdCBzaG91bGQgYmUgc3RvcHBlZCBmaXJzdCwgdGhlbiBzdGFydCBhIG5l
dyBzY3JvbGxpbmcuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24pOiBTeW5jIHNj
cm9sbCBlbmQgaW5mbyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFNj
cm9sbCk6IFRvIGNhbGwgZGlmZmVyZW50IGZ1bmN0aW9ucyBmb3Igc21vb3RoIGFuZCBpbnN0YW50
IHNjcm9sbC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpyZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVl
c3RTY3JvbGxXaXRoQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRG
b3JOb2RlKToKKworMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKwor
ICAgICAgICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBlcmltZW50YWwgZmVh
dHVyZS4KKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAg
QmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorCiAyMDE5LTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBJc3N1ZSBsb2FkIHNvb25lciBvbiBzd2lw
ZSBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IGQ3YjFlMTkzNzIuLjg3N2QyOWEzMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
bi5jcHAKQEAgLTE1Miw2ICsxNTIsOSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAgU0NS
T0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJs
ZUFyZWFQYXJhbXMsIHNjcm9sbGFibGVBcmVhUGFyYW1ldGVycykKICAgICBTQ1JPTExJTkdfTk9E
RV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RF
KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisjZW5kaWYKIAogICAgIGlmIChub2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxh
eWVyKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0
Zm9ybUxheWVySUQ+KG5vZGUuc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSk7CkBAIC0yNjAsNyArMjYz
LDEyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsCiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3Np
dGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgICAgIGJvb2wgc2Nyb2xs
V2l0aEFuaW1hdGlvbiA9IGZhbHNlOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc2Nyb2xsV2l0aEFuaW1hdGlvbikpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbihzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xs
V2l0aEFuaW1hdGlvbik7CiAgICAgfQogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBA
IC02MDgsNiArNjE2LDkgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3Qg
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAgICBpZiAoIWNoYW5n
ZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICB0cy5k
dW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24iLCBub2RlLnJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3Jv
bGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0aWMiLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
UmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24td2l0
aC1hbmltYXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigp
KTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xs
Q29udGFpbmVyTGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
aW5kZXggMmU3YjRiNGZlNC4uZmViMmMzZjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCkBAIC0xMzI0LDYgKzEzMjQsMTMgQEAgQmxvY2tpbmdPZlNtYWxsUGx1
Z2luc0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlN0b3AgcGx1Z2lucyBz
bWFsbGVyIHRoYW4gYSBjZXJ0YWluIHRocmVzaG9sZCBmcm9tIGxvYWRpbmcuIgogICBjYXRlZ29y
eTogaW50ZXJuYWwKIAorQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDoKKyAgdHlwZTog
Ym9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTT00g
VmlldyBTbW9vdGggU2Nyb2xsaW5nIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFi
bGUgRE9NIEFQSSBhbmQgQ1NTIHByb3BlcnR5IGZvciAnc21vb3RoJyBzY3JvbGwgYmVoYXZpb3Ii
CisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogV2ViQW5pbWF0aW9uc0VuYWJsZWQ6CiAgIHR5
cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzMzU0YWM2ZWVjLi4xMDhlNGMwM2I3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAg
LTE2MTcsNiArMTYxNywxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcG9pbnRzRXF1YWxJbkRldmlj
ZVBpeGVscyhDR1BvaW50IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2aWNlUwogICAgICAgICAmJiBm
YWJzKGEueSAqIGRldmljZVNjYWxlRmFjdG9yIC0gYi55ICogZGV2aWNlU2NhbGVGYWN0b3IpIDwg
c3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKIH0KIAorc3RhdGljIGlubGlu
ZSBib29sIHBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoQ0dQb2ludCBhLCBDR1BvaW50
IGIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIHJldHVybiBDR1JvdW5kKGEueCAq
IGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueCAqIGRldmljZVNjYWxlRmFjdG9yKQor
ICAgICAgICAmJiBDR1JvdW5kKGEueSAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIu
eSAqIGRldmljZVNjYWxlRmFjdG9yKTsKK30KIHN0YXRpYyBDR1NpemUgcm91bmRTY3JvbGxWaWV3
Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIENHU2l6ZSBjb250
ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IHBhZ2UuZGV2aWNlU2Nh
bGVGYWN0b3IoKTsKQEAgLTIzNDEsOSArMjM0NiwxMCBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQ
b2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9m
ZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihXZWJDb3JlOjpG
bG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNvbnRlbnRPZmZzZXQpKTsK
IH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZs
b2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClz
Y3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJD
b3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50
UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7Ci0gICAgaWYgKF9j
b21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1v
ZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykKKyAg
ICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBwZWQuCisgICAgaWYgKCFh
bmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8fCBfZHluYW1pY1Zp
ZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5v
dFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBj
b250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Q
b3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2luKSk7CkBAIC0y
MzU3LDEzICsyMzYzLDIxIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFpbkNv
bnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAKICAgICBbX3Njcm9s
bFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CiAKLSAgICBpZiAoIUNH
UG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBb
X3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Njcm9sbFZpZXcgc2V0Q29u
dGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXNdOworICAgIC8v
IEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1dCBpbiB0aGUgc2FtZSBk
ZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4KKyAgICAvLyBXZSBuZWVk
IHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhlcmUuCisgICAgaWYgKCFw
b2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdD
b29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBfcGFnZS0+ZGV2aWNlU2Nh
bGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OmNvbnRl
bnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDphbmltYXRlZF07CiAgICAg
ZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBhbnl0aGluZywgdGhlcmUg
d291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRlIHNlbnQgdG8gdGhlIGNv
bnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtlZXAgdGhlIGludmFsaWQg
Y29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAgICAgICAvLyBUbyBzeW5j
aHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2NyZWVuLCB3ZSBzZW5kIHRo
ZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdlLT5yZXNlbmRMYXN0Vmlz
aWJsZUNvbnRlbnRSZWN0cygpOworICAgICAgICAvLyBJZiBfc2Nyb2xsVmlldyB3b24ndCBjaGFu
Z2UsIHdlIHN0aWxsIG5lZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nlc3MgdGhhdCB0aGUgYW5pbWF0
aW9uIHN0b3BwZWQuCisgICAgICAgIGlmIChhbmltYXRlZCkgeworICAgICAgICAgICAgV2ViS2l0
OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5z
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgICAgICAgICBpZiAoY29vcmRpbmF0b3Ip
CisgICAgICAgICAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CisgICAgICAgIH0KICAgICB9
CiB9CiAKQEAgLTI4NzksNiArMjg5MywxMCBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBj
b25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogLSAo
dm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilz
Y3JvbGxWaWV3CiB7CiAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGluZ107CisKKyAgICBXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9yID0gX3BhZ2Ut
PnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICBpZiAoY29vcmRpbmF0b3IpCisgICAg
ICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOwogfQogCiAtICh2b2lkKV9zY3JvbGxWaWV3RGlkSW50
ZXJydXB0RGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCmlu
ZGV4IDQzNTA4MGYzMjQuLjVjYjVmNTgxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC05Nyw3ICs5Nyw3IEBA
IHN0cnVjdCBQcmludEluZm87CiAKIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rh
a2VWaWV3U25hcHNob3Q7CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9u
OihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29y
ZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luOworLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xs
UG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2lu
OihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQ7
CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IG9y
aWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNjcm9sbERpc3RhbmNlOihm
bG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFuY2U7CiAtIChkb3VibGUpX2luaXRpYWxTY2FsZUZhY3Rv
cjsKIC0gKGRvdWJsZSlfY29udGVudFpvb21TY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAppbmRleCBlODQ4MjRmZDg1Li5kZTNkMzM2NzlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDggQEAgcHVibGljOgogICAgIC8vIFRlbGwg
dGhlIHZpZXcgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBwb3NpdGlvbiwgYW5kIHdoZXRoZXIgdGhp
cyB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIHsgfQorCiAg
ICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiAobm90IG5lY2Vzc2FyaWx5
IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwgYmVjYXVzZSBvZiBzY2Fs
aW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Nj
cm9sbFBvc2l0aW9uKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Lm1tCmluZGV4IDM4MGYxMjQ0NDMuLjBhNDJmOTQ0OTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0yMjQsOCArMjI0
LDE0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJU
cmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAKICAgICAvLyBIYW5kbGUgcmVxdWVzdGVk
IHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlIHRyYW5zYWN0
aW9uIGFmdGVyIGRpZENvbW1pdExheWVyVHJlZSgpCiAgICAgLy8gaGFzIHVwZGF0ZWQgdGhlIHZp
ZXcgc2l6ZSBiYXNlZCBvbiB0aGUgY29udGVudCBzaXplLgotICAgIGlmIChyZXF1ZXN0ZWRTY3Jv
bGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpCi0gICAgICAgIG1fd2ViUGFnZVBy
b3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCkpOworICAgIGlmIChyZXF1
ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpIHsKKyAgICAgICAg
bV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAsIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9s
bE9yaWdpbigpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgICAgICwgcmVxdWVz
dGVkU2Nyb2xsSW5mby5yZXF1ZXN0V2l0aEFuaW1hdGlvbgorI2VuZGlmCisgICAgICAgICAgICAp
OworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogCiAgICAgaWYgKG1f
ZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggNDgyM2Y3NmE5Ny4uOGNmMWQ4NGExMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApA
QCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6CiB9CiAKIC8vIFRoaXMg
Y29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUuCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBz
Y3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0
IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKQordm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChT
Y3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Njcm9s
bFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmln
aW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFj
dGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKIHsKICAgICAvLyBTY3Jv
bGwgdXBkYXRlcyBmb3IgdGhlIG1haW4gZnJhbWUgYXJlIHNlbnQgdmlhIFdlYlBhZ2VQcm94eTo6
dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cygpCiAgICAgLy8gc28gZG9uJ3Qgc2VuZCB0aGVtIGhl
cmUuCkBAIC0yMjIsMjEgKzIyMiwzNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRAogICAgIG1f
d2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVTY3JvbGxWaWV3RGlkU2Nyb2xsKCk7CiAjZW5kaWYK
IAotICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwo
KSkKKyAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xs
KCkgJiYgIWluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvcjo6U2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShzY3JvbGxlZE5vZGVJRCwgbmV3U2Ny
b2xsUG9zaXRpb24sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPT0gU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykpOwogfQogCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9v
bCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05v
ZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJv
b2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQogewog
ICAgIGlmIChzY3JvbGxlZE5vZGVJRCA9PSByb290U2Nyb2xsaW5nTm9kZUlEKCkgJiYgbV9yZXF1
ZXN0ZWRTY3JvbGxJbmZvKSB7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVz
dHNTY3JvbGxQb3NpdGlvblVwZGF0ZSA9IHRydWU7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xs
SW5mby0+cmVxdWVzdElzUHJvZ3JhbW1hdGljU2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbDsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBtX3JlcXVlc3RlZFNj
cm9sbEluZm8tPnJlcXVlc3RXaXRoQW5pbWF0aW9uID0gd2l0aEFuaW1hdGlvbjsKKyNlbmRpZgog
ICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0g
c2Nyb2xsUG9zaXRpb247CiAgICAgfQogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3Zv
aWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Nj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
IHNjcm9sbGVkTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAg
ICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHNjcm9sbGVkTm9kZUlE
LCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsKK30KKwordm9pZCBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NEaWRDaGFuZ2UoYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7
CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShyb290U2Nyb2xs
aW5nTm9kZUlEKCksIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOworfQorI2VuZGlmCisK
IFN0cmluZyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlQXNU
ZXh0KCkgY29uc3QKIHsKICAgICBpZiAobV9zY3JvbGxpbmdUcmVlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggMWE3Njk0M2YyNC4uODExNWU0
NzdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5o
CkBAIC01NSw5ICs1NSwxNCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eShXZWJQYWdlUHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5KCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFu
Z2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzcyk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NEaWRDaGFuZ2UoYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2Vu
ZGlmCisKICAgICAvLyBJbmZvcm0gdGhlIHdlYiBwcm9jZXNzIHRoYXQgdGhlIHNjcm9sbCBwb3Np
dGlvbiBjaGFuZ2VkIChjYWxsZWQgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUpCi0gICAgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFdlYkNvcmU6OlNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
OworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29u
c3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBX
ZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBib29sIGluc3RhbnRTY3JvbGxE
aWRTdG9wQW5pbWF0aW9uID0gZmFsc2UpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGws
IGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKIAogICAgIFdlYkNvcmU6OlRyYWNraW5nVHlw
ZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSwg
V2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0OwogCkBAIC04MCw2ICs4NSw5IEBAIHB1YmxpYzoKICAg
ICBzdHJ1Y3QgUmVxdWVzdGVkU2Nyb2xsSW5mbyB7CiAgICAgICAgIGJvb2wgcmVxdWVzdHNTY3Jv
bGxQb3NpdGlvblVwZGF0ZSB7IH07CiAgICAgICAgIGJvb2wgcmVxdWVzdElzUHJvZ3JhbW1hdGlj
U2Nyb2xsIHsgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBib29sIHJlcXVl
c3RXaXRoQW5pbWF0aW9uIHsgfTsKKyNlbmRpZgogICAgICAgICBXZWJDb3JlOjpGbG9hdFBvaW50
IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOwogICAgIH07CiAgICAgdm9pZCBjb21taXRTY3JvbGxp
bmdUcmVlU3RhdGUoY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbiYs
IFJlcXVlc3RlZFNjcm9sbEluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAppbmRl
eCBhZmFiYmMxZWFlLi5kNTczYTMxZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3Bw
CkBAIC0xMDQsMTIgKzEwNCwxNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJgogICAgIGlmIChp
czxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKSkKICAgICAgICAgbGF5b3V0
Vmlld3BvcnRPcmlnaW4gPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
Pihub2RlKS5sYXlvdXRWaWV3cG9ydCgpLmxvY2F0aW9uKCk7CiAKLSAgICBtX3Njcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdO
b2RlSUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmln
aW4sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworICAgIGJvb2wgaW5zdGFudFNjcm9s
bERpZFN0b3BBbmltYXRpb24gPSBmYWxzZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uID0gbm9kZS5uZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uKCkgJiYgIW5vZGUucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCk7CisjZW5kaWYK
KyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3Jv
bGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKSwg
bGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGluc3Rh
bnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKTsKIH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVl
OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQs
IGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwpCit2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2Rl
UmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3
aXRoQW5pbWF0aW9uKQogewotICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxp
bmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5z
Y3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIHdpdGhBbmltYXRpb24pOwogfQogCiBSZWY8U2Ny
b2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpA
QCAtMTQzLDYgKzE0NywxMyBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZAogICAgIHJldHVybiBT
Y3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdU
cmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sK
KyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVu
dFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5zaWdu
ZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpCiB7CiAgICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKG5vZGVJRCwgaG9y
aXpvbnRhbCwgdmVydGljYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggMjNiYWMw
NmEzYi4uMGY5ZTA5NDk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1
MiwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eSYgc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTsgfQogCiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9s
bChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFdlYkNvcmU6OlNjcm9sbGlu
Z0xheWVyUG9zaXRpb25BY3Rpb24gPSBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uOjpTeW5jKSBvdmVycmlkZTsKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNT
Y3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6
U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24g
PSBmYWxzZSkgb3ZlcnJpZGU7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQg
c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykg
b3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRD
aGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNp
Z25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKaW5kZXggZTYzN2Q2MTUzMi4u
MDBiNGRiY2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxWaWV3V2lsbFN0YXJ0
UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPZmZzZXQsIGJvb2wgaW5Vc2VySW50ZXJhY3Rpb24p
OworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbigpOwogCiAgICAg
dm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25lZCBob3Jpem9udGFs
LCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7CiAgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXgg
ZTc2ODk4Mzc1OC4uODQ4ODYzYTgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMTUyLDYgKzE1Miwx
MSBAQAogICAgIH0KIH0KIAorLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0
aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgX3Njcm9sbGluZ1RyZWVOb2Rl
RGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKTsKK30KKwogI2lm
IEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0
IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3Rh
cnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9j
aXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2
dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIAogICAg
IGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CiAgICAgICAgIGF1dG8g
c2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSA/IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyA6
IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3Jv
bGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSk7Cisg
ICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRo
QW5pbWF0aW9uKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2V0UmVxdWVzdEFuaW1h
dGVkU2Nyb2xsKHRydWUpOworICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9ucyBhcmUg
bm90IHRoZSBzYW1lLCB0aGVyZSdzIGEgcG9zc2liaWxpdHkgdGhhdCB0aGUgc2Nyb2xsIG9mZnNl
dCBmcm9tIHRoZSBXZWIgcHJvY2VzcyBoYXMgYmVlbiBvdmVycmlkZGVuLgorICAgICAgICAvLyBJ
biB0aGlzIGNhc2UsIHRoZSBzY3JvbGwgcG9zaXRpb24gbmVlZCB0byBiZSBzZW50IHRvIHRoZSBX
ZWIgcHJvY2Vzcy4KKyAgICAgICAgYm9vbCBzaG91bGRTeW5jU2Nyb2xsUG9zaXRpb24gPSBzY3Jv
bGxpbmdTdGF0ZU5vZGUuc2Nyb2xsUG9zaXRpb24oKSAhPSBzY3JvbGxpbmdOb2RlKCkuY3VycmVu
dFNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3Jv
bGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSwgU2Ny
b2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMsIHNob3VsZFN5bmNTY3JvbGxQb3NpdGlv
bik7CiAgICAgfQogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwotICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdO
b2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCisgICAgYm9vbCBhbmltYXRpb25JblByb2dyZXNzID0gc2Nyb2xsaW5nTm9kZSgpLnNjcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MoKTsKKyAgICBib29sIG5lZWRUb1N0b3BBbmltYXRpb24gPSBz
Y3JvbGxpbmdOb2RlKCkubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpOworICAgIGlm
IChuZWVkVG9TdG9wQW5pbWF0aW9uICYmIGFuaW1hdGlvbkluUHJvZ3Jlc3MpIHsKKyAgICAgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29u
dGVudE9mZnNldDpzY3JvbGxWaWV3KCkuY29udGVudE9mZnNldCBhbmltYXRlZDpOT107CisgICAg
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CisKKyAgICBpZiAoc2Nyb2xsaW5n
Tm9kZSgpLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Ny
b2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKSBhbmltYXRlZDpZRVNdOworICAgICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNl
dFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3ModHJ1ZSk7CisgICAgfSBlbHNlIGlmICghYW5pbWF0
aW9uSW5Qcm9ncmVzcyB8fCBuZWVkVG9TdG9wQW5pbWF0aW9uKSB7CisgICAgICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZz
ZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07CisgICAgICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsV2lsbFN0YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICsz
NjEsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3Jv
bGxWaWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQKICAgICBzY3JvbGxpbmdOb2RlKCkud2Fz
U2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhzY3JvbGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJ
bnRlcmFjdGlvbiA/IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMgOiBTY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24o
KQoreworICAgIGF1dG8mIG5vZGUgPSBzY3JvbGxpbmdOb2RlKCk7CisgICAgaWYgKCEobm9kZS5y
ZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBub2RlLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mo
KSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNl
KTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAg
ICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3Vy
cmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWdu
ZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAgaWYgKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZGIyY2UwNzljYS4u
ZDA5ZjYwN2FjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0xNzY3LDkgKzE3NjcsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3Bs
YXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAgICAgcGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rp
c3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29u
c3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmln
aW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3
aXRoQW5pbWF0aW9uKQogewotICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBv
c2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGlmICh3aXRoQW5pbWF0aW9uKQorICAgICAgICBw
YWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oc2Nyb2xsUG9zaXRpb24sIHNj
cm9sbE9yaWdpbik7CisgICAgZWxzZQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9s
bChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2lu
dCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFlMzg1MjIyMWQuLmFmMDdlYTQ5MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02MTMsNyArNjEzLDcgQEAgcHVi
bGljOgogICAgIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0
Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKTsKLSAgICB2b2lkIHJlcXVl
c3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pOworICAgIHZvaWQgcmVxdWVzdFNjcm9s
bChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwog
ICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
aW5kZXggZDZjOGMzOGQ0YS4uNTE5OGVmNDQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQ
cm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rp
c3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0
U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVl
c3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsK
ICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwog
ICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29sIGlzVmll
d1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGRjOWY3NGM0OWEuLjJjMzBjNGJjMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
QEAgLTk1LDcgKzk1LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3Bs
YXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChj
b25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9y
aWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpz
Y3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luXTsKKyAgICBbbV93ZWJWaWV3
IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmln
aW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5PXTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6
cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit7CisgICAgW21fd2ViVmlldyBfc2Ny
b2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNj
cm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwogfQogCiBXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VD
bGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA4ZTY0OTM1NTQ1Li4zZDM0NWQ3
NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbFBvc2l0
aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAg
ICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNj
cm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOwog
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgorCiAgICAgV2ViUGFnZSogbV93ZWJQYWdl
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4IDJjMDk4YTEwOTcuLjUzN2ZkMzRkNjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDkgQEAKIG1lc3NhZ2VzIC0+IFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAgICBTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JO
b2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbiwg
Ym9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgQ3VycmVudFNuYXBQb2ludEluZGljZXNDaGFu
Z2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVk
IHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIGJvb2wgaXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5tbQppbmRleCA4MzU0NDFkMzE5Li42ODlkNTU2MjZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDQs
NiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmN1cnJlbnRTbmFw
UG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoU2Nyb2xsaW5nCiAgICAgc2V0QWN0aXZlU2Nyb2xs
U25hcEluZGljZXMobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CiB9CiAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJ
RCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAgIHNldFNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBiOWRh
ZTJjZTEwLi5iY2Y1ZWI4YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRo
ZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIHJ1biB0aW1lIGZsYWcg
Zm9yIENTU09NVmlld1Ntb290aFNjcm9sbGluZy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmg6IEhhbmRsZSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcgYnku
CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKFtXZWJQcmVm
ZXJlbmNlcyBpbml0aWFsaXplXSk6IERpc2FibGUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nIGJ5
IGRlZmF1bHQuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIENTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWRdKTogR2V0dGVyLgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOl0pOiBTZXR0ZXIuCisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06
CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOS0xMi0w
OSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5h
bWUgbWVkaWEgaW4gdGhlIEdQVSBwcm9jZXNzIHByZWZlcmVuY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CmluZGV4IDQ0MWI1YTg3NzYuLmM2NzlmYmQ2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAt
MTg4LDYgKzE4OCw3IEBACiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdw
b3J0QVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxl
ZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgorI2Rl
ZmluZSBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1v
ZGVybk1lZGlhQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1vZGVybk1lZGlh
Q29udHJvbHNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRSZW1vdGVQbGF5YmFja0VuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0UmVtb3RlUGxheWJhY2tFbmFibGVkIgogI2RlZmluZSBXZWJLaXRT
dWJ0bGVDcnlwdG9FbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFN1YnRsZUNyeXB0b0VuYWJs
ZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbQppbmRleCA0N2Y3Yzc1ZGRhLi5jZDIzNjc0NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY2Myw2ICs2NjMsNyBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogICAgICAgICBAWUVTLCBXZWJLaXRDU1NPTVZpZXdTY3JvbGxp
bmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgQE5PLCBXZWJLaXRDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQFlFUywgV2ViS2l0
TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmtLZXksCiAgICAgICAgIEBOTywgV2Vi
S2l0QWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHNLZXksCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTMxODEsNiArMzE4MiwxNiBAQCBzdGF0aWMgTlNT
dHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpm
bGFnIGZvcktleTpXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtl
eV07CiB9CiAKKy0gKEJPT0wpQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZAoreworICAg
IHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdENTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVl
OmZsYWcgZm9yS2V5OldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJl
bmNlS2V5XTsKK30KKwogLSAoQk9PTCl3ZWJBbmltYXRpb25zRW5hYmxlZAogewogICAgIHJldHVy
biBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdFdlYkFuaW1hdGlvbnNFbmFibGVkUHJlZmVy
ZW5jZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA1OTc1OGUyMzM1Li4wOTExOTMxZGMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmgKQEAgLTYzMiw2ICs2MzIsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZl
cmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgog
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CiBA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOwor
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5h
YmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFuaW1hdGVkSW1hZ2VBc3luY0RlY29k
aW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRNYXJrdXBF
bmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IDQ3YWFlMzI4ZGIuLjY2NzAzNTllMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KQEAgLTI5OTIsNiArMjk5Miw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2Vs
ZlJldGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9y
dEFQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZF0pOwogICAg
IHNldHRpbmdzLnNldFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQoW3ByZWZlcmVuY2Vz
IHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NP
TVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTY3JvbGxpbmdB
UElFbmFibGVkXSk7CisgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZF0pOwogICAg
IHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFtw
cmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOwog
CiAgICAgc3dpdGNoIChbcHJlZmVyZW5jZXMgc3RvcmFnZUJsb2NraW5nUG9saWN5XSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDQyMDE0ZDk5ZDUuLmU3Y2E2ZjcyMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0xMi0xMCAgQ2F0
aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOp
cmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2Fu
Zy4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6IEhh
bmRsZSBzbW9vdGggc2Nyb2xsaW5nIG9wdGlvbi4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaDogRGl0dG8uCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOiBEaXR0by4K
KyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAg
ICAgICAgKFdlYlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKToK
KyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkKToKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJW
aWV3LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5n
ZWQpOgorCiAyMDE5LTEyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgUGFnZUNvbmZpZ3VyYXRpb246OmRyYWdDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBv
aW50ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdl
YlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZh
Y2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IGE3MTc2MjIyMWIuLmNjZmY5ZjA1
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJm
YWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjIzLDYgKzIyMyw4IEBAIGludGVy
ZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1CiAg
ICAgSFJFU1VMVCBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQp
OwogICAgIEhSRVNVTFQgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbb3V0LCByZXR2YWxd
IEJPT0wqKTsKICAgICBIUkVTVUxUIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW2lu
XSBCT09MIGVuYWJsZWQpOworICAgIEhSRVNVTFQgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldENTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgZmV0Y2hB
UElLZWVwQWxpdmVFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCogZW5hYmxlZCk7CiAgICAgSFJF
U1VMVCBzZXRGZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAg
IEhSRVNVTFQgc3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCAqZW5h
YmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oCmluZGV4IDA5OTM3NDIwZTQuLjA4YzQ1NjcyN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yMDksNiAr
MjA5LDcgQEAKICNkZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkg
IldlYktpdFNlcnZlclRpbWluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQ
cmVmZXJlbmNlS2V5ICJXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIgogCiAj
ZGVmaW5lIFdlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFJl
c2l6ZU9ic2VydmVyRW5hYmxlZCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZXMuY3BwCmluZGV4IDk1ZWJlYTI2OGMuLmM4ZTIyNWFhNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTMzOSw2ICszMzksOCBAQCB2b2lkIFdl
YlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGljdGlv
bmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQ
cmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlvbmFyeUFkZFZh
bHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
UHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlBZGRW
YWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0Q29yZU1hdGhNTEVuYWJsZWRQcmVmZXJlbmNlS2V5
KSwga0NGQm9vbGVhbkZhbHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRz
LCBDRlNUUihXZWJLaXRSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBr
Q0ZCb29sZWFuRmFsc2UpOwpAQCAtMjI4Myw2ICsyMjg1LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVy
ZW5jZXM6OnNldENvcmVNYXRoTUxFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19P
SzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAg
ICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJL
aXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0
dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldENTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJL
aXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7
CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnJlcXVlc3RJ
ZGxlQ2FsbGJhY2tFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFi
bGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMu
aCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggMWRhYWE3
MzAyNS4uNjA2NmU0NjQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
cy5oCkBAIC0yNzEsNiArMjcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9PTCk7CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBz
ZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOworICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRf
IEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RmV0Y2hBUElLZWVwQWxpdmVF
bmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAppbmRleCBhMDQ0OGJiMDEzLi5kMmIyMmYwNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcApAQCAtNTMxOCw2ICs1MzE4LDExIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90
aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAg
ICAgICAgcmV0dXJuIGhyOwogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAg
ICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZmVyZW5jZXMtPnByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4g
aHI7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MDBkYWJlNzNmNC4uZTlhMTI4YjAyNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTEwICBDYXRoaWUgQ2hl
biAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Ny
b2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2Fu
Zy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoVGVzdE9w
dGlvbnM6OlRlc3RPcHRpb25zKTogUGFyc2UgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOiBBZGQgQ1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCwgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChzZXRXZWJQcmVm
ZXJlbmNlc0ZvclRlc3RPcHRpb25zKTogU2V0IENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQgZnJvbSB0aGUgdGVzdCBvcHRpb25zLgorCiAyMDE5LTEyLTEwICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggQVBJIHRlc3QgZmFpbHVyZSBhZnRl
ciByMjUzMzUxCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggN2M5YWU1OTk0
YS4uMjM3Yzk4ODc4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtMTQy
LDYgKzE0Miw4IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYg
cGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBhZENsaWNr
QXR0cmlidXRpb25FbmFibGVkID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsK
ICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVzaXplT2JzZXJ2ZXJFbmFi
bGVkIikKICAgICAgICAgICAgIGVuYWJsZVJlc2l6ZU9ic2VydmVyID0gcGFyc2VCb29sZWFuVGVz
dEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50
YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIpCisgICAgICAgICAgICBlbmFibGVD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFs
dWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpDb3JlTWF0aE1MRW5h
YmxlZCIpCiAgICAgICAgICAgICBlbmFibGVDb3JlTWF0aE1MID0gcGFyc2VCb29sZWFuVGVzdEhl
YWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6
UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgK
aW5kZXggZTUzMzVlODMxMS4uZjdlOGQyOTExZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9u
cy5oCkBAIC01MCw2ICs1MCw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBlbmFi
bGVDU1NMb2dpY2FsIHsgZmFsc2UgfTsKICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJs
ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlUmVzaXplT2JzZXJ2ZXIgeyBmYWxzZSB9Owor
ICAgIGJvb2wgZW5hYmxlQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nIHsgZmFsc2UgfTsKICAgICBi
b29sIGVuYWJsZUNvcmVNYXRoTUwgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlUmVxdWVzdElk
bGVDYWxsYmFjayB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVBc3luY0NsaXBib2FyZEFQSSB7
IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5k
ZXggY2NmZmUwNTVkMy4uNjdjYWVhNzE4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQpAQCAtMTAyOSw2ICsxMDI5LDcgQEAgc3RhdGljIHZvaWQgc2V0V2Vi
UHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAg
ICBwcmVmZXJlbmNlcy5DU1NMb2dpY2FsRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTTG9naWNh
bDsKICAgICBwcmVmZXJlbmNlcy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gb3B0aW9ucy5h
ZENsaWNrQXR0cmlidXRpb25FbmFibGVkOwogICAgIHByZWZlcmVuY2VzLnJlc2l6ZU9ic2VydmVy
RW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlUmVzaXplT2JzZXJ2ZXI7CisgICAgcHJlZmVyZW5jZXMu
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nOwogICAgIHByZWZlcmVuY2VzLmNvcmVNYXRoTUxFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVDb3JlTWF0aE1MOwogICAgIHByZWZlcmVuY2VzLnJlcXVlc3RJZGxlQ2FsbGJh
Y2tFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrOwogICAgIHByZWZl
cmVuY2VzLmFzeW5jQ2xpcGJvYXJkQVBJRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQXN5bmNDbGlw
Ym9hcmRBUEk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385592</attachid>
            <date>2019-12-13 04:33:18 -0800</date>
            <delta_ts>2019-12-15 07:08:31 -0800</delta_ts>
            <desc>native-animation-for-review</desc>
            <filename>upload_35.diff</filename>
            <type>text/plain</type>
            <size>151594</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MmMyMWFjMDgxLi4zNWZhMzg0M2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0g
aXMgYmFzZWQgb24gQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5j
IHNjcm9sbCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJl
Zm9yZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0
byBmYXN0L3Njcm9sbGluZy9pb3MvLCB0aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAgICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAg
ICAod2FpdEZvclNjcm9sbEVuZCk6CisgICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNj
cm9sbFdpbmRvdyk6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sLgorCiAyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNh
dGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJl
aGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1i
ZWhhdmlvci5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Ny
b2xsLWJlaGF2aW9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBh
MDk2OGUwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcwpAQCAtMCwwICsxLDg3IEBACitmdW5jdGlv
biBvYnNlcnZlU2Nyb2xsaW5nKGVsZW1lbnRzLCBjYWxsYmFjaykgeworICBpZiAoIUFycmF5Lmlz
QXJyYXkoZWxlbWVudHMpKQorICAgICAgZWxlbWVudHMgPSBbZWxlbWVudHNdOworICB2YXIgbGFz
dENoYW5nZWRGcmFtZSA9IDA7CisgIHZhciBsYXN0TGVmdCA9IG5ldyBNYXAoKTsKKyAgdmFyIGxh
c3RUb3AgPSBuZXcgTWFwKCk7CisgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAg
ICBsYXN0TGVmdC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICBsYXN0VG9w
LnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbFRvcCk7CisgIH0pOworICBmdW5jdGlvbiB0aWNr
KGZyYW1lcykgeworICAgIC8vIFdlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIDUw
MCBmcmFtZXMgb3IgdW50aWwgMjAgZnJhbWVzIHdpdGgKKyAgICAvLyBubyBjaGFuZ2UgaGF2ZSBi
ZWVuIG9ic2VydmVkLgorICAgIGlmIChmcmFtZXMgPj0gNTAwIHx8IGZyYW1lcyAtIGxhc3RDaGFu
Z2VkRnJhbWUgPiAyMCkgeworICAgICAgY2FsbGJhY2sodHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgIHZhciBzY3JvbGxIYXBwZW5lZCA9IGVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IHsKKyAg
ICAgICAgcmV0dXJuIGVsZW1lbnQuc2Nyb2xsTGVmdCAhPSBsYXN0TGVmdC5nZXQoZWxlbWVudCkg
fHwgZWxlbWVudC5zY3JvbGxUb3AgIT0gbGFzdFRvcC5nZXQoZWxlbWVudCk7CisgICAgICB9KTsK
KyAgICAgIGlmIChzY3JvbGxIYXBwZW5lZCkgeworICAgICAgICBsYXN0Q2hhbmdlZEZyYW1lID0g
ZnJhbWVzOworICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7CisgICAgICAg
ICAgbGFzdExlZnQuc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsTGVmdCk7CisgICAgICAgICAg
bGFzdFRvcC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOworICAgICAgICB9KTsKKyAg
ICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgfQorICAgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKHRpY2suYmluZChudWxsLCBmcmFtZXMgKyAxKSk7CisgICAgfQorICB9CisgIHRpY2soMCk7
Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JTY3JvbGxFbmQoZWxlbWVudHMpIHsKKyAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywg
KGRvbmUpID0+IHsKKyAgICAgIGlmIChkb25lKQorICAgICAgICByZXNvbHZlKCk7CisgICAgfSk7
CisgIH0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KSB7Cisg
IC8vIFRyeSB2YXJpb3VzIG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlz
IHJlc2V0IGltbWVkaWF0ZWx5LgorICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOwor
ICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rp
b24gcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KSB7CisgIC8vIFRyeSB2YXJp
b3VzIG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVk
aWF0ZWx5LgorICBzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0ID0gMDsKKyAgc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wID0gMDsKKyAgc2Nyb2xsaW5nV2luZG93LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAw
LCBiZWhhdmlvcjogImluc3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsIGNsYXNzTmFtZSkgeworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5y
ZW1vdmUoImF1dG9CZWhhdmlvciIsICJzbW9vdGhCZWhhdmlvciIpOworICBzdHlsZWRFbGVtZW50
LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZp
b3IpCisgICAgYXJncy5iZWhhdmlvciA9IGJlaGF2aW9yOworICBzd2l0Y2ggKHNjcm9sbEZ1bmN0
aW9uKSB7CisgICAgY2FzZSAic2Nyb2xsSW50b1ZpZXciOgorICAgICAgYXJncy5pbmxpbmUgPSAi
c3RhcnQiOworICAgICAgYXJncy5ibG9jayA9ICJzdGFydCI7CisgICAgICBlbGVtZW50VG9SZXZl
YWwuc2Nyb2xsSW50b1ZpZXcoYXJncyk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg
ICAgYXJncy5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgICAgIGFyZ3MudG9wID0gZWxl
bWVudFRvUmV2ZWFsVG9wOworICAgICAgc2Nyb2xsaW5nRWxlbWVudFtzY3JvbGxGdW5jdGlvbl0o
YXJncyk7CisgICAgICBicmVhazsKKyAgfQorfQorCitmdW5jdGlvbiBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZp
b3IpCisgICAgYXJncy5iZWhhdmlvciA9IGJlaGF2aW9yOworICBhcmdzLmxlZnQgPSBlbGVtZW50
VG9SZXZlYWxMZWZ0OworICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgc2Nyb2xs
aW5nV2luZG93W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1k
ZWZhdWx0LWNzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uOGQ0Y2E2NDE1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorCitQQVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBk
ZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKK1BBU1MgU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVt
ZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1j
c3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zNWM2NTAzYWIy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0Vu
YWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1ZSBvZiBzY3JvbGwt
YmVoYXZpb3I8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpm
d2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9s
bGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2
aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93
OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICB9Cis8L3N0
eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFz
cz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAw
MHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgor
ICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVp
Z2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlz
cGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBo
ZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2
PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZh
ciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0g
MjUwOworICB2YXIgc2Nyb2xsRnVuY3Rpb24gPSAic2Nyb2xsIjsKKworICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICB9
LCAiSW5zdGFudCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJl
aGF2aW9yIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVt
ZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMC4uNTNhOTYxZWY1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzNiBAQAorCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhh
dmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kMzhkZmZkZWNlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVt
ZW50Lmh0bWwKQEAgLTAsMCArMSwxNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgor
PHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xs
KiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIGFuIGVsZW1lbnQ8L3RpdGxlPgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOp
ZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYt
c2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAg
LnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAg
ICBoZWlnaHQ6IDIwMHB4OworICB9CisgIC5hdXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhh
dmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlv
cjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBp
ZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRo
OiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1
ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVu
dFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjog
LTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9z
cGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQg
PSBvdmVyZmxvd05vZGU7CisgIHZhciBzdHlsZWRFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2
YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9
IDI1MDsKKworICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRv
VmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2
ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Jg
KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxp
bmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRv
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVt
ZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3Rh
bnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAg
IH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAy
KTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwg
IkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQi
LCAwLCAwKTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIGFuIGVsZW1lbnQgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTdjYWVhMjdiYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgUGFnZSBs
b2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9y
IAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4g
ZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQg
c2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kMzI1YjRiOWUyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXJvb3QuaHRtbApAQCAtMCwwICsxLDE2OSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVu
dC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJh
bWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0Bp
Z2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cu
b3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1i
b3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpz
Ij48L3NjcmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5h
dXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3Ro
QmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgor
PGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9S
ZXZlYWwiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsg
d2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwv
ZGl2PgorPHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRl
ZCIpOworICB2YXIgc2Nyb2xsaW5nRWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIHBhZ2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xs
aW5nRWxlbWVudCA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVu
dCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0
aCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRoKSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50
LnN0eWxlLmhlaWdodCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAg
ICBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAg
ICBlbGVtZW50VG9SZXZlYWxUb3AgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAg
ICBlbGVtZW50VG9SZXZlYWwuc3R5bGUubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgi
OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAi
cHgiOworCisgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsgfSk7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3Jv
bGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7Cisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0
aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAg
ICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVt
ZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAg
ICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRU
b1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5n
RWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOwor
CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgi
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
IH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBt
YWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM4MjM4NWFhYjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisKK1BB
U1MgUGFnZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBB
Ym9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdp
bmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjkwNTdiMGNk
MTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09N
Vmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Nj
cm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycg
YmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBvbiB0aGUgd2luZG93IG9mIHRoZSBtYWluIGZy
YW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2Fs
ZT0xLGluaXRpYWwtc2NhbGU9MSI+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6ly
aWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3Jv
bGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5
IHsKKyAgICBtYXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJl
aGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2
aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2
IGlkPSJwYWdlQ29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9w
OiAwOyI+CisgIDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxv
YWRlZCA9IGFzeW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdXaW5kb3cs
IHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsK
KyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19k
b25lKGZ1bmN0aW9uKCkgeworICAgIHNjcm9sbGluZ1dpbmRvdyA9IHdpbmRvdzsKKyAgICBzdHls
ZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50LnN0
eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJweCI7CisgICAgcGFn
ZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYgKyAi
cHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkg
KiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkg
KiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVm
dCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1JldmVh
bFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlc2V0
U2Nyb2xsRm9yV2luZG93KHdpbmRvdyk7IH0pOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8i
LCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhh
dmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7Cisg
ICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxs
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOwor
ICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7Cisg
ICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93
LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5k
b3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBv
ZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhh
dmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9s
bEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRv
dy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5n
V2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24s
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
ICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21v
b3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVu
dFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7
CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3Jv
bGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xs
aW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9u
IHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDQz
YTgyMGU1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3
aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNj
cm9sbGludG92aWV3LW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAuLjQ1YjVkOGQ3YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBA
IC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJu
YWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rp
bmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3Igd2l0aCBzY3JvbGxJbnRvVmlldyBmb3IgbmVzdGVk
IHNjcm9sbGluZyBub2RlczwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAg
b3ZlcmZsb3c6IGF1dG87CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuc21vb3RoQmVoYXZp
b3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9CisgIC5ncmFkaWVudCB7Cisg
ICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7CisgIH0K
Kzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2PgorICA8ZGl2IGNsYXNzPSJz
Y3JvbGxhYmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQ1MHB4Ij4KKyAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3
aWR0aDogNDAwcHgiPgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDog
MTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFi
bGUiIHN0eWxlPSJ3aWR0aDogMzUwcHgiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIg
c3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICA8ZGl2
IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDMwMHB4Ij4KKyAgICAgICAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0
eWxlPSJ3aWR0aDogMjUwcHgiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0
eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMjAwcHgiPgorICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBw
eDsiPjwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxl
PSJ3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2Pgor
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsg
aGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsi
PjwvZGl2PgorICAgICAgICAgIDwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50
IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhl
aWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3Jh
ZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8
L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIFRoZSBDU1NPTS1WaWV3IHNw
ZWMgYW5kIGltcGxlbWVudGF0aW9ucyBmb2xsb3cgZGlmZmVyZW50IGFsZ29yaXRobXMgKHNjcm9s
bHMgcGVyZm9ybWVkIGluIHBhcmFsbGVsLCBhcyBpbm5lci10by1vdXRlciBzZXF1ZW5jZSBvciBh
cyBvdXRlci10by1pbm5lciBzZXF1ZW5jZSkuCisgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20v
dzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMzEyNworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZh
ciBkaXZzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNjcm9sbGFibGUiKTsKKyAgICAg
IGRpdnMuZm9yRWFjaCgoc2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICByZXNldFNjcm9sbChz
Y3JvbGxhYmxlRGl2KTsKKyAgICAgIH0pOworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbElu
dG9WaWV3KHtpbmxpbmU6ICJzdGFydCIsIGJsb2NrOiAic3RhcnQiLCBiZWhhdmlvcjogImF1dG8i
fSk7CisgICAgICB2YXIgc2Nyb2xsVG9wID0gbmV3IE1hcCgpOworICAgICAgdmFyIGlzU21vb3Ro
ID0gbmV3IE1hcCgpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7Cisg
ICAgICAgIHNjcm9sbFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxU
b3ApOworICAgICAgICBpc1Ntb290aC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5j
bGFzc0xpc3QuY29udGFpbnMoInNtb290aEJlaGF2aW9yIikpOworICAgICAgICAvLyBJZiBzY3Jv
bGwgb3BlcmF0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgc2Nyb2xsIGJveGVz
IHdpdGggaW5zdGFudCBiZWhhdmlvciBtaWdodCBhbHNvIG5lZWQgdG8gd2FpdCBmb3IgdGhlaXIg
cHJlZGVjZXNzb3JzLgorICAgICAgICBpZiAoaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQor
ICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2KSwg
NTAwLCAiRWxlbWVudCB3aXRoIHNtb290aCBiZWhhdmlvciBzaG91bGQgbm90IHNjcm9sbCBpbW1l
ZGlhdGVseSIpOworICAgICAgfSk7CisKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcoQXJyYXkuZnJv
bShkaXZzKSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgIGRpdnMu
Zm9yRWFjaCgoc2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bl9lcXVhbChzY3JvbGxUb3AuZ2V0KHNjcm9sbGFibGVEaXYpLCBzY3JvbGxhYmxlRGl2LnNjcm9s
bFRvcCwgIlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICBpZiAoIWlz
U21vb3RoLmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAgICAgICAgYXNzZXJ0X2FueShhc3Nl
cnRfZXF1YWxzLCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgWzAsIDUwMF0sICJFbGVtZW50IHdp
dGggaW5zdGFudCBiZWhhdmlvciBzaG91bGQganVtcCB0byB0aGUgZmluYWwgcG9zaXRpb24iKTsK
KyAgICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGFibGVEaXYuc2Nyb2xsVG9wLCA1MDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAg
ICAgICAgICAgIHNjcm9sbFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3Jv
bGxUb3ApOworICAgICAgICAgIH0pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICBy
ZWplY3QoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH0sICJzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3Rl
ZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODU1YTZhNjEwZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIFNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwg
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwg
MjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNj
cm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNj
cm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5n
IHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAg
CitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcg
ZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1
MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlv
bnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAo
NTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4g
cGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNp
bmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBz
Y3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcg
c21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xs
SW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290
aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbElu
dG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGgg
c2Nyb2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBTY3JvbGwgcG9z
aXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4gaW5zdGFudCBz
Y3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMGE0MWI4YjA4ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21v
b3RoLXBvc2l0aW9ucy5odG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcg
YW4gZWxlbWVudCB3aXRoIHNtb290aCBiZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1l
b3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6ly
aWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3Jv
bGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Ny
b2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhl
aWdodDogMjAwcHg7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+
Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJz
Y3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7
IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAg
PHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6
IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdo
dDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8
c2NyaXB0PgorICAvLyBGb3Igc21vb3RoIGJlaGF2aW9yLCBldm9sdXRpb24gb2Ygc2Nyb2xsIHBv
c2l0aW9ucyBvdmVyIHRpbWUgaXMgbm90IHNwZWNpZmllZCBieSBDU1NPTSBWaWV3LgorICAvLyBU
aGlzIHRlc3QgcmVsaWVzIG9uIHRoZSBtaW5pbWFsIGFzc3VtcHRpb24gdGhhdCBzY3JvbGwgcG9z
aXRpb24gZnVuY3Rpb25zIGFyZSBtb25vdG9uaWMuCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwg
InNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaChmdW5jdGlvbihzY3JvbGxGdW5j
dGlvbikgeworICAgIFt7bGVmdDowLCB0b3A6MH0sIHtsZWZ0OjEwMDAsIHRvcDowfSwge2xlZnQ6
MCwgdG9wOjUwMH0sIHtsZWZ0OjEwMDAsIHRvcDo1MDB9XS5mb3JFYWNoKChpbml0aWFsKSA9PiB7
CisgICAgICB2YXIgZmluYWxMZWZ0ID0gNTAwOworICAgICAgdmFyIGZpbmFsVG9wID0gMjUwOwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCBpbml0aWFsLmxlZnQsIGluaXRpYWwudG9wKTsKKyAg
ICAgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAg
IHZhciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMob2xkTGVmdCwgaW5pdGlhbC5sZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgYmUgYXQgaW5p
dGlhbCBwb3NpdGlvbiIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCBpbml0aWFs
LnRvcCwgIlNjcm9sbFRvcCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIpOworICAgICAg
ICAgIGlmIChzY3JvbGxGdW5jdGlvbiA9PT0gInNjcm9sbEJ5IikKKyAgICAgICAgICAgIHNjcm9s
bE5vZGUob3ZlcmZsb3dOb2RlLCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCAt
IGluaXRpYWwubGVmdCwgZmluYWxUb3AgLSBpbml0aWFsLnRvcCk7CisgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAic21v
b3RoIiwgZmluYWxMZWZ0LCBmaW5hbFRvcCk7CisgICAgICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhv
dmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAg
ICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICBh
c3NlcnRfbGVzc190aGFuX2VxdWFsKE1hdGguaHlwb3QoZmluYWxMZWZ0IC0gbmV3TGVmdCwgZmlu
YWxUb3AgLSBuZXdUb3ApLCBNYXRoLmh5cG90KGZpbmFsTGVmdCAtIG9sZExlZnQsIGZpbmFsVG9w
IC0gb2xkVG9wKSwgIlNjcm9sbCBwb3NpdGlvbiBzaG91bGQgbW92ZSB0b3dhcmRzIHRoZSBmaW5h
bCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3TGVmdCwgZmluYWxMZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVh
Y2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1Rv
cCwgZmluYWxUb3AsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7Cisg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAg
ICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAg
ICAgICAgICByZWplY3QoZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZG9uZSkK
KyAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAg
ICAgIH0sIGBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKCR7aW5pdGlhbC5sZWZ0fSwgJHtpbml0aWFsLnRvcH0pIHRvICgke2ZpbmFsTGVmdH0s
ICR7ZmluYWxUb3B9KSB1c2luZyAke3Njcm9sbEZ1bmN0aW9ufSgpIGApOworICAgIH0pOworICB9
KTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7
CisgICAgICB2YXIgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBzY3Jv
bGxEaXJlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93
Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxU
b3A7CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhvbGRUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAi
c21vb3RoIiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2Rl
LCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQg
PSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZs
b3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsK
KyAgICAgICAgICAgIGlmIChzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkKSB7CisgICAgICAgICAgICAg
IGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQg
a2VlcHMgZGVjcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2Vx
dWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICBzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkID0gbmV3
TGVmdCA8PSBvbGRMZWZ0ICYmIG5ld1RvcCA8PSBvbGRUb3A7CisgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAi
U2Nyb2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNz
X3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIp
OworICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7Cisg
ICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAg
ICAgIGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxO
b2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCA1MDAsIDI1MCk7CisgICAgICAg
ICAgICAgICAgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAg
ICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24i
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hv
dWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9sZExl
ZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBjYXRj
aChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChkb25l
KQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Nyb2xs
IHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIg
c21vb3RoIHNjcm9sbGluZyIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRTY3Jv
bGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZhbHNl
OworICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZh
ciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhv
bGRMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAg
ICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAg
ICB0cnkgeworICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7
CisgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAg
ICAgaWYgKCFpbml0aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfbGVz
c190aGFuX2VxdWFsKG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNp
bmciKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1Rv
cCwgIlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdM
ZWZ0ID4gMTAwMCAmJiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0
aGUgaW5pdGlhbCBzY3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQg
PSB0cnVlOworICAgICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xs
IiwgImluc3RhbnQiLCA1MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVmdCA9IG92ZXJm
bG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9k
ZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAs
ICJTY3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZp
bmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAg
aWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Ny
b2xsTGVmdCBzaG91bGQgc3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgc3RheSBhdCBmaW5hbCBw
b3NpdGlvbiIpOworICAgICAgICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAg
ICAgICAgICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAg
IHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBh
Ym9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yNzk5ZmRjYzI5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1Mg
aWZyYW1lIGxvYWRlZCAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJh
bWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxp
bmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMC4uOTZkMTFhYjk2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5o
dG1sCkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUg
IGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5
bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xs
T3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9y
IG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIg
Y29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdh
bmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJl
aGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rp
dj4KKzxpZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIg
c3JjZG9jPSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAg
bWFyZ2luOiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhh
dmlvcjogYXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1i
ZWhhdmlvcjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBz
dHlsZT0nd2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1n
cmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxh
eTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNw
YW4gaWQ9J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVy
dGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5k
OiBibGFjazsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lm
cmFtZT4KKzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFt
ZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxlZEVsZW1lbnQsIGVsZW1l
bnRUb1JldmVhbDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVt
ZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlmcmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdF
bGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAg
ICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9s
bFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rp
b24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOwor
ICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1
bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlv
cmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNj
cm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0p
OworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9s
bEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJl
aGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAg
ICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVu
Y3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3Nl
cnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZl
YWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9
LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwLi4wNWViMzI3MmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5k
b3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2lu
ZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMzMzNkNjRmODUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1l
LXdpbmRvdy5odG1sCkBAIC0wLDAgKzEsMTcxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50
ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rp
bmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xs
LWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOp
ZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYt
c2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9Imxv
ZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0
PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkg
eworICAgICAgbWFyZ2luOiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNj
cm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAg
IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+Cisg
ICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHls
ZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48
L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1i
bG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1s
PiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rl
c3QoImlmcmFtZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVu
dCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAg
dmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgIHNj
cm9sbGluZ1dpbmRvdyA9IGlmcmFtZU5vZGUuY29udGVudFdpbmRvdzsKKyAgICBzdHlsZWRFbGVt
ZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVs
ZW1lbnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJlbGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9s
bEJ5Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7Cisg
ICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Ny
b2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Ny
b2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIp
OworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3Jg
KTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JX
aW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
c2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAg
ICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAg
ICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVy
biB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9
KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGlu
Z1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7Cisg
ICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVh
bFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0s
ICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUg
d2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93
KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRv
dywgInNjcm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9s
bEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9
PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9
KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7CisKKyAgfSkpOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZjZhZTU2ZWM3Ny4uYTQ4MTFmYzgwMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY0IEBACisyMDE5LTEyLTExICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBu
YXRpdmUgc2Nyb2xsIGludGVyZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZy
w6lkw6lyaWMgV2FuZy4KKworICAgICAgICBUaGlzIHBhdGNoIHN1cHBvcnQgbmF0aXZlIHNjcm9s
bCBhbmltYXRpb24gb24gaU9TIHBsYXRmb3JtLiBJdCByZWxpZXMgb24gVUlTY3JvbGxWaWV3J3MK
KyAgICAgICAgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gc3VwcG9ydCBhbmQgaXMgZXhlY3V0ZWQg
aW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3cuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9v
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXdpbmRvdy5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6
IFJlcXVlc3RzIGEgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gYnkgY2FsbGluZyBhbmltYXRlZCBy
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKS4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6IEFkZCBhIGZs
YWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAg
ICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyk6IFVwZGF0ZSB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMgZnJvbSB0
aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKTogQWRkIG1fcmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb25XaXRoQW5pbWF0aW9uIHRvIGluZGljYXRlIGl0J3MgYW5pbWF0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0
aEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1Ry
ZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogVXBkYXRlIHRoZSBz
Y3JvbGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBBZGQgYSBmbGFnIHRvIGluZGljYXRl
IGlmIHRoaXMgaXMgYW4gYW5pbWF0ZWQgc2Nyb2xsIG9yIG5vdC4KKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTog
QWRkIGEgZmxhZyB0byBpbmRpY2F0ZSB0aGUgc2Nyb2xsIGlzIGFuaW1hdGVkIG9yIG5vdC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyk6IElm
IG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24gaXMgdHJ1ZSwgc2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9u
IHRvIHRoZSBXZWIgcHJvY2VzcywgZXZlbiBpZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGRvZXNuJ3Qg
Y2hhbmdlLgorICAgICAgICBNYWludGFpbiB0aGUgc3RhdHVzIG9mIG1fc3RvcFNjcm9sbEFuaW1h
dGlvbiBhbmQgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6IEFu
aW1hdGVkIHNjcm9sbCB3b24ndCBjaGFuZ2UgdGhlIHNjcm9sbCBwb3NpdGlvbiBpbW1lZGlhdGVs
eSwgc28gZG9uJ3Qgbm90aWZ5IHRoZSBzY3JvbGxpbmcgaW5mbyBub3cuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xs
KTogbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgaW5kaWNhdGVzIHRoYXQgdGhpcyBpcyBhbiBhbmlt
YXRlZCBzY3JvbGwgcmVxdWVzdC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgY29uc3QpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKTogTWFpbnRhaW4gdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKTogSWYgdGhl
IE5vZGUgaXMgcGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24sIHRoZSBwcmV2aW91cyBzY3Jv
bGwgYW5pbWF0aW9uIHNob3VsZCBzdG9wIGZpcnN0LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24gY29u
c3QpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZS5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6IEFkZCBTY3JvbGxC
ZWhhdmlvclR5cGUgdG8gaW5kaWNhdGUgaXQncyBpbnN0YW50IG9yIHNtb290aCBzY3JvbGwuCisg
ICAgICAgIEFkZCBTY3JvbGxCZWhhdmlvclN0YXR1cyB0byBpbmRpY2F0ZSB0aGUgc3RhdHVzIG9m
IHNjcm9sbGluZy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKTogVXBkYXRlIFNjcm9sbEJl
aGF2aW9yVHlwZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEpOiBBZGQgbV9jdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVh
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6Y3VycmVudFNjcm9sbEJlaGF2
aW9yVHlwZSBjb25zdCk6IE1haW50YWluIGN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldCk6IFNlbmQgYSBxdWVzdCBvZiBuYXRpdmUg
c2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0V2l0
aEFuaW1hdGlvbik6IFJlcXVlc3RzIGEgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gYnkgY2FsbGlu
ZyBhbmltYXRlZCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKS4KKwogMjAxOS0xMi0xMCAg
Q2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBX
ZWIgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDkzOWNlNGJlZTIuLjcz
MWUzMjI5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTM2NjgsNiArMzY2OCwx
NCBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNj
cm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGxUeQogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBl
ID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxU
eXBlKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJ
TkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6
OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3Np
dGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUo
cHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAg
ICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5j
ZWxBbmltYXRpb25zKCk7CiAgICAgaWYgKG9mZnNldCAhPSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNDI5ZWVlOWE5Ni4uMDJkNTg5NzU3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5jcHAKQEAgLTI0OCw3ICsyNDgsMTYgQEAgYm9vbCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEm
IHNjcm8KIAogICAgIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgp
LmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJh
Y2tGb3J3YXJkQ2FjaGU7CiAgICAgYm9vbCBpblByb2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbGFi
bGVBcmVhLmN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwot
ICAgIGlmIChpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGUpCisKKyAg
ICBib29sIHVwZGF0ZVNjcm9sbFBvc2l0aW9uID0gaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5C
YWNrRm9yd2FyZENhY2hlOworCisgICAgYm9vbCBhbmltYXRlZCA9IGZhbHNlOworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgYW5pbWF0ZWQgPSBzY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Ny
b2xsQmVoYXZpb3JUeXBlKCkgPT0gU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGg7CisgICAgLy8g
VGhlIHNjcm9sbCBwb3NpdGlvbiBvZiBhbmltYXRlZCBzY3JvbGxpbmcgd2lsbCBiZSBzZXQgYnkg
dGhlIFVJIHByb2Nlc3MuIFNvIHNob3VsZG4ndCBzZXQgaXQgbm93LgorICAgIHVwZGF0ZVNjcm9s
bFBvc2l0aW9uID0gIWFuaW1hdGVkICYmIHVwZGF0ZVNjcm9sbFBvc2l0aW9uOworI2VuZGlmCisg
ICAgaWYgKHVwZGF0ZVNjcm9sbFBvc2l0aW9uKQogICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlv
bkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNl
dCk7CiAKICAgICAvLyBJZiB0aGlzIGZyYW1lIHZpZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQg
aW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB3ZSBkb24ndCB3YW50IHRvIHVwZGF0ZSBvdXIK
QEAgLTI2MCw3ICsyNjksMTIgQEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1
ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIXN0
YXRlTm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGVOb2RlLT5zZXRSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9ncmFtbWF0aWNTY3JvbGwp
OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYXV0byBzdGF0dXMgPSBhbmltYXRlZCA/
IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2ZUFuaW1hdGlvbiA6IFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpOb3RJbkFuaW1hdGlvbjsKKyAgICBzY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhh
dmlvclN0YXR1cyhzdGF0dXMpOworI2VuZGlmCisKKyAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCwgYW5p
bWF0ZWQpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yOTEsNiArMzA1LDMyIEBAIHZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2NoZWR1bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFm
dGVyQXN5bmNTY3JvbGwoU2NyCiAgICAgbV91cGRhdGVOb2RlU2Nyb2xsUG9zaXRpb25UaW1lci5z
dGFydE9uZVNob3QoMF9zKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoU2Ny
b2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmICghbV9wYWdlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvKiBmcmFtZVZpZXcgPSBmcmFtZVZpZXdGb3JTY3JvbGxpbmdO
b2RlKG5vZGVJRCk7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChub2RlSUQgPT0gZnJhbWVWaWV3LT5zY3JvbGxpbmdOb2RlSUQoKSkgeworICAgICAgICBp
ZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAgICAgICAgIGZyYW1lVmlldy0+
c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0
aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIE92ZXJmbG93LXNjcm9sbCBh
cmVhLgorICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IGZyYW1lVmlldy0+c2Nyb2xsYWJs
ZUFyZWFGb3JTY3JvbGxMYXllcklEKG5vZGVJRCkpIHsKKyAgICAgICAgaWYgKCFpc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpCisgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xs
QmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAg
ICB9Cit9CisjZW5kaWYKKwogdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVT
Y3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGxUaW1lckZpcmVkKCkKIHsKICAgICB1cGRhdGVT
Y3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwobV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUubm9k
ZUlELCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5zY3JvbGxQb3NpdGlvbiwgbV9zY2hlZHVsZWRT
Y3JvbGxVcGRhdGUubGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbFR5cGU6OlVzZXIsIG1fc2No
ZWR1bGVkU2Nyb2xsVXBkYXRlLnVwZGF0ZUxheWVyUG9zaXRpb25BY3Rpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5oCmluZGV4IDliZTY5YWFmYjEuLjNkZTAxY2MyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgK
QEAgLTUyLDYgKzUyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5nU3RhdGVUcmVlUHJv
cGVydGllc0NoYW5nZWQoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVVcGRh
dGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3Jp
Z2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MoU2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cisj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
QWN0aXZlU2Nyb2xsU25hcEluZGljZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9u
dGFsSW5kZXgsIHVuc2lnbmVkIHZlcnRpY2FsSW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5j
cHAKaW5kZXggNzE3YmZjMmE1NS4uNGU0MDE0ZTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
Y3BwCkBAIC01Niw2ICs1Niw5IEBAIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2NyCiAjZW5kaWYKICAg
ICAsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKHN0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnMoKSkKICAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsKHN0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwoKSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICwg
bV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oc3RhdGVOb2RlLnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKQorI2VuZGlmCiAgICAgLCBtX2lzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKHN0YXRlTm9kZS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQogewog
ICAgIGlmIChoYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpAQCAtMjE5
LDEwICsyMjIsMTUgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9s
bGFibGVBcmVhUGFyYW1ldGVycyhjb25zdCBTY3JvbGxhYmxlQXIKICAgICBzZXRQcm9wZXJ0eUNo
YW5nZWQoU2Nyb2xsYWJsZUFyZWFQYXJhbXMpOwogfQogCi12b2lkIFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYg
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9s
bCkKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHJlcXVlc3RlZFdpdGhBbmltYXRpb24p
CiB7CiAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uOwogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uID0gcmVx
dWVzdGVkV2l0aEFuaW1hdGlvbjsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlcXVlc3RlZFdp
dGhBbmltYXRpb24pOworI2VuZGlmCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKTsKIH0KIApAQCAtMzE0LDYgKzMyMiwxMSBAQCB2b2lkIFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNjcm9sbGlu
Z1N0YXRlVAogICAgIGlmIChtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dy
YW1tYXRpY1Njcm9sbCkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQgc2Nyb2xs
IHBvc2l0aW9uIHJlcHJlc2VudHMgcHJvZ3JhbW1hdGljIHNjcm9sbCIsIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0
aW9uKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24g
d2l0aCBhbmltYXRpb24iLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbik7
CisjZW5kaWYKKwogICAgIGlmICghbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0LmlzRW1w
dHkoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJwYXJlbnQgcmVsYXRpdmUgc2Nyb2xsYWJs
ZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUuaAppbmRleCA0OTY3YTZjZTgxLi42YzY5MmMxZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuaApAQCAtMTExLDcgKzExMSwxMCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBGbG9hdFBvaW50
JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb247IH0KICAgICBib29sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGJvb2wgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb247IH0KKyNlbmRpZgor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3Qg
RmxvYXRQb2ludCYsIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCByZXF1
ZXN0ZWRXaXRoQW5pbWF0aW9uKTsKIAogICAgIGJvb2wgaXNNb25pdG9yaW5nV2hlZWxFdmVudHMo
KSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzOyB9CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRJc01vbml0b3JpbmdXaGVlbEV2ZW50cyhib29sKTsKQEAgLTE3MSw2
ICsxNzQsOSBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9s
bGFibGVBcmVhUGFyYW1ldGVyczsKIAogICAgIGJvb2wgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
blJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgeyBmYWxzZSB9OworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlv
biB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMg
eyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCmluZGV4IDE1MWFjMjlmOGEuLjdhZGRmZWY0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTgyLDggKzgyLDEzIEBAIHB1
YmxpYzoKICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5kZXJMYXllciBzY3JvbGxpbmcgc3Rh
dGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9k
ZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSA9IDA7CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIENhbGxlZCBmb3Igc2Nyb2xsIGFuaW1h
dGlvbiBzdGF0dXMgdXBkYXRlcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJ
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBib29sIC8qaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKi8pIHsgfQorI2VuZGlmCisK
ICAgICAvLyBDYWxsZWQgZm9yIHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gdXBkYXRlcy4KLSAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdO
b2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9zaXRpb24qLywgYm9vbCAvKnJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50
JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xs
Ki8sIGJvb2wgLyp3aXRoQW5pbWF0aW9uKi8gPSBmYWxzZSkgeyB9CiAKICAgICAvLyBEZWxlZ2F0
ZWQgc2Nyb2xsaW5nL3pvb21pbmcgaGFzIGNhdXNlZCB0aGUgdmlld3BvcnQgdG8gY2hhbmdlLCBz
byB1cGRhdGUgdmlld3BvcnQtY29uc3RyYWluZWQgbGF5ZXJzCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBtYWluRnJhbWVWaWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGF5
b3V0Vmlld3BvcnQsIGRvdWJsZSBzY2FsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXgg
NzNkY2EyOGVmMS4uMTdjN2YyYThmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMTA3
LDggKzEwNywxMiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTgogdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0
YXRlTm9kZSYgc3RhdGVOb2RlKQogewogICAgIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZSYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlPihzdGF0ZU5vZGUpOworICAgIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlOworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgd2l0aEFuaW1hdGlvbiA9IHNjcm9sbGluZ1N0YXRl
Tm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKTsKKyNlbmRpZgogICAg
IGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKQotICAgICAgICBzY3JvbGxp
bmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChzY3JvbGxpbmdOb2RlSUQo
KSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbGlu
Z1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwoKSk7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpLCB3aXRoQW5pbWF0aW9uKTsKIAogICAg
IG1faXNGaXJzdENvbW1pdCA9IGZhbHNlOwogfQpAQCAtMTU3LDIxICsxNjEsNDEgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0
YSwgU2Nyb2xsUG9zaXRpb24KICAgICBzY3JvbGxUbyhjdXJyZW50U2Nyb2xsUG9zaXRpb24oKSAr
IGRlbHRhLCBTY3JvbGxUeXBlOjpVc2VyLCBjbGFtcCk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXApCit2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
biwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wLCBib29s
IG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24pCiB7Ci0gICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVu
dFNjcm9sbFBvc2l0aW9uKQorICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3Np
dGlvbikgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIC8vIFNlbmQgdGhlIHNj
cm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIGlmIChyZXF1ZXN0QW5p
bWF0ZWRTY3JvbGwoKSAmJiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQorICAgICAgICAgICAgc2Ny
b2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzLCBTY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9s
bGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKHNjcm9sbGlu
Z05vZGVJRCgpLCBmYWxzZSk7CisgICAgICAgIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChmYWxz
ZSk7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0obmVlZFN5bmNTY3JvbGxQb3NpdGlvbik7
CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgLy8gSWYgZHVyaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgbmVlZCB0byBzdG9wIGl0
IGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuCisgICAgaWYgKHNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MoKSkKKyAgICAgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbih0cnVl
KTsKKyNlbmRpZgogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGlj
U2Nyb2xsKHNjcm9sbFR5cGUgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKLSAgICAKKwog
ICAgIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uID0gYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihwb3Np
dGlvbiwgY2xhbXApOwotICAgIAorCiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3Ry
ZWFtIDw8ICJTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSAiIDw8IHNjcm9sbGluZ05vZGVJRCgp
IDw8ICIgc2Nyb2xsVG8gIiA8PCBwb3NpdGlvbiA8PCAiIChkZWx0YSBmcm9tIGxhc3QgY29tbWl0
dGVkIHBvc2l0aW9uICIgPDwgKG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uIC0gbV9jdXJy
ZW50U2Nyb2xsUG9zaXRpb24pIDw8ICIpIik7CiAKICAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJl
bnRTY3JvbGxQb3NpdGlvbigpOwogICAgIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKTsK
IAogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKGZh
bHNlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc2V0TmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbihmYWxzZSk7CisgICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGZh
bHNlKTsKKyNlbmRpZgogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJy
ZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKQEAgLTE3OSw2ICsyMDMsMTAgQEAgdm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiAg
ICAgcmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpOwogICAgIHJlcG9zaXRpb25SZWxhdGVkTGF5
ZXJzKCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghcmVxdWVzdEFuaW1h
dGVkU2Nyb2xsKCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIHNjcm9sbGluZ1RyZWUo
KS5ub3RpZnlSZWxhdGVkTm9kZXNBZnRlclNjcm9sbFBvc2l0aW9uQ2hhbmdlKCp0aGlzKTsKICAg
ICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMpOwogfQpA
QCAtMjY2LDYgKzI5NCwzNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpkdW1w
UHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcgogICAgIHRzLmR1bXBQ
cm9wZXJ0eSgic2Nyb2xsYWJsZSBhcmVhIHBhcmFtZXRlcnMiLCBtX3Njcm9sbGFibGVBcmVhUGFy
YW1ldGVycyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wgYW5pbWF0ZWQp
Cit7CisgICAgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgPSBhbmltYXRlZDsKK30KKworYm9vbCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGw7Cit9CisKK3ZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9vbCBp
blByb2dyZXNzKQoreworICAgIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGluUHJvZ3Jl
c3M7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3M7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3Rv
cEN1cnJlbnRTY3JvbGxBbmltYXRpb24oYm9vbCBzdG9wKQoreworICAgIG1fbmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbiA9IHN0b3A7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdAoreworICAg
IHJldHVybiBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb247Cit9CisjZW5kaWYKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCA0Y2JmNGQxYWYwLi5mOWYzMTBkYjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIEZsb2F0U2l6ZSBz
Y3JvbGxEZWx0YVNpbmNlTGFzdENvbW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFNjcm9s
bFBvc2l0aW9uIC0gbV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb247IH0KIAogICAgIC8vIFRo
ZXNlIGFyZSBpbXBlcmF0aXZlOyB0aGV5IGFkanVzdCB0aGUgc2Nyb2xsaW5nIGxheWVycy4KLSAg
ICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlw
ZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29u
dGVudEVkZ2VzKTsKKyAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxU
eXBlID0gU2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0
aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzLCBib29sIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24gPSBm
YWxzZSk7CiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmLCBTY3JvbGxQb3NpdGlv
bkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOwogCiAgICAgdm9p
ZCB3YXNTY3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0
aW9uLCBPcHRpb25hbDxGbG9hdFJlY3Q+IG92ZXJyaWRlTGF5b3V0Vmlld3BvcnQgPSB7IH0sIFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
OjpTeW5jKTsKQEAgLTkxLDYgKzkxLDE1IEBAIHB1YmxpYzoKICAgICBjb25zdCBMYXllclJlcHJl
c2VudGF0aW9uJiBzY3JvbGxDb250YWluZXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xs
Q29udGFpbmVyTGF5ZXI7IH0KICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxl
ZENvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsg
fQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNldFJlcXVlc3RBbmltYXRl
ZFNjcm9sbChib29sKTsKKyAgICBib29sIHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sKTsKKyAgICBib29sIHNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSBjb25zdDsKKyAgICB2b2lkIHNldE5lZWRzU3RvcEN1
cnJlbnRTY3JvbGxBbmltYXRpb24oYm9vbCk7CisgICAgYm9vbCBuZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uKCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Ny
b2xsaW5nTm9kZUlEKTsKIApAQCAtMTQ4LDYgKzE1NywxMiBAQCBwcml2YXRlOgogICAgIFNjcm9s
bGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKICAgICBib29s
IG1faXNGaXJzdENvbW1pdCB7IHRydWUgfTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgYm9vbCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9uZWVkc1N0b3BD
dXJyZW50U2Nyb2xsQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgTGF5ZXJSZXBy
ZXNlbnRhdGlvbiBtX3Njcm9sbENvbnRhaW5lckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRp
b24gbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKaW5kZXggZjQ1N2IxNTYxZS4uZjZkMzU2NjVmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC01NCwxMSArNTQsMTkgQEAgZW51bSBjbGFzcyBTY3JvbGxQ
b3NpdGlvbkNsYW1wIDogdWludDhfdCB7CiAgICAgVG9Db250ZW50RWRnZXMsCiB9OwogCi0vLyBG
SVhNRTogQWRkIGFub3RoZXIgc3RhdHVzIEluTmF0aXZlQW5pbWF0aW9uIHRvIGluZGljYXRlIG5h
dGl2ZSBzY3JvbGxpbmcgaXMgaW4gcHJvZ3Jlc3MuCi0vLyBTZWU6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvclR5cGUg
OiB1aW50OF90IHsKKyAgICBJbnN0YW50LAorICAgIFNtb290aCwKK307CisjZW5kaWYKKwogZW51
bSBjbGFzcyBTY3JvbGxCZWhhdmlvclN0YXR1cyA6IHVpbnQ4X3QgewogICAgIE5vdEluQW5pbWF0
aW9uLAogICAgIEluTm9uTmF0aXZlQW5pbWF0aW9uLAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgSW5OYXRpdmVBbmltYXRpb24sCisjZW5k
aWYKIH07CiAKIGlubGluZSBTY3JvbGxEaXJlY3Rpb24gbG9naWNhbFRvUGh5c2ljYWwoU2Nyb2xs
TG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgaXNWZXJ0aWNhbCwgYm9vbCBpc0ZsaXBw
ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDhlNmIwYzY1MzUu
LjFkMmMzMmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00
NjUsNiArNDY1LDEwIEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sLyoKIHsKICAgICBMT0dfV0lUSF9T
VFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
ICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNj
cm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlmIChwcm9oaWJpdHNT
Y3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggYThiNjAzN2ZiYy4uMTUwNzA0YzJkMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNzEsNiArNzEsOSBAQCBT
Y3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEoKQogICAgICwgbV9zY3JvbGxPcmlnaW5DaGFu
Z2VkKGZhbHNlKQogICAgICwgbV9jdXJyZW50U2Nyb2xsVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oU2Nyb2xsVHlwZTo6VXNlcikpCiAgICAgLCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0
YXRlKGZhbHNlKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JP
TExJTkcpCisgICAgLCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCkpCisjZW5kaWYKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggN2Q5NzkwNzE4NS4uNTU2
NzJmODFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0y
NDYsNiArMjQ2LDExIEBAIHB1YmxpYzoKICAgICBTY3JvbGxUeXBlIGN1cnJlbnRTY3JvbGxUeXBl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsVHlwZT4obV9jdXJyZW50U2Nyb2xs
VHlwZSk7IH0KICAgICB2b2lkIHNldEN1cnJlbnRTY3JvbGxUeXBlKFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSkgeyBtX2N1cnJlbnRTY3JvbGxUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcm9s
bFR5cGUpOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQorICAgIFNjcm9sbEJlaGF2aW9yVHlwZSBjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsQmVoYXZpb3JUeXBlPihtX2N1cnJl
bnRTY3JvbGxCZWhhdmlvclR5cGUpOyB9CisgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsQmVoYXZp
b3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZSBzY3JvbGxCZWhhdmlvclR5cGUpIHsgbV9jdXJyZW50
U2Nyb2xsQmVoYXZpb3JUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcm9sbEJlaGF2aW9y
VHlwZSk7IH0KKyNlbmRpZgorCiAgICAgYm9vbCBzY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGU7IH0KICAg
ICB2b2lkIHNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKGJvb2wgc2hvdWxkQ2xlYXIp
IHsgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSA9IHNob3VsZENsZWFyOyB9CiAKQEAg
LTQwOSw2ICs0MTQsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hh
bmdlZCA6IDE7CiAgICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9s
bFR5cGUKICAgICB1bnNpZ25lZCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAg
IHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCmluZGV4IGNlYTBkOTE2YTYuLjYxM2E2YWZhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjYwMiwxMiArMjYwMiwyNCBAQCBTY3JvbGxPZmZz
ZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Ny
b2xsT2Zmc2V0KSBjbwogCiB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBT
Y3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxD
bGFtcGluZyBjbGFtcGluZykKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xs
QmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRpZgorCiAgICAgaWYgKGN1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1h
dGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CiAKICAg
ICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9s
bE9mZnNldDsKLSAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZz
ZXQoKSkKKyAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQo
KSkgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
CisgICAgICAgIC8vIElmIFVJU2Nyb2xsVmlldyBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1h
dGlvbiwgdGhlIHNjcm9sbCBvZmZzZXQgb2YgdGhlIFdlYiBwcm9jZXNzIG1pZ2h0IGJlIG92ZXJy
aWRkZW4uCisgICAgICAgIC8vIFNvIHdlIG5lZWQgdG8gY2FsbCByZXF1ZXN0U2Nyb2xsUG9zaXRp
b25VcGRhdGUgaGVyZSBhbmQgbGV0IGl0IGJlIGNoZWNrZWQgb24gdGhlIFVJIHByb2Nlc3MuCisg
ICAgICAgIC8vIElmIHRoZSBzY3JvbGwgb2Zmc2V0IG9uIHRoZSBVSSBwcm9jZXNzIGlzIGRpZmZl
cmVudCwgdGhlIGNvcnJlY3Qgc2Nyb2xsIG9mZnNldCBuZWVkcyB0byBzeW5jIGJhY2sgdG8gdGhl
IFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkg
PT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICAgICAg
cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFt
cGVkU2Nyb2xsT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAg
IGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRD
dXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKQEAgLTI2MzksNiArMjY1MSwxNCBAQCB2b2lk
IFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zm
c2V0JiBvZmZzZXQsIFNjcm9sbAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVu
dFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKIAor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAg
c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7
CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21P
ZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNT
Y3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgU2Nyb2xs
T2Zmc2V0IG5ld1Njcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkID8gY2xhbXBTY3JvbGxPZmZzZXQob2Zmc2V0KSA6IG9mZnNldDsKICAgICBpZiAoY3VycmVu
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0
aXZlQW5pbWF0aW9uKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZDQzNTVjYjAwZC4uYjI4YWE0ZDBjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1OSBAQAorMjAxOS0xMi0xMSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0
aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcgYXMgYW4g
ZXhwZXJpbWVudGFsIGZlYXR1cmUuIE9uIGlvcyBwbGF0Zm9ybSwgdXNlIG5hdGl2ZSBhbmltYXRl
ZCBzY3JvbGxpbmcKKyAgICAgICAgaW50ZXJmYWNlcyB0byBwZXJmb3JtYW5jZSBzbW9vdGggc2Ny
b2xsIGFuZCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorCisg
ICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29k
ZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46
OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAocG9pbnRzRXF1YWxJblJvdW5kVG9EZXZp
Y2VQaXhlbCk6IEhlbHAgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdHdvIGZsb2F0IHBvaW50cyBhcmUg
bm90IGVxdWFsIGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwuCisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsT3JpZ2luOmFuaW1hdGVk
Ol0pOiBBZGQgYW5pbWF0ZWQgZmxhZyB0byBzdGFydCBhIGFuaW1hdGVkIHNjcm9sbCBpZiBuZWVk
ZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0
aW9uOl0pOiBTZW5kIHNyb2xsIGVuZCBtZXNzYWdlIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmln
aW46XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJ
bnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnQ6OnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKTogUHJvdmlkZSBp
bnRlcmZhY2UgZm9yIGFuaW1hdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJl
ZSk6IEFkZCBhbmltYXRlZCBmbGFnLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKTogU3luYyB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJl
ZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhbmltYXRlZCBzY3JvbGxpbmcgaW5mbyB0byBtX3Jl
cXVlc3RlZFNjcm9sbEluZm8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNz
RGlkQ2hhbmdlKTogU3luYyBzY3JvbGxBbmltYXRpb25JblByb2dyZXNzIHRvIHRoZSBXZWIgcHJv
Y2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdl
KTogRGl0dG8uIEl0J3Mgc3BlY2lmaWMgdG8gdGhlIHJvb3Qgbm9kZS4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVl
Tm9kZURpZFNjcm9sbCk6IEFkZCBhbmltYXRlZCBpbmZvLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2Rl
SXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogRGl0dG8uCisgICAgICAgICog
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9z
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06CisgICAgICAgICgtW1dL
U2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5n
QW5pbWF0aW9uOl0pOiBTZW5kIHNjb2xsIGVuZCBpbmZvIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAg
ICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29t
bWl0U3RhdGVBZnRlckNoaWxkcmVuKTogSWYgdGhlIHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgV2Vi
IHByb2Nlc3MgaXNuJ3QgZXF1YWwgdG8gdGhlIFVJIHByb2Nlc3MsCisgICAgICAgIHRoZSBzY3Jv
bGwgcG9zaXRpb24gc2hvdWxkIGJlIHN5bmNocm9uaXplZCwgZXZlbiB0aGVyZSdzIG5vIHNjcm9s
bGluZyBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXll
cnMpOiBDYWxsaW5nIHRoZSBuYXRpdmUgYW5pbWF0ZWQgc2Nyb2xsaW5nIGludGVyZmFjZSBmb3Ig
c21vb3RoIHNjcm9sbC4KKyAgICAgICAgSWYgdGhlcmUncyBhIHNjcm9sbCBhbmltYXRpb24gcGVy
Zm9ybWluZywgaXQgc2hvdWxkIGJlIHN0b3BwZWQgZmlyc3QsIHRoZW4gc3RhcnQgYSBuZXcgc2Ny
b2xsaW5nLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uKTogU3luYyBzY3JvbGwg
ZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwp
OiBUbyBjYWxsIGRpZmZlcmVudCBmdW5jdGlvbnMgZm9yIHNtb290aCBhbmQgaW5zdGFudCBzY3Jv
bGwuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVx
dWVzdFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Ny
b2xsV2l0aEFuaW1hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9k
ZSk6CisKIDIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgog
CiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4
IGQ3YjFlMTkzNzIuLjg3N2QyOWEzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKQEAgLTE1Miw2ICsxNTIsOSBAQCB2b2lkIEFy
Z3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0CiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMsIHNjcm9sbGFibGVBcmVhUGFyYW1l
dGVycykKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pCiAg
ICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFNDUk9MTElO
R19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisjZW5kaWYK
IAogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuc2Nyb2xsQ29udGFpbmVy
TGF5ZXIoKSk7CkBAIC0yNjAsNyArMjYzLDEyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsCiAg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9s
bCk7CisgICAgICAgIGJvb2wgc2Nyb2xsV2l0aEFuaW1hdGlvbiA9IGZhbHNlOworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Nyb2xsV2l0aEFu
aW1hdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgbm9k
ZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xsV2l0aEFuaW1hdGlvbik7CiAgICAgfQogCiAgICAgaWYg
KG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Ny
b2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjE2LDkgQEAgc3RhdGljIHZvaWQgZHVt
cChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2Rl
LCBib29sIGMKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKSkgewogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9z
aXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB0cy5kdW1w
UHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0aWMiLCBub2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVl
c3RlZC1zY3JvbGwtcG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICghY2hh
bmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMzM1NGFjNmVlYy4uMTA4
ZTRjMDNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC0xNjE3LDYgKzE2MTcsMTEgQEAgc3RhdGljIGlubGluZSBib29sIHBvaW50c0Vx
dWFsSW5EZXZpY2VQaXhlbHMoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVMKICAg
ICAgICAgJiYgZmFicyhhLnkgKiBkZXZpY2VTY2FsZUZhY3RvciAtIGIueSAqIGRldmljZVNjYWxl
RmFjdG9yKSA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCk7CiB9CiAKK3N0
YXRpYyBpbmxpbmUgYm9vbCBwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKENHUG9pbnQg
YSwgQ0dQb2ludCBiLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICByZXR1cm4gQ0dS
b3VuZChhLnggKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChiLnggKiBkZXZpY2VTY2Fs
ZUZhY3RvcikKKyAgICAgICAgJiYgQ0dSb3VuZChhLnkgKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0g
Q0dSb3VuZChiLnkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CiBzdGF0aWMgQ0dTaXplIHJvdW5k
U2Nyb2xsVmlld0NvbnRlbnRTaXplKGNvbnN0IFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBD
R1NpemUgY29udGVudFNpemUpCiB7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBwYWdl
LmRldmljZVNjYWxlRmFjdG9yKCk7CkBAIC0yMzQxLDkgKzIzNDYsMTAgQEAgc3RhdGljIFdlYkNv
cmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50
IGNvbnRlbnRPZmYKICAgICByZXR1cm4gY29udGVudE9mZnNldC5jb25zdHJhaW5lZEJldHdlZW4o
V2ViQ29yZTo6RmxvYXRQb2ludCgpLCBXZWJDb3JlOjpGbG9hdFBvaW50KG1heGltdW1Db250ZW50
T2Zmc2V0KSk7CiB9CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihX
ZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6
SW50UG9pbnQpc2Nyb2xsT3JpZ2luCistICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3Np
dGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdl
YkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDooQk9PTClhbmltYXRlZAogewot
ICAgIGlmIChfY29tbWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uIHx8IF9keW5hbWljVmlld3Bv
cnRVcGRhdGVNb2RlICE9IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVz
aXppbmcpCisgICAgLy8gQW5pbWF0ZWQgc2Nyb2xsaW5nIHNob3VsZG4ndCBiZSBza2lwcGVkLgor
ICAgIGlmICghYW5pbWF0ZWQgJiYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwg
X2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRh
dGVNb2RlOjpOb3RSZXNpemluZykpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkNvcmU6OkZs
b2F0UG9pbnQgY29udGVudE9mZnNldCA9IFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxP
ZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHRvRmxvYXRTaXplKHNjcm9sbE9yaWdp
bikpOwpAQCAtMjM1NywxMyArMjM2MywyMSBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBj
b25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogCiAg
ICAgW19zY3JvbGxWaWV3IF9zdG9wU2Nyb2xsaW5nQW5kWm9vbWluZ0FuaW1hdGlvbnNdOwogCi0g
ICAgaWYgKCFDR1BvaW50RXF1YWxUb1BvaW50KGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29y
ZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdKSkKLSAgICAgICAgW19zY3JvbGxW
aWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
XTsKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhleSBhcmUgbm90IGVxdWFsLCBidXQgaW4g
dGhlIHNhbWUgZGV2aWNlIHBpeGVsLCBzbyBfc2Nyb2xsVmlldyB3b24ndCBjaGFuZ2UuCisgICAg
Ly8gV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIHJvdW5kIHRvIGRldmljZSBwaXhlbCBoZXJlLgor
ICAgIGlmICghcG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbChjb250ZW50T2Zmc2V0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFtfc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XSwgX3BhZ2Ut
PmRldmljZVNjYWxlRmFjdG9yKCkpKQorICAgICAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudE9m
ZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMgYW5pbWF0ZWQ6YW5pbWF0
ZWRdOwogICAgIGVsc2UgewogICAgICAgICAvLyBJZiB3ZSBoYXZlbid0IGNoYW5nZWQgYW55dGhp
bmcsIHRoZXJlIHdvdWxkIG5vdCBiZSBhbnkgVmlzaWJsZUNvbnRlbnRSZWN0IHVwZGF0ZSBzZW50
IHRvIHRoZSBjb250ZW50LgogICAgICAgICAvLyBUaGUgV2ViUHJvY2VzcyB3b3VsZCBrZWVwIHRo
ZSBpbnZhbGlkIGNvbnRlbnRPZmZzZXQgYXMgaXRzIHNjcm9sbCBwb3NpdGlvbi4KICAgICAgICAg
Ly8gVG8gc3luY2hyb25pemUgdGhlIFdlYlByb2Nlc3Mgd2l0aCB3aGF0IGlzIG9uIHNjcmVlbiwg
d2Ugc2VuZCB0aGUgVmlzaWJsZUNvbnRlbnRSZWN0IGFnYWluLgogICAgICAgICBfcGFnZS0+cmVz
ZW5kTGFzdFZpc2libGVDb250ZW50UmVjdHMoKTsKKyAgICAgICAgLy8gSWYgX3Njcm9sbFZpZXcg
d29uJ3QgY2hhbmdlLCB3ZSBzdGlsbCBuZWVkIHRvIHRlbGwgdGhlIFdlYiBwcm9jZXNzIHRoYXQg
dGhlIGFuaW1hdGlvbiBzdG9wcGVkLgorICAgICAgICBpZiAoYW5pbWF0ZWQpIHsKKyAgICAgICAg
ICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSogY29vcmRpbmF0b3Ig
PSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOworICAgICAgICAgICAgaWYgKGNv
b3JkaW5hdG9yKQorICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9v
dE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOworICAgICAg
ICB9CiAgICAgfQogfQogCkBAIC0yODc5LDYgKzI4OTMsMTAgQEAgc3RhdGljIFdlYkNvcmU6OkZs
b2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRl
bnRPZmYKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjooVUlTY3Jv
bGxWaWV3ICopc2Nyb2xsVmlldwogewogICAgIFtzZWxmIF9kaWRGaW5pc2hTY3JvbGxpbmddOwor
CisgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRv
ciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgaWYgKGNvb3JkaW5h
dG9yKQorICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsKIH0KIAogLSAodm9pZClfc2Nyb2xs
Vmlld0RpZEludGVycnVwdERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0lu
dGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaAppbmRleCA0MzUwODBmMzI0Li41Y2I1ZjU4MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaApAQCAtOTcs
NyArOTcsNyBAQCBzdHJ1Y3QgUHJpbnRJbmZvOwogCiAtIChSZWZQdHI8V2ViS2l0OjpWaWV3U25h
cHNob3Q+KV90YWtlVmlld1NuYXBzaG90OwogCi0tICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3Jv
bGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmln
aW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbjsKKy0gKHZvaWQpX3Njcm9sbFRvQ29u
dGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNj
cm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09M
KWFuaW1hdGVkOwogLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3JlOjpGbG9hdFJlY3QpdGFy
Z2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIG1pbmltdW1TY3JvbGxE
aXN0YW5jZTooZmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNlOwogLSAoZG91YmxlKV9pbml0aWFs
U2NhbGVGYWN0b3I7CiAtIChkb3VibGUpX2NvbnRlbnRab29tU2NhbGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZTg0ODI0ZmQ4NS4uZGUzZDMzNjc5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTgxLDYgKzE4MSw4IEBAIHB1YmxpYzoKICAg
ICAvLyBUZWxsIHRoZSB2aWV3IHRvIHNjcm9sbCB0byB0aGUgZ2l2ZW4gcG9zaXRpb24sIGFuZCB3
aGV0aGVyIHRoaXMgd2FzIGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4KICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgPSAwOwogCisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2lu
KSB7IH0KKwogICAgIC8vIFJldHVybiB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gKG5vdCBu
ZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgV2ViQ29yZSBzY3JvbGwgcG9zaXRpb24sIGJlY2F1
c2Ugb2Ygc2NhbGluZywgaW5zZXRzIGV0Yy4pCiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFBv
aW50IHZpZXdTY3JvbGxQb3NpdGlvbigpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCAzODBmMTI0NDQzLi4wYTQyZjk0NDk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAt
MjI0LDggKzIyNCwxNCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNv
bW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFucwogCiAgICAgLy8gSGFuZGxl
IHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gdXBkYXRlcyBmcm9tIHRoZSBzY3JvbGxpbmcgdHJl
ZSB0cmFuc2FjdGlvbiBhZnRlciBkaWRDb21taXRMYXllclRyZWUoKQogICAgIC8vIGhhcyB1cGRh
dGVkIHRoZSB2aWV3IHNpemUgYmFzZWQgb24gdGhlIGNvbnRlbnQgc2l6ZS4KLSAgICBpZiAocmVx
dWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlKQotICAgICAgICBt
X3dlYlBhZ2VQcm94eS5yZXF1ZXN0U2Nyb2xsKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb24sIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbE9yaWdpbigpKTsKKyAg
ICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlKSB7
CisgICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xsSW5m
by5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbgorICAgICAgICAgICAgLCBsYXllclRyZWVUcmFuc2Fj
dGlvbi5zY3JvbGxPcmlnaW4oKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgICAg
ICAsIHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdFdpdGhBbmltYXRpb24KKyNlbmRpZgorICAg
ICAgICAgICAgKTsKKyAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIAog
ICAgIGlmIChtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDQ4MjNmNzZhOTcuLjhj
ZjFkODRhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eS5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OgogfQog
CiAvLyBUaGlzIGNvbWVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlLgotdm9pZCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxp
bmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0
aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikK
K3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVE
aWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50
JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZp
ZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCiB7CiAg
ICAgLy8gU2Nyb2xsIHVwZGF0ZXMgZm9yIHRoZSBtYWluIGZyYW1lIGFyZSBzZW50IHZpYSBXZWJQ
YWdlUHJveHk6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoKQogICAgIC8vIHNvIGRvbid0IHNl
bmQgdGhlbSBoZXJlLgpAQCAtMjIyLDIxICsyMjIsMzYgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2Rl
SUQKICAgICBtX3dlYlBhZ2VQcm94eS5zY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RpZFNjcm9sbCgp
OwogI2VuZGlmCiAKLSAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1h
dGljU2Nyb2xsKCkpCisgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1t
YXRpY1Njcm9sbCgpICYmICFpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OlNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoc2Nyb2xsZWROb2Rl
SUQsIG5ld1Njcm9sbFBvc2l0aW9uLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID09IFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpKTsKIH0KIAotdm9pZCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNj
cm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKK3ZvaWQgUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChT
Y3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFuaW1h
dGlvbikKIHsKICAgICBpZiAoc2Nyb2xsZWROb2RlSUQgPT0gcm9vdFNjcm9sbGluZ05vZGVJRCgp
ICYmIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbykgewogICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbElu
Zm8tPnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgPSB0cnVlOwogICAgICAgICBtX3JlcXVl
c3RlZFNjcm9sbEluZm8tPnJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGw7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgbV9y
ZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0V2l0aEFuaW1hdGlvbiA9IHdpdGhBbmltYXRpb247
CisjZW5kaWYKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwogICAgIH0KIH0KIAorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1Ry
ZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9s
bGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShzY3Jv
bGxlZE5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKSk7Cit9CisKK3ZvaWQgUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUo
cm9vdFNjcm9sbGluZ05vZGVJRCgpLCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsKK30K
KyNlbmRpZgorCiBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xs
aW5nVHJlZUFzVGV4dCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhNzY5NDNm
MjQuLjgxMTVlNDc3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuaApAQCAtNTUsOSArNTUsMTQgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5Jik7CiAgICAgdmlydHVhbCB+
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKTsKKyNlbmRpZgorCiAgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJvY2VzcyB0aGF0IHRoZSBz
Y3JvbGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlKQot
ICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3Qg
T3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJD
b3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLSAgICB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9z
aXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9y
dE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0
YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IGZhbHNlKTsKKyAgICB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSk7CiAKICAgICBXZWJDb3JlOjpU
cmFja2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3RyaW5nJiBl
dmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKIApAQCAtODAsNiArODUsOSBAQCBw
dWJsaWM6CiAgICAgc3RydWN0IFJlcXVlc3RlZFNjcm9sbEluZm8gewogICAgICAgICBib29sIHJl
cXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgeyB9OwogICAgICAgICBib29sIHJlcXVlc3RJc1By
b2dyYW1tYXRpY1Njcm9sbCB7IH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAg
Ym9vbCByZXF1ZXN0V2l0aEFuaW1hdGlvbiB7IH07CisjZW5kaWYKICAgICAgICAgV2ViQ29yZTo6
RmxvYXRQb2ludCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICB9OwogICAgIHZvaWQgY29t
bWl0U2Nyb2xsaW5nVHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJh
bnNhY3Rpb24mLCBSZXF1ZXN0ZWRTY3JvbGxJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJl
ZS5jcHAKaW5kZXggYWZhYmJjMWVhZS4uZDU3M2EzMWYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdUcmVlLmNwcApAQCAtMTA0LDEyICsxMDQsMTYgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVl
OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYK
ICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkpCiAgICAg
ICAgIGxheW91dFZpZXdwb3J0T3JpZ2luID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZT4obm9kZSkubGF5b3V0Vmlld3BvcnQoKS5sb2NhdGlvbigpOwogCi0gICAgbV9z
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUu
c2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZp
ZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyAgICBib29sIGlu
c3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IG5vZGUubmVlZHNTdG9w
Q3VycmVudFNjcm9sbEFuaW1hdGlvbigpICYmICFub2RlLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgp
OworI2VuZGlmCisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVO
b2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBv
c2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uLCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbik7CiB9CiAKLXZvaWQgUmVtb3RlU2Ny
b2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxp
bmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwsIGJvb2wgd2l0aEFuaW1hdGlvbikKIHsKLSAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBvc2l0aW9u
LCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBv
c2l0aW9uLCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCB3aXRoQW5pbWF0aW9uKTsKIH0K
IAogUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3Jv
bGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCkKQEAgLTE0Myw2ICsxNDcsMTMgQEAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1v
dGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2QKICAg
ICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwog
fQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6
c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MpCit7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVO
b2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGVJRCwgaXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKTsKK30KKyNlbmRpZgorCiB2b2lkIFJlbW90ZVNjcm9sbGluZ1Ry
ZWU6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKQogewogICAgIG1fc2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShu
b2RlSUQsIGhvcml6b250YWwsIHZlcnRpY2FsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCmlu
ZGV4IDIzYmFjMDZhM2IuLjBmOWUwOTQ5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaApA
QCAtNTIsNyArNTIsMTEgQEAgcHVibGljOgogICAgIGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkmIHNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKSBjb25zdCB7IHJldHVybiBt
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7IH0KIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5v
ZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBXZWJDb3Jl
OjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbjo6U3luYykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xs
KFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRo
QW5pbWF0aW9uID0gZmFsc2UpIG92ZXJyaWRlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlk
Q2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJ
bmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpv
bnRhbCwgdW5zaWduZWQgdmVydGljYWwpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCmluZGV4IGU2
MzdkNjE1MzIuLjAwYjRkYmNkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlP
Uy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNjcm9sbERpZEVuZCgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsVmll
d1dpbGxTdGFydFBhbkdlc3R1cmUoKSBjb25zdDsKICAgICB2b2lkIHNjcm9sbFZpZXdEaWRTY3Jv
bGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsT2Zmc2V0LCBib29sIGluVXNlcklu
dGVyYWN0aW9uKTsKKyAgICB2b2lkIHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24o
KTsKIAogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5zaWduZWQg
aG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0OwogICAgIENBTGF5ZXIgKnNjcm9s
bExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxMYXllci5nZXQoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Lm1tCmluZGV4IGU3Njg5ODM3NTguLjg0ODg2M2E4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAgLTE1
Miw2ICsxNTIsMTEgQEAKICAgICB9CiB9CiAKKy0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFNjcm9s
bGluZ0FuaW1hdGlvbjooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldworeworICAgIF9zY3JvbGxp
bmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uKCk7
Cit9CisKICNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCiAtIChDR1BvaW50KV9zY3JvbGxWaWV3
OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihDR1Bv
aW50KW9mZnNldCB0cmFuc2xhdGlvbjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFydFBvaW50OihD
R1BvaW50KXN0YXJ0IGxvY2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGhvcml6
b250YWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0eTooaW5vdXQg
ZG91YmxlICopdnYKIHsKQEAgLTMwMCwxNSArMzA1LDM2IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNj
cm9sCiAKICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAg
ICAgICBhdXRvIHNjcm9sbFR5cGUgPSBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgPyBTY3JvbGxUeXBlOjpQcm9n
cmFtbWF0aWMgOiBTY3JvbGxUeXBlOjpVc2VyOwotICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2Ny
b2xsVG8oc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCksIHNjcm9s
bFR5cGUpOworICAgICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uV2l0aEFuaW1hdGlvbigpKQorICAgICAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFJl
cXVlc3RBbmltYXRlZFNjcm9sbCh0cnVlKTsKKyAgICAgICAgLy8gSWYgdGhlIHNjcm9sbCBwb3Np
dGlvbnMgYXJlIG5vdCB0aGUgc2FtZSwgdGhlcmUncyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhlIHNj
cm9sbCBvZmZzZXQgZnJvbSB0aGUgV2ViIHByb2Nlc3MgaGFzIGJlZW4gb3ZlcnJpZGRlbi4KKyAg
ICAgICAgLy8gSW4gdGhpcyBjYXNlLCB0aGUgc2Nyb2xsIHBvc2l0aW9uIG5lZWQgdG8gYmUgc2Vu
dCB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIGJvb2wgc2hvdWxkU3luY1Njcm9sbFBvc2l0
aW9uID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbFBvc2l0aW9uKCkgIT0gc2Nyb2xsaW5nTm9k
ZSgpLmN1cnJlbnRTY3JvbGxQb3NpdGlvbigpOworICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2Ny
b2xsVG8oc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCksIHNjcm9s
bFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzLCBzaG91bGRTeW5jU2Ny
b2xsUG9zaXRpb24pOwogICAgIH0KIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TOjpyZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkKIHsKLSAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6
c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07Ci0gICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUworICAgIGJvb2wgYW5pbWF0aW9uSW5Qcm9ncmVzcyA9IHNjcm9sbGluZ05v
ZGUoKS5zY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCk7CisgICAgYm9vbCBuZWVkVG9TdG9wQW5p
bWF0aW9uID0gc2Nyb2xsaW5nTm9kZSgpLm5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24o
KTsKKyAgICBpZiAobmVlZFRvU3RvcEFuaW1hdGlvbiAmJiBhbmltYXRpb25JblByb2dyZXNzKSB7
CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmll
dygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsVmlldygpLmNvbnRlbnRPZmZzZXQgYW5pbWF0ZWQ6
Tk9dOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgfQorCisgICAgaWYg
KHNjcm9sbGluZ05vZGUoKS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSkgeworICAgICAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXcoKSBzZXRDb250ZW50
T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCkgYW5pbWF0ZWQ6WUVT
XTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworCisgICAgICAgIHNjcm9sbGlu
Z05vZGUoKS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKHRydWUpOworICAgIH0gZWxzZSBp
ZiAoIWFuaW1hdGlvbkluUHJvZ3Jlc3MgfHwgbmVlZFRvU3RvcEFuaW1hdGlvbikgeworICAgICAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXcoKSBzZXRD
b250ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOworICAg
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgfQogfQogCiB2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFdpbGxTdGFydCgpIGNvbnN0CkBA
IC0zMzUsNiArMzYxLDE1IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUzo6c2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBGbG9hdFBvaW50CiAgICAgc2Nyb2xsaW5n
Tm9kZSgpLndhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmcoc2Nyb2xsUG9zaXRpb24sIHsg
fSwgaW5Vc2VySW50ZXJhY3Rpb24gPyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5j
IDogU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIH0KIAordm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5n
QW5pbWF0aW9uKCkKK3sKKyAgICBhdXRvJiBub2RlID0gc2Nyb2xsaW5nTm9kZSgpOworICAgIGlm
ICghKG5vZGUucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgJiYgbm9kZS5zY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKCkpKSB7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9k
ZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShub2RlLnNjcm9sbGluZ05vZGVJ
RCgpLCBmYWxzZSk7CisgICAgICAgIG5vZGUuc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhm
YWxzZSk7CisgICAgfQorfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1M6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKHVuc2lnbmVkIGhvcml6b250
YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBjb25zdAogewogICAgIGlmIChtX3VwZGF0aW5nRnJvbVN0
YXRlTm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGRi
MmNlMDc5Y2EuLmQwOWY2MDdhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMTc2Nyw5ICsxNzY3LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3
TmVlZHNEaXNwbGF5KGNvbnN0IFJlZ2lvbiYgcmVnaW9uKQogICAgIHBhZ2VDbGllbnQoKS5zZXRW
aWV3TmVlZHNEaXNwbGF5KHJlZ2lvbik7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0
U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYg
c2Nyb2xsT3JpZ2luKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4sIGNv
bnN0IGJvb2wgd2l0aEFuaW1hdGlvbikKIHsKLSAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9s
bChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBpZiAod2l0aEFuaW1hdGlvbikK
KyAgICAgICAgcGFnZUNsaWVudCgpLnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKHNjcm9sbFBv
c2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGVsc2UKKyAgICAgICAgcGFnZUNsaWVudCgpLnJl
cXVlc3RTY3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CiB9CiAKIFdlYkNvcmU6
OkZsb2F0UG9pbnQgV2ViUGFnZVByb3h5Ojp2aWV3U2Nyb2xsUG9zaXRpb24oKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhZTM4NTIyMjFkLi5hZjA3ZWE0
OTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjEzLDcgKzYx
Myw3IEBAIHB1YmxpYzoKICAgICBQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KCkgY29uc3Q7CiAKICAg
ICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJik7Ci0gICAg
dm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKTsKKyAgICB2b2lkIHJl
cXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4sIGJvb2wgd2l0aEFuaW1hdGlvbiA9
IGZhbHNlKTsKICAgICAKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlv
bigpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5oCmluZGV4IGQ2YzhjMzhkNGEuLjUxOThlZjQ0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC01Nyw2ICs1Nyw3IEBA
IHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURy
YXdpbmdBcmVhUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRW
aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpIG92ZXJyaWRlOwogICAgIHZv
aWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgb3ZlcnJpZGU7CisgICAg
dm9pZCByZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikg
b3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24oKSBv
dmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplKCkgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBpc1ZpZXdXaW5kb3dBY3RpdmUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCBkYzlmNzRjNDlhLi4yYzMw
YzRiYzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCkBAIC05NSw3ICs5NSwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3
TmVlZHNEaXNwbGF5KGNvbnN0IFJlZ2lvbiYpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVl
c3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50
JiBzY3JvbGxPcmlnaW4pCiB7Ci0gICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xs
UG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbl07CisgICAg
W21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24g
c2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBhbmltYXRlZDpOT107Cit9CisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQoreworICAgIFttX3dl
YlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9s
bE9yaWdpbjpzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6WUVTXTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQ
b2ludCBQYWdlQ2xpZW50SW1wbDo6dmlld1Njcm9sbFBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOGU2NDkzNTU0
NS4uM2QzNDVkNzY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTczLDYgKzczLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
Y3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgc3luY0xheWVyUG9z
aXRpb24pOwogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZShX
ZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZl
cnRpY2FsKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBi
b29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKKwogICAgIFdlYlBhZ2Uq
IG1fd2ViUGFnZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgppbmRleCAyYzA5OGExMDk3Li41
MzdmZDM0ZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw5IEBACiBtZXNz
YWdlcyAtPiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvciB7CiAgICAgU2Nyb2xsUG9zaXRpb25D
aGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgc2Nyb2xs
UG9zaXRpb24sIGJvb2wgc3luY0xheWVyUG9zaXRpb24pOwogICAgIEN1cnJlbnRTbmFwUG9pbnRJ
bmRpY2VzQ2hhbmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFs
LCB1bnNpZ25lZCB2ZXJ0aWNhbCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCBib29s
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KaW5kZXggODM1NDQxZDMxOS4uNjg5ZDU1NjI2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5t
bQpAQCAtMTA0LDYgKzEwNCwxMyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpj
dXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFNjcm9sbGluZwogICAgIHNldEFj
dGl2ZVNjcm9sbFNuYXBJbmRpY2VzKG5vZGVJRCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwogfQog
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sK
KyAgICBzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKG5vZGVJRCwgaXNTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385596</attachid>
            <date>2019-12-13 05:53:30 -0800</date>
            <delta_ts>2019-12-13 06:18:59 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_36.diff</filename>
            <type>text/plain</type>
            <size>301996</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjg4NDBmM2NmLi4zNWZhMzg0M2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0g
aXMgYmFzZWQgb24gQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5j
IHNjcm9sbCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJl
Zm9yZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0
byBmYXN0L3Njcm9sbGluZy9pb3MvLCB0aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAgICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAg
ICAod2FpdEZvclNjcm9sbEVuZCk6CisgICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNj
cm9sbFdpbmRvdyk6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sLgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNh
dGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJl
aGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4ODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUg
cGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
OiBTa2lwIHRoZXNlIHRlc3RzIG9uIFdLMSBhcyB0aGV5IGRvbid0IHdvcmsgZm9yIG5vdy4KKwor
MjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxOS0xMi0xMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgog
CiAgICAgICAgIENyZWF0ZSBhIFRlc3RFeHBlY3RhdGlvbnMgZmlsZSBmb3IgdGhlIEdQVSBwcm9j
ZXNzIHJlbGF0ZWQgd29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwLi4wYTA5NjhlMDI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKQEAg
LTAsMCArMSw4NyBAQAorZnVuY3Rpb24gb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgY2FsbGJh
Y2spIHsKKyAgaWYgKCFBcnJheS5pc0FycmF5KGVsZW1lbnRzKSkKKyAgICAgIGVsZW1lbnRzID0g
W2VsZW1lbnRzXTsKKyAgdmFyIGxhc3RDaGFuZ2VkRnJhbWUgPSAwOworICB2YXIgbGFzdExlZnQg
PSBuZXcgTWFwKCk7CisgIHZhciBsYXN0VG9wID0gbmV3IE1hcCgpOworICBlbGVtZW50cy5mb3JF
YWNoKChlbGVtZW50KSA9PiB7CisgICAgbGFzdExlZnQuc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Ny
b2xsTGVmdCk7CisgICAgbGFzdFRvcC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOwor
ICB9KTsKKyAgZnVuY3Rpb24gdGljayhmcmFtZXMpIHsKKyAgICAvLyBXZSByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgZWl0aGVyIGZvciA1MDAgZnJhbWVzIG9yIHVudGlsIDIwIGZyYW1lcyB3aXRoCisg
ICAgLy8gbm8gY2hhbmdlIGhhdmUgYmVlbiBvYnNlcnZlZC4KKyAgICBpZiAoZnJhbWVzID49IDUw
MCB8fCBmcmFtZXMgLSBsYXN0Q2hhbmdlZEZyYW1lID4gMjApIHsKKyAgICAgIGNhbGxiYWNrKHRy
dWUpOworICAgIH0gZWxzZSB7CisgICAgICB2YXIgc2Nyb2xsSGFwcGVuZWQgPSBlbGVtZW50cy5z
b21lKChlbGVtZW50KSA9PiB7CisgICAgICAgIHJldHVybiBlbGVtZW50LnNjcm9sbExlZnQgIT0g
bGFzdExlZnQuZ2V0KGVsZW1lbnQpIHx8IGVsZW1lbnQuc2Nyb2xsVG9wICE9IGxhc3RUb3AuZ2V0
KGVsZW1lbnQpOworICAgICAgfSk7CisgICAgICBpZiAoc2Nyb2xsSGFwcGVuZWQpIHsKKyAgICAg
ICAgbGFzdENoYW5nZWRGcmFtZSA9IGZyYW1lczsKKyAgICAgICAgZWxlbWVudHMuZm9yRWFjaCgo
ZWxlbWVudCkgPT4geworICAgICAgICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNj
cm9sbExlZnQpOworICAgICAgICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xs
VG9wKTsKKyAgICAgICAgfSk7CisgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsKKyAgICAgIH0KKyAg
ICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrLmJpbmQobnVsbCwgZnJhbWVzICsgMSkpOwor
ICAgIH0KKyAgfQorICB0aWNrKDApOworfQorCitmdW5jdGlvbiB3YWl0Rm9yU2Nyb2xsRW5kKGVs
ZW1lbnRzKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgIG9ic2Vy
dmVTY3JvbGxpbmcoZWxlbWVudHMsIChkb25lKSA9PiB7CisgICAgICBpZiAoZG9uZSkKKyAgICAg
ICAgcmVzb2x2ZSgpOworICAgIH0pOworICB9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCkgeworICAvLyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0
aGUgZWxlbWVudCBwb3NpdGlvbiBpcyByZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOwor
ICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImlu
c3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dp
bmRvdykgeworICAvLyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0aGUgZWxlbWVudCBw
b3NpdGlvbiBpcyByZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwgYmVoYXZpb3I6ICJpbnN0YW50In0pOworfQorCitmdW5j
dGlvbiBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCBjbGFzc05hbWUpIHsKKyAgc3R5
bGVkRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJhdXRvQmVoYXZpb3IiLCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgc3R5bGVkRWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7Cit9CisKK2Z1
bmN0aW9uIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2
aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFy
Z3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsK
KyAgc3dpdGNoIChzY3JvbGxGdW5jdGlvbikgeworICAgIGNhc2UgInNjcm9sbEludG9WaWV3IjoK
KyAgICAgIGFyZ3MuaW5saW5lID0gInN0YXJ0IjsKKyAgICAgIGFyZ3MuYmxvY2sgPSAic3RhcnQi
OworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbEludG9WaWV3KGFyZ3MpOworICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7
CisgICAgICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgICAgIHNjcm9sbGluZ0Vs
ZW1lbnRbc2Nyb2xsRnVuY3Rpb25dKGFyZ3MpOworICAgICAgYnJlYWs7CisgIH0KK30KKworZnVu
Y3Rpb24gc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2
aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFy
Z3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsK
KyAgYXJncy5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgYXJncy50b3AgPSBlbGVtZW50
VG9SZXZlYWxUb3A7CisgIHNjcm9sbGluZ1dpbmRvd1tzY3JvbGxGdW5jdGlvbl0oYXJncyk7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjhkNGNhNjQxNTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQt
Y3NzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBJbnN0YW50IHNjcm9sbGlu
ZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCitQQVNTIFNtb290
aCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uMzVjNjUwM2FiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMCww
ICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVy
aW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFz
eW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIGRl
ZmF1bHQgdmFsdWUgb2Ygc2Nyb2xsLWJlaGF2aW9yPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJp
YyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9s
bC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3Jv
bGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVp
Z2h0OiAyMDBweDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYg
aWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0
aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEz
NWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1l
bnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246
IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwv
c3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBzY3JvbGxpbmdFbGVtZW50
ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFy
IGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgdmFyIHNjcm9sbEZ1bmN0aW9uID0gInNjcm9s
bCI7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7Cisg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgfSwgIkluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQg
d2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIlNtb290
aCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjUzYTk2MWVmNTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKKworUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxl
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDM4
ZGZmZGVjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50
PC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsK
KyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuYXV0b0JlaGF2
aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9y
IHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUi
PgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3Vu
ZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48
L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1i
bG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Cisg
IHZhciBzY3JvbGxpbmdFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgc3R5bGVkRWxlbWVu
dCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZh
ciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisKKyAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAi
c2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4g
eworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVo
YXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rp
b24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRv
IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwg
YEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
YXV0byBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7Cisg
ICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bFRvcCIpOworICAgICAgfSk7CisgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgIH0p
OworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
ZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7Cisg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJv
b3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk3
Y2FlYTI3YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzNyBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5n
IAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4g
ZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDMy
NWI0YjllMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNjkgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAg
IG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6
IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBh
Z2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4K
KyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0g
YXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxl
ZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1
bmN0aW9uKCkgeworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAg
cGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiA1ICsg
InB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cuaW5uZXJI
ZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsgd2luZG93
LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQgPSBlbGVt
ZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUudG9wID0g
ZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNr
KCgpID0+IHsgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7IH0pOworCisgICAgWyJzY3Jv
bGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChz
Y3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29s
dmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAg
ICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNj
cm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwg
InNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0p
OworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBh
biBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJp
bnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21v
b3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5n
Iik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwLi4zODIzODVhYWI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyOSBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21v
b3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi45MDU3YjBjZDEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1s
CkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGlu
dGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5U
ZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogb24gdGhl
IHdpbmRvdyBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBj
b250ZW50PSJsb25nIi8+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLG1pbmltdW0tc2NhbGU9MSxpbml0aWFsLXNjYWxlPTEiPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVo
YXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZp
b3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBp
ZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwi
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2Pgor
PHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOwor
ICB2YXIgc2Nyb2xsaW5nV2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
cGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICBzY3JvbGxpbmdXaW5k
b3cgPSB3aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRo
KSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9ICgyMCArIHdpbmRv
dy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gKDEw
ICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZlYWxUb3AgPSAoMjAg
KyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUubGVm
dCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbC5zdHls
ZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRkX2NvbXBsZXRpb25f
Y2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbEZvcldpbmRvdyh3aW5kb3cpOyB9KTsKKworICAg
IFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rp
b24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93
LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAg
ICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAg
c2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50Iiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290
aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3Ag
LyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJpbnN0YW50IiwgMCwg
MCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAuLjQ0M2E4MjBlNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mgc2Nyb2xsSW50b1ZpZXcg
d2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJlaGF2aW9yIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40NWI1ZDhkN2M3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxp
bnRvdmlldy1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIHdpdGggc2Ny
b2xsSW50b1ZpZXcgZm9yIG5lc3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxlPgorPG1ldGEgbmFt
ZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJG
csOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3Bk
ZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
KyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIGhlaWdodDogMjAwcHg7
CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsK
KyAgfQorICAuZ3JhZGllbnQgeworICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVk
ZWcsIHJlZCwgZ3JlZW4pOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2Pgor
PGRpdj4KKyAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9Indp
ZHRoOiA0NTBweCI+CisgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIHNt
b290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KKyAgICAgIDxkaXYgY2xhc3M9Imdy
YWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAg
ICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDM1MHB4Ij4KKyAgICAgICAg
PGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAz
MDBweCI+CisgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDI1MHB4Ij4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6
IDIwMHB4Ij4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0
aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0i
ZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgYmFja2dy
b3VuZDogYmxhY2s7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQi
IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAg
IDwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDog
MTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg
ICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBw
eDsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICA8L2Rpdj4K
KyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDUwMHB4OyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0Pgor
ICAvLyBUaGUgQ1NTT00tVmlldyBzcGVjIGFuZCBpbXBsZW1lbnRhdGlvbnMgZm9sbG93IGRpZmZl
cmVudCBhbGdvcml0aG1zIChzY3JvbGxzIHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgYXMgaW5uZXIt
dG8tb3V0ZXIgc2VxdWVuY2Ugb3IgYXMgb3V0ZXItdG8taW5uZXIgc2VxdWVuY2UpLgorICAvLyBT
ZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzMxMjcKKyAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICB2YXIgZGl2cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ii5zY3JvbGxhYmxlIik7CisgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsYWJsZURpdik7CisgICAgICB9KTsKKyAgICAgIGVs
ZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyh7aW5saW5lOiAic3RhcnQiLCBibG9jazogInN0
YXJ0IiwgYmVoYXZpb3I6ICJhdXRvIn0pOworICAgICAgdmFyIHNjcm9sbFRvcCA9IG5ldyBNYXAo
KTsKKyAgICAgIHZhciBpc1Ntb290aCA9IG5ldyBNYXAoKTsKKyAgICAgIGRpdnMuZm9yRWFjaCgo
c2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9sbGFibGVEaXYs
IHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgaXNTbW9vdGguc2V0KHNjcm9sbGFi
bGVEaXYsIHNjcm9sbGFibGVEaXYuY2xhc3NMaXN0LmNvbnRhaW5zKCJzbW9vdGhCZWhhdmlvciIp
KTsKKyAgICAgICAgLy8gSWYgc2Nyb2xsIG9wZXJhdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgaW4g
cGFyYWxsZWwsIHNjcm9sbCBib3hlcyB3aXRoIGluc3RhbnQgYmVoYXZpb3IgbWlnaHQgYWxzbyBu
ZWVkIHRvIHdhaXQgZm9yIHRoZWlyIHByZWRlY2Vzc29ycy4KKyAgICAgICAgaWYgKGlzU21vb3Ro
LmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbFRv
cC5nZXQoc2Nyb2xsYWJsZURpdiksIDUwMCwgIkVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
c2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkiKTsKKyAgICAgIH0pOworCisgICAgICBvYnNl
cnZlU2Nyb2xsaW5nKEFycmF5LmZyb20oZGl2cyksIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAg
dHJ5IHsKKyAgICAgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2
KSwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIp
OworICAgICAgICAgICAgaWYgKCFpc1Ntb290aC5nZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAg
ICAgICAgIGFzc2VydF9hbnkoYXNzZXJ0X2VxdWFscywgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3As
IFswLCA1MDBdLCAiRWxlbWVudCB3aXRoIGluc3RhbnQgYmVoYXZpb3Igc2hvdWxkIGp1bXAgdG8g
dGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgNTAwLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9sbGFibGVE
aXYsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSBj
YXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChk
b25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAic2Ny
b2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJl
aGF2aW9yIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu
Ljg1NWE2YTYxMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjAgQEAKKworUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hl
biBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9s
bFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Ny
b2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUw
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9u
cyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9y
bWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcg
c2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290
aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkg
IAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgw
LCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3Np
dGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAo
NTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25z
IHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUw
MCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9s
bGluZyAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9s
bGluZyB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3Ro
LXBvc2l0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBh
NDFiOGIwOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbApAQCAtMCwwICsxLDE1MSBA
QAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJm
bG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGwgcG9z
aXRpb25zIHdoZW4gc2Nyb2xsaW5nIGFuIGVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3I8L3Rp
dGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAg
IHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHNjcm9sbC1iZWhhdmlvcjog
c21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0i
b3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAy
MDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVn
LCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRv
UmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1
cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFu
PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgLy8gRm9yIHNtb290aCBiZWhhdmlvciwg
ZXZvbHV0aW9uIG9mIHNjcm9sbCBwb3NpdGlvbnMgb3ZlciB0aW1lIGlzIG5vdCBzcGVjaWZpZWQg
YnkgQ1NTT00gVmlldy4KKyAgLy8gVGhpcyB0ZXN0IHJlbGllcyBvbiB0aGUgbWluaW1hbCBhc3N1
bXB0aW9uIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGZ1bmN0aW9ucyBhcmUgbW9ub3RvbmljLgorICBb
InNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVh
Y2goZnVuY3Rpb24oc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBbe2xlZnQ6MCwgdG9wOjB9LCB7bGVm
dDoxMDAwLCB0b3A6MH0sIHtsZWZ0OjAsIHRvcDo1MDB9LCB7bGVmdDoxMDAwLCB0b3A6NTAwfV0u
Zm9yRWFjaCgoaW5pdGlhbCkgPT4geworICAgICAgdmFyIGZpbmFsTGVmdCA9IDUwMDsKKyAgICAg
IHZhciBmaW5hbFRvcCA9IDI1MDsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgaW5pdGlhbC5s
ZWZ0LCBpbml0aWFsLnRvcCk7CisgICAgICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUu
c2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRv
cDsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIGluaXRpYWwubGVmdCwgIlNjcm9s
bExlZnQgc2hvdWxkIGJlIGF0IGluaXRpYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG9sZFRvcCwgaW5pdGlhbC50b3AsICJTY3JvbGxUb3Agc2hvdWxkIGJlIGF0IGluaXRp
YWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBpZiAoc2Nyb2xsRnVuY3Rpb24gPT09ICJzY3JvbGxC
eSIpCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgc2Nyb2xsRnVuY3Rpb24s
ICJzbW9vdGgiLCBmaW5hbExlZnQgLSBpbml0aWFsLmxlZnQsIGZpbmFsVG9wIC0gaW5pdGlhbC50
b3ApOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2Rl
LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCwgZmluYWxUb3ApOworICAgICAg
ICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25lKSB7CisgICAg
ICAgICAgICB0cnkgeworICAgICAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxMZWZ0OworICAgICAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bFRvcDsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChNYXRoLmh5cG90KGZp
bmFsTGVmdCAtIG5ld0xlZnQsIGZpbmFsVG9wIC0gbmV3VG9wKSwgTWF0aC5oeXBvdChmaW5hbExl
ZnQgLSBvbGRMZWZ0LCBmaW5hbFRvcCAtIG9sZFRvcCksICJTY3JvbGwgcG9zaXRpb24gc2hvdWxk
IG1vdmUgdG93YXJkcyB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgaWYgKGRv
bmUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIGZpbmFsTGVmdCwg
IlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIGZpbmFsVG9wLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFj
aCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIG9sZExl
ZnQgPSBuZXdMZWZ0OworICAgICAgICAgICAgICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZv
cm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgke2luaXRpYWwubGVmdH0sICR7aW5pdGlhbC50
b3B9KSB0byAoJHtmaW5hbExlZnR9LCAke2ZpbmFsVG9wfSkgdXNpbmcgJHtzY3JvbGxGdW5jdGlv
bn0oKSBgKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICByZXNl
dFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxTY3JvbGxBYm9ydGVkID0g
ZmFsc2U7CisgICAgICB2YXIgc2Nyb2xsRGlyZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOworICAgICAg
dmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZhciBvbGRUb3Ag
PSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUob3Zl
cmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAgICBvYnNlcnZl
U2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgewor
ICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAg
ICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgaWYgKGlu
aXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAgICAgICAgICBpZiAoc2Nyb2xsRGlyZWN0aW9uQ2hh
bmdlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9sZExlZnQs
IG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBrZWVw
cyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgc2Nyb2xs
RGlyZWN0aW9uQ2hhbmdlZCA9IG5ld0xlZnQgPD0gb2xkTGVmdCAmJiBuZXdUb3AgPD0gb2xkVG9w
OworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1
YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAg
ICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xs
VG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAw
ICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAgICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFs
IHNjcm9sbC4KKyAgICAgICAgICAgICAgICBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3Ro
IiwgNTAwLCAyNTApOworICAgICAgICAgICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Ny
b2xsTGVmdDsKKyAgICAgICAgICAgICAgICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9w
OworICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxk
IHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1Rv
cCwgMjUwLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAg
ICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3AgPSBu
ZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsK
KyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBz
Y3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5pdGlh
bFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsK
KyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKG9s
ZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9v
dGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1
bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05v
ZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmICghaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsKKyAg
ICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Ny
b2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIpOwor
ICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7CisgICAg
ICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAgICAg
IGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxOb2Rl
KG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgNTAwLCAyNTApOworICAgICAgICAg
ICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAg
ICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9z
aXRpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Ny
b2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRp
b24iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Ag
c2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICB9CisgICAgICAgICAg
b2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICB9
IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH0sICJT
Y3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4g
aW5zdGFudCBzY3JvbGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uMjc5OWZkY2MyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzNyBAQAorCitQQVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3Ro
IHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAor
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3
aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk2ZDExYWI5NjIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4K
Kzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9s
bCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4K
KzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12
aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+
Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2RlIiB3aWR0aD0i
NDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFET0NUWVBFPgorPGh0bWw+CisgIDxzdHls
ZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgLmF1dG9CZWhhdmlv
ciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgICAgfQorICAgIC5zbW9vdGhCZWhh
dmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgICB9CisgIDwvc3R5bGU+
CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4
OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsnPgorICAg
ICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWln
aHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0eWxlPSdkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48L3NwYW4+CisgICAgPC9kaXY+CisgIDwv
Ym9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2NyaXB0PgorICB2YXIgaWZyYW1lTG9hZFRl
c3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50
LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBlbGVtZW50VG9SZXZlYWxM
ZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICBpZnJhbWVOb2Rl
LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5zdGVwX2Z1bmNfZG9uZSgo
KSA9PiB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVu
dERvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50VG9SZXZlYWwgPSBpZnJhbWVO
b2RlLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudFRvUmV2ZWFsIik7CisK
KyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJd
LmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJh
dXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Jg
KTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3Jv
bGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICAgIH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
bnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAg
ICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxp
bmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNt
b290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsKKwor
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVt
ZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhh
dmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAy
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBz
Y3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9s
bChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50Iiwg
MCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDVlYjMyNzJmNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisK
K1BBU1MgaWZyYW1lIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13
aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zMzMzZDY0
Zjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFE
T0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Ny
b2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVt
ZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1l
PC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+
PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2Rl
IiB3aWR0aD0iNDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFET0NUWVBFPgorPGh0bWw+
CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgLmF1
dG9CZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgICAgfQorICAgIC5z
bW9vdGhCZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgICB9Cisg
IDwvc3R5bGU+CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdo
dDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVu
KTsnPgorICAgICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUw
MHB4OyBoZWlnaHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0
eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48L3NwYW4+CisgICAgPC9k
aXY+CisgIDwvYm9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2NyaXB0PgorICB2YXIgaWZy
YW1lTG9hZFRlc3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7CisgIHZhciBzY3JvbGxp
bmdXaW5kb3csIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAgdmFyIGVsZW1lbnRU
b1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlm
cmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVu
Y19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdXaW5kb3cgPSBpZnJhbWVOb2RlLmNvbnRlbnRX
aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50VG9SZXZlYWwgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudFRvUmV2ZWFsIik7CisKKyAgICBbInNjcm9s
bCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJl
c29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xs
aW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9u
LCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhz
Y3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cu
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7Cisg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9w
Iik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisK
KyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Ny
b2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIp
OworCisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
NDdmZDVlMWE1NC4uMzZmNTNiNjBhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVz
IG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgRW5hYmxlIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQgb24gc2Nyb2xsIGJlaGF2aW9yIHRlc3RzIGFuZCB1cGRhdGUgZXhwZWN0YXRpb25zLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJv
b3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Ny
b2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6CisKKzIwMTktMTItMTAgIENhdGhp
ZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJp
YyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFu
Y2UtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmUtc3luYyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLW9yaWdpbi1v
YmplY3RzLmh0bWwgZnJvbSB1c3B0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCAzYWMwYTM3Y2ZmLi44
NzVhNzI3Yzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBQcm9wZXJ0
eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogc2Ny
b2xsLWJlaGF2aW9yIGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVk
IHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhh
dmlvciBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byAK
K1BBU1MgUHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9yIGRvZXMgbm90IGluaGVyaXQgCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dAppbmRleCA5MDY4Yjc5NzU1Li44
ZDRjYTY0MTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQg
d2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKLUZBSUwgU21vb3RoIHNjcm9sbGluZyBvZiBh
biBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFNtb290aCBzY3JvbGxpbmcgb2YgYW4gZWxl
bWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1j
c3MuaHRtbAppbmRleCA2OTI1Y2YwOTJjLi5mZTQ3NWIwMzlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1
bHQtY3NzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1
ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBl
Y3RlZC50eHQKaW5kZXggMmI5MTI5YzFjZi4uNTNhOTYxZWY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTIsMzUgKzIsMzUgQEAKIFBBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAog
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVs
ZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxl
bWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1l
bnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAotRkFJTCBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0
byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1l
bGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKaW5kZXggM2NiZDcy
MmY3Mi4uNmMxNTkyOWM5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+
CiA8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3Jv
bGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwvdGl0bGU+CiA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKaW5kZXggZDkyMjI1OGFm
Mi4uOTdjYWVhMjdiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1y
b290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0CkBAIC0zLDM1ICszLDM1IEBAIFBBU1MgUGFnZSBsb2FkZWQKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290
IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBi
dXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBn
b3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAg
YnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50
b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
NDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9v
dGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAppbmRleCBmY2Y3NWFhMWRkLi42ZDliMjI0MmVhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
RE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
eHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxl
PgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4
dAppbmRleCBjNmJlOTY2NjFjLi4zODIzODVhYWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0zLDI3ICszLDI3IEBAIFBBU1Mg
UGFnZSBsb2FkZWQKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
Ci1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQg
Z290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1G
QUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290
IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2Vy
dF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0
ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
IFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5k
b3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKaW5kZXgg
OGM4OGVjNjg2MS4uYmYzODczMDQyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS13aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdp
bmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMn
IGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogb24gdGhlIHdpbmRvdyBvZiB0aGUgbWFpbiBm
cmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLG1pbmltdW0tc2Nh
bGU9MSxpbml0aWFsLXNjYWxlPTEiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Ny
b2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9s
bGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKaW5kZXggN2NlMTBjMDg5Ni4uNDQzYTgyMGU1
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHNjcm9sbEludG9WaWV3IHdpdGgg
bmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNob3VsZCBub3Qgc2Nyb2xsIGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1Mgc2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Ny
b2xsLWJlaGF2aW9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRv
dmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC5odG1sCmluZGV4IDNhODkwNjUzMmIuLjNmM2Q5YjcyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBF
IGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5U
ZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIHdpdGggc2Nyb2xsSW50b1ZpZXcgZm9yIG5l
c3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMuaHRtbAppbmRleCAwMDVkMmI2MDRkLi5lYWEwZmZmMDE5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5n
IHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRoIHNtb290aCBi
ZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3
YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUt
cm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVj
dGVkLnR4dAppbmRleCBiNmZhMWMyZWM4Li4yNzk5ZmRjYzI5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMywzNSArMywzNSBAQCBQQVNTIGlm
cmFtZSBsb2FkZWQKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1G
QUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVz
cyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
NTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5n
IGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290Lmh0bWwKaW5kZXggZTY0MWU1M2UzMy4uZThjY2I2NmJlNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBo
dG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50
YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+VGVz
dGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3Jv
bGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggY2M2NjVlYmRi
OC4uMDVlYjMyNzJmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2lu
ZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0CkBAIC0zLDI3ICszLDI3IEBAIFBBU1MgaWZyYW1lIGxvYWRlZAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290
aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3Qg
NTAwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190
aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVt
YmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUw
MCBidXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAw
Ci1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBn
b3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFi
b3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1z
dWJmcmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5o
dG1sCmluZGV4IGQ5MzFlMDAzZDQuLjkyNjg0ZDY3NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXdpbmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9w
dGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBv
biB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDQ5NmNmMmRjYi4uMDQxZjM2ZWJjZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NzQ4LDYgKzc0OCwxNSBAQCB3ZWJraXQub3JnL2IvMTg5NTk0IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmltYXRpb25zL3BlbmRpbmctcwogCiB3ZWJraXQub3JnL2Iv
MTg4MDcwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZXJy
b3ItcHJvcGFnYXRpb24tYmFja3dhcmQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKKyMgVGVzdHMg
Zm9yIHNtb290aCBzY3JvbGwgYmVoYXZpb3IgZG8gbm90IGFsbCB3b3JrIGFuZCB0aGV5IGFyZSBz
bG93LCBzbyBsZXQncyBqdXN0IHNraXAgdGhlbS4KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS1yb290Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS13aW5kb3cuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE5MTM1NyBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c3ViZnJhbWUtd2luZG93Lmh0bWwgWyBTa2lwIF0KKworIyBUaGlzIGlzIGZhaWxpbmcgb24gbWFj
LXdrMSwgdHJ5IHRvIGZpZ3VyZSBpdCBvdXQgaW4gdGhlIGZvbGxvdy11cCBidWcuCit3ZWJraXQu
b3JnL2IvMTkxMzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvaW5oZXJpdGFuY2UuaHRtbCBbIFNraXAgXQorCiB3ZWJraXQub3JnL2IvMTg5OTA4IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL3Jlc291cmNlX3RpbWlu
Zy53b3JrZXIuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTg5NzU2IFsgTW9qYXZl
KyBdIGNvbXBvc2l0aW5nL2ZpbHRlcnMvb3BhY2l0eS1jaGFuZ2Utb24tZmlsdGVyZWQtcGFpbnRz
LWludG8tYW5jZXN0b3IuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDUyMjA2ODczMWMuLjBlODE0YmJjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC05NjQsOCArOTY0LDEwIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAg
cGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbAogICAgIHBhZ2UvUmVzaXplT2JzZXJ2ZXJF
bnRyeS5pZGwKICAgICBwYWdlL1NjcmVlbi5pZGwKKyAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmlk
bAogICAgIHBhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAogICAgIHBhZ2UvU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uLmlkbAorICAgIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKICAgICBwYWdlL1Nj
cm9sbFRvT3B0aW9ucy5pZGwKICAgICBwYWdlL1NoYXJlRGF0YS5pZGwKICAgICBwYWdlL1VuZG9J
dGVtLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhMTZiNDQwYWQuLmE0ODExZmM4MDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNDAgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBp
Z2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVs
aWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggc3VwcG9ydCBuYXRp
dmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0uIEl0IHJlbGllcyBvbiBVSVNjcm9s
bFZpZXcncworICAgICAgICBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBwb3J0IGFuZCBpcyBl
eGVjdXRlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBUZXN0czogZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJm
cmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5p
bWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBieSBjYWxsaW5nIGFu
aW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKTog
QWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCBvciBu
b3QuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1
cyBmcm9tIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOiBBZGQgbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gdG8gaW5kaWNhdGUgaXQncyBhbmltYXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOiBEaXR0by4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25XaXRoQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBVcGRh
dGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhIGZsYWcgdG8g
aW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4pOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIHRoZSBzY3JvbGwgaXMgYW5pbWF0ZWQgb3Ig
bm90LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9s
bFRvKTogSWYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiBpcyB0cnVlLCBzZW5kIHRoZSBzY3JvbGwg
cG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLCBldmVuIGlmIHRoZSBzY3JvbGwgcG9zaXRpb24g
ZG9lc24ndCBjaGFuZ2UuCisgICAgICAgIE1haW50YWluIHRoZSBzdGF0dXMgb2YgbV9zdG9wU2Ny
b2xsQW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbC4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFu
Z2VkKTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlt
bWVkaWF0ZWx5LCBzbyBkb24ndCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZvIG5vdy4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0QW5pbWF0
ZWRTY3JvbGwpOiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlz
IGFuIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRlZFNjcm9sbCBjb25zdCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24p
OiBJZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHByZXZp
b3VzIHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRk
IFNjcm9sbEJlaGF2aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQgb3Igc21vb3RoIHNj
cm9sbC4KKyAgICAgICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGluZGljYXRlIHRoZSBz
dGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBVcGRhdGUg
U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSk6IEFk
ZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjdXJyZW50U2Ny
b2xsQmVoYXZpb3JUeXBlIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogU2VuZCBhIHF1ZXN0IG9m
IG5hdGl2ZSBzY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBi
eSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorCisyMDE5
LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24g
b2YgdGhlIFdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ4ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIHByb2dyYW1tYXRpYyBzbW9vdGggc2Nyb2xsaW5n
IGluIFdlYktpdCBmcm9tIHRoZSBDU1NPTSBWaWV3CisgICAgICAgIHNwZWNpZmljYXRpb24gWzFd
LiBUbyB1c2UgdGhpcyBlZmZlY3QsIHdlYiBkZXZlbG9wZXJzIGNhbiBwYXNzIGEgYmVoYXZpb3Ig
cGFyYW1ldGVyIChhdXRvLAorICAgICAgICBzbW9vdGgsIG9yIGluc3RhbnQpIHRvIEVsZW1lbnQu
c2Nyb2xsLCBFbGVtZW50LnNjcm9sbFRvLCBFbGVtZW50LnNjcm9sbEJ5LAorICAgICAgICBFbGVt
ZW50LnNjcm9sbEludG9WaWV3LCBXaW5kb3cuc2Nyb2xsLCBXaW5kb3cuc2Nyb2xsVG8gb3IgV2lu
ZG93LnNjcm9sbEJ5IFsyXS4gV2hlbiBiZWhhdmlvcgorICAgICAgICBpcyBhdXRvLCB0aGUgaW5z
dGFudC9zbW9vdGggY2hhcmFjdGVyaXN0aWMgaXMgYWN0dWFsbHkgdGFrZW4gZnJvbSB0aGUgdmFs
dWUgb2YgYSBuZXcgQ1NTCisgICAgICAgIHNjcm9sbC1iZWhhdmlvciBwcm9wZXJ0eSBbM10uIEJv
dGggdGhlIG5ldyBDU1MgYW5kIERPTSBiZWhhdmlvciBhcmUgcHJvdGVjdGVkIGJ5IGEgcnVudGlt
ZQorICAgICAgICBmbGFnLgorCisgICAgICAgIFsxXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldworICAgICAgICBbMl0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZp
ZXcvI2RpY3RkZWYtc2Nyb2xsb3B0aW9ucworICAgICAgICBbM10gaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yCisKKyAgICAgICAgVGVz
dHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQu
aHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAgICAgICAg
ICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgt
cG9zaXRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAor
ICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDogQnVpbGQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCBvbiBhbGwgcGxhdGZvcm1z
LgorICAgICAgICAqIFNvdXJjZXNHVEsudHh0OiBSZW1vdmUgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmNwcCBzaW5jZSBpdCBpcyBidWlsdCBvbiBhbGwgcGxhdGZvcm1zIG5vdy4KKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmll
dyk6IFBhc3Mgc2Nyb2xsIGJlaGF2aW9yLCBpZiBhbnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzY3JvbGxCeSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxUbyk6IEhh
bmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Ny
b2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNj
cm9sbFRvcCk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGgu
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpzY3JvbGxCeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9s
bFRvIGNvbnN0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290
aC4KKyAgICAgICAgVGhlIG9wdGltaXphdGlvbiBvZiBjYW5jZWwgKDAsIDApIHNjcm9sbGluZyBp
cyBza2lwcGVkIGlmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcy4KKyAgICAgICAg
T3RoZXJ3aXNlLCB0aGUgcHJldmlvdXMgc2Nyb2xsIHdvbid0IGJlIHN0b3BwZWQgYnkgYSBmb2xs
b3ctdXAgc2Nyb2xsLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBTdGFydCBhbiBhbmltYXRl
ZCBzY3JvbGwuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRpb246OnNjcm9sbCk6IEZ1bmN0aW9uIHRvIGFuaW1hdGUgc2Nyb2xsaW5n
IHRvIGEgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvblNtb290aC5jcHA6IEJ1aWxkIHRoaXMgZmlsZSBvbiBhbGwgcGxhdGZvcm1zLiBBZGQgYQor
ICAgICAgICBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgcGFyYW1ldGVyIHRvIHNs
b3cgZG93biB0aGUgc21vb3RoIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdGlvblNtb290aDo6c2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlv
blNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEpOiBTY2FsZSB0aGUgdGltZSBwYXJhbWV0ZXJzIG9m
IHRoZQorICAgICAgICBhbmltYXRpb24gc28gdGhhdCBpdCBsb29rcyBzbW9vdGhlci4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaDogRGVjbGFyZSB0aGUgY2xhc3Mg
b24gYWxsIHBsYXRmb3Jtcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IpOiBJbml0
aWFsaXplIGFuaW1hdGlvbiBtZW1iZXIgZm9yIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9PZmZzZXQpOiBBbmltYXRlIHNj
cm9sbGluZyB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMpOiBDb3B5IGxvZ2ljIGZyb20gU2Nyb2xsQW5p
bWF0aW9uU21vb3RoLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzZXJ2
aWNlU2Nyb2xsQW5pbWF0aW9ucyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3I6OndpbGxFbmRMaXZlUmVzaXplKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvcjo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaDogTmV3IGFuaW1hdGlvbiBtZW1i
ZXIgZm9yIHNtb290aCBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6c2Vy
dmljZVNjcm9sbEFuaW1hdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjp3aWxsRW5kTGl2ZVJlc2l6ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFkZFZl
cnRpY2FsU2Nyb2xsYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yOjpTY3JvbGxBbmltYXRvcjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yU3Rh
dHVzIHRvIGluZGljYXRlIHRoZSBzdGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Ny
b2xsUG9zaXRpb24pOiBGb2xsb3cgdGhlIENTU09NIFZpZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMg
aW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGludGVycnVwdCBpdCBhbmQgY29udGludWUgdGhlIHNj
cm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJlIGF0IHRoZSBmaW5hbCBwb3NpdGlvbikuCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09m
ZnNldFdpdGhBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNl
dFNjcm9sbE9mZnNldEZyb21JbnRlcm5hbHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24pOiBUbyBhdm9pZCBpdGVyYXRlIGNh
bGxpbmcsCisgICAgICAgIG1vdmUgdGhlIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShwb3Np
dGlvbikgY2hlY2tpbmcgb3V0IG9mIHNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24oKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyBjb25zdCk6IE1haW50YWlu
IGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFi
bGVBcmVhOjpzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyk6CisgICAgICAgICogcGxhdGZvcm0vZ2Vu
ZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JHZW5lcmljOjp1cGRhdGVQb3NpdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JN
YWM6OmNhbmNlbEFuaW1hdGlvbnMpOiBDYWxsIHBhcmVudCBtZW1iZXIgdG8gaGFuZGxlIHByb2dy
YW1tYXRpYyBzY3JvbGxpbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQpOiBBZGQgZmxhZyB0byBp
bmRpY2F0ZSBhbmltYXRlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNl
dFNjcm9sbFRvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRTY3Jv
bGxQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9YUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpzY3JvbGxUb1lQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnNjcm9sbFRvUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnNjcm9sbFRvT2Zmc2V0KTogRm9sbG93IHRoZSBDU1NPTSBWaWV3IHNwZWM6IElmIGEgc2Nyb2xs
IGlzIGluCisgICAgICAgIHByb2dyZXNzLCB3ZSBpbnRlcnJ1cHQgaXQgYW5kIGNvbnRpbnVlIHRo
ZSBzY3JvbGwgY2FsbCAoZXZlbiB3aGVuIHdlIGFyZSBhdCB0aGUgZmluYWwKKyAgICAgICAgcG9z
aXRpb24pLiBJdCdzIFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCBzY3JvbGwuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24p
OiBEaXR0by4gVGhpcyBpcyBzaW1pbGFyIHRvIHNjcm9sbFRvT2Zmc2V0CisgICAgICAgIGJ1dCBh
bmltYXRlcyB0aGUgc2Nyb2xsLiBJdCdzIFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoIHNjcm9s
bC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6IEFnYWluIGRvbid0IGRv
IGFuIGVhcmx5IHJldHVybiBpZiBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MuIFdlIGNh
bGwgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uIGluc3RlYWQgb2Ygc2Nyb2xsVG9PZmZzZXQg
d2hlbiBhcHByb3ByaWF0ZS4KKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gbWF5IG5v
dCB3b3JrIHdlbGwgZm9yIHNldmVyYWwgbmVzdGVkIHNjcm9sbCBib3hlcyB3aXRoIGF0IGxlYXN0
IG9uZQorICAgICAgICBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yLiBJdCB3aWxsIGhhbmRs
ZWQgaW4gYnVnIEZvbGxvdy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDogQWRk
IHNjcm9sbCBiZWhhdmlvciB0byBTY3JvbGxUZWN0VG9WaXNpYmxlT3B0aW9ucy4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
aXN0Qm94OjpzZXRTY3JvbGxMZWZ0KTogQWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3ApOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp1bmNvbnN0cmFpbmVkU2Nyb2xsVG8p
OgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5n
IHNjcm9sbC1iZWhhdmlvciBjc3MgcHJvcGVydHkgYW5kIFNjcm9sbE9wdGlvbnMuCisKKyAgICAg
ICAgVGVzdHM6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IEFkZCBJREwgZmlsZXMgZm9yIFNjcm9sbE9wdGlvbnMgYW5kIFNjcm9sbEJlaGF2aW9yLgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogSGVhZGVycy5jbWFrZTogQWRk
IGhlYWRlcnMgZm9yIFNjcm9sbEJlaGF2b3IgYW5kIFNjcm9sbE9wdGlvbnMuCisgICAgICAgICog
U291cmNlcy50eHQ6IEFkZCBTY3JvbGxCZWhhdm9yIGFuZCBTY3JvbGxPcHRpb25zIGltcGxlbWVu
dGF0aW9uLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRk
IGZpbGVzIHRvIHRoZSBidWlsZCBzeXN0ZW0uCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHA6IEhhbmRsZSBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChXZWJD
b3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZSk6Cisg
ICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjogQWRkIHNjcm9sbC1iZWhhdmlvci4KKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogQWRkIGtleXdvcmRzIGZvciBzY3JvbGwt
YmVoYXZpb3IuCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcDogQWRk
IHJ1bnRpbWUgY29uZmlnIGZvciBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHRIYXNoOjpoYXNoKToKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHA6IFJlbW92ZSBzY3JvbGwtYmVo
YXZpb3IgdGVtcGxhdGVzLiBJdCBpcyBoYW5kbGVkIGluIHRoZSBzbG93IHBhdGggc2luY2UgcHJv
cGVydHkgY2FuIGJlIGRpc2FibGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBh
dGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKToKKyAgICAgICAgKiBjc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVT
Y3JvbGxCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6cGFy
c2VTaW5nbGVWYWx1ZSk6IFBhcnNlIHNjcm9sbC1iZWhhdmlvciAob25seSBpZiBlbmFibGVkKS4K
KyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjp1c2VTbW9vdGhTY3JvbGxpbmcpOiBIZWxwZXIgZnVuY2l0b24gdG8gZGV0ZXJtaW5lIHRo
ZSBzY3JvbGwgYmVoYXZpb3IgdG8gYXBwbHkgdG8gYW4gZWxlbWVudCBmcm9tIHRoZSBDU1MgYW5k
IERPTSBiZWhhdmlvci4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmg6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOiBNYWtlIHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBT
Y3JvbGxPcHRpb24uIEFsc28gcmVtb3ZlIHVubmVjZXNzYXJ5IGZvcndhcmQgZGVjbGFyYXRpb24u
CisgICAgICAgICogcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xh
c3MgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb24uCisgICAgICAgICogcGFnZS9TY3JvbGxPcHRp
b25zLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmg6IE1ha2UgdGhpcyBzdHJ1Y3QgaW5oZXJp
dHMgZnJvbSBTY3JvbGxPcHRpb25zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVG9PcHRpb25z
OjpTY3JvbGxUb09wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6bm9ybWFsaXplTm9uRmluaXRl
Q29vcmRpbmF0ZXNPckZhbGxCYWNrVG8pOiBDb3B5IHRoZSBjdXJyZW50IFNjcm9sbFRvT3B0aW9u
cyBzbyB0aGF0IHRoZSBzY3JvbGwgYmVoYXZpb3IgaXMgcHJlc2VydmVkLgorICAgICAgICAqIHBh
Z2UvU2Nyb2xsVG9PcHRpb25zLmlkbDogTWFrZSB0aGlzIGNsYXNzIGluaGVyaXQgZnJvbSBTY3Jv
bGxPcHRpb25zLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDogTmV3IHNldHRpbmcgZm9y
IENTU09NIFZpZXcgc21vb3RoIHNjcm9sbGluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaDogSGFuZGxlICdzbW9vdGggc2Nyb2xsaW5nJyBib29sZWFuIGRhdGEuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dXNlU21vb3RoU2Nyb2xsaW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRVc2VTbW9vdGhTY3JvbGxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpj
b252ZXJ0U21vb3RoU2Nyb2xsaW5nKToKKwogMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRo
aWVjaGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4ZWQgUGF0dGVybi5oIGNvbXBpbGUgZXJy
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDBiZmFiZWNhNDMuLmU5NzE0Yzg1
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTE1LDggKzkxNSwxMCBAQCBK
U19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2Fs
bGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvUmVzaXplT2JzZXJ2ZXJFbnRyeS5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JlZW4uaWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2Uv
U2Nyb2xsQmVoYXZpb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5p
ZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TaGFy
ZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvVW5kb0l0ZW0uaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IGVlODllZTNmMGMuLjJmMTc3MjYwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtODE2LDggKzgxNiwxMCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgcGFnZS9SZW1vdGVGcmFtZS5oCiAgICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVs
ZXIuaAogICAgIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisgICAgcGFnZS9TY3JvbGxC
ZWhhdmlvci5oCiAgICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaAogICAgIHBhZ2UvU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmgKKyAgICBwYWdlL1Njcm9sbE9wdGlvbnMuaAogICAgIHBhZ2Uv
U2Nyb2xsVG9PcHRpb25zLmgKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luLmgKICAgICBwYWdlL1Nl
Y3VyaXR5T3JpZ2luRGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGJjYTczY2Y5ZTcuLjNlNjgwNDRm
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNjQ3LDYgKzE2NDcsNyBAQCBwYWdlL1Jlc291cmNlVXNh
Z2VPdmVybGF5LmNwcAogcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAogcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAogcGFnZS9TY3JlZW4uY3BwCitwYWdlL1Njcm9sbEJlaGF2aW9y
LmNwcAogcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNw
cAogcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKQEAgLTE3NTIsNiArMTc1Myw3IEBAIHBsYXRmb3Jt
L1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5jcHAKIHBsYXRmb3JtL1NTTEtleUdlbmVyYXRvci5jcHAKIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmNwcAorcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAKIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Ny
b2xsYmFyLmNwcApAQCAtMzM3Niw4ICszMzc4LDEwIEBAIEpTU1ZHWm9vbUFuZFBhbi5jcHAKIEpT
U1ZHWm9vbUV2ZW50LmNwcAogSlNTY3JlZW4uY3BwCiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
CitKU1Njcm9sbEJlaGF2aW9yLmNwcAogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwCiBKU1Nj
cm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAKK0pTU2Nyb2xsT3B0aW9ucy5jcHAKIEpTU2Nyb2xsVG9P
cHRpb25zLmNwcAogSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNwcAogSlNTZXJ2aWNl
V29ya2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRleCBjMmMyNzA5Yjg3Li41NGI1MzZlZDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzR1RLLnR4dApAQCAtNjMsNyArNjMsNiBAQCBwYWdlL3Njcm9sbGluZy9u
aWNvc2lhL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLmNwcAogcGFnZS9zY3JvbGxpbmcvZ2VuZXJp
Yy9TY3JvbGxpbmdUaHJlYWRHZW5lcmljLmNwcAogCiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25L
aW5ldGljLmNwcAotcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0v
VXNlckFnZW50UXVpcmtzLmNwcAogCiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2Vu
ZXJpYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAwM2U2ZjU0MzNiLi5iYzk5NzA2ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzk3LDYgKzIzOTcs
OCBAQAogCQk4MzQwN0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0MDdG
QzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVF
MDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhENCAvKiBK
U1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVF
QzEgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9s
bEludG9WaWV3T3B0aW9ucy5oICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyog
SlNTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNFOUIzMDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAq
LzsgfTsKKwkJODM0NDc2RUYxREE1QkM1RTAwMkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1
QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVC
QzVFMDAyQjZFRDIgLyogSlNTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Nj
cm9sbFRvT3B0aW9ucy5oICovOyB9OwogCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYgLyogQ2xh
c3NDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzQ4QkZBQTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggKi87IH07
CiAJCTgzNERGQUQwMUY3REFFNUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRERkFDQzFGN0RBRTU2
MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNDUxLDYgKzI0NTMsOCBAQAogCQk4M0M0NUI4RTFE
QzJCNjhBMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZh
bGlkYXRpb25CdWJibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUw
QzNFNzFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMw
MTAwNkY5Qzk3IC8qIFNjcm9sbEludG9WaWV3T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNj
cm9sbEludG9WaWV3T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMz
RTcxREE1OUI2MjAwMzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3
IC8qIFNjcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQx
REE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNj
cm9sbFRvT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTgzRDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICov
OyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmgg
Ki87IH07CkBAIC0xMDE2Nyw5ICsxMDE3MSwxNCBAQAogCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcy
NUIgLyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTaGFyZWRTdHJpbmdIYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8q
IFNjcm9sbEludG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY3JvbGxJbnRvVmlld09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQzNCAvKiBTY3JvbGxCZWhhdmlvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xs
T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYy
MDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcm9sbFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzUwQzNFODFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50
b1ZpZXdPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxJbnRvVmlld09w
dGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNj
cm9sbEJlaGF2aW9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTgx
REE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNjcm9sbE9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUw
QzNFODFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTY3JvbGxUb09wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzUyMEM3RDFBNzFCRkNDMDA2QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NGb250RmFtaWx5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNTY1N0M2MUVDQUIwRTgwMENERTcyRCAvKiBKU0RPTU1hdHJpeElu
aXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXRyaXhJ
bml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjkxLDkgKzEwMzAwLDEz
IEBACiAJCTgzRTk1OUUxMUI4QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1
QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxCZWhhdmlvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxPcHRpb25z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZF
OEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTU2Nyb2xsVG9PcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZG
RDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThFNSAvKiBK
U1Njcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3Jv
bGxPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1
MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1Njcm9sbFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4M0VFNTk4QjFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTk4QzFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JD
YWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDc2OCwxMCArMjA3
ODEsMTUgQEAKIAkJCQlCQ0VDMDFCQTBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmNwcCAqLywK
IAkJCQlCQ0VDMDFCQjBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmggKi8sCiAJCQkJQkNFQzAx
QkMwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2
MjAwMzU2NDM0IC8qIFNjcm9sbEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYy
MDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAz
NTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaWRsICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1
NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCAqLywKIAkJCQk4MzUwQzNFNzFE
QTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCiAJCQkJODM1MEMz
RTgxREE1OUI2MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgKi8sCisJCQkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAqLywKKwkJCQk4MzUw
QzNFODFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwgKi8sCiAJCQkJODM1MEMz
RTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5oICovLAogCQkJCTgzNTBDM0U4
MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMuaWRsICovLAogCQkJCUJDRDBFMEY3
MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgKi8sCkBAIC0yNTU2MywxMCAr
MjU1ODEsMTQgQEAKIAkJCQk1OEIyRkEwMjIyMzJENjBBMDA5MzhENjMgLyogSlNSZXNpemVPYnNl
cnZlckVudHJ5LmggKi8sCiAJCQkJQkNFQzAxQzAwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVu
LmNwcCAqLywKIAkJCQlCQ0VDMDFDMTBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCAqLywK
KwkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAgKi8s
CisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLywK
IAkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkQ4RTUgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMu
Y3BwICovLAogCQkJCTgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3
T3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExv
Z2ljYWxQb3NpdGlvbi5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpT
U2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCisJCQkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5jcHAgKi8sCisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThGNiAv
KiBKU1Njcm9sbFRvT3B0aW9ucy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2
IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi8sCiAJCQkJN0M3M0ZCMEYxOTFFRjZGNDAwN0RFMDYx
IC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLywKQEAgLTMwOTEyLDggKzMwOTM0LDEwIEBA
CiAJCQkJNUUyQzQzNkMxQkNGMDcxRTAwMDFFMkJDIC8qIEpTUlRDVHJhY2tFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNFQzAxQzMwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVDRTEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9j
ZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAg
LyogSlNTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYxREE1QkM1
RTAwMkI1RUMxIC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVDMSAvKiBKU1Njcm9sbE9w
dGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBK
U1Njcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VEMDZBRDExQzc3NzU0ODAw
RkRGQUYxIC8qIEpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE4MkMyNTYxRjMxNDNDRDAwNTlCQTdDIC8qIEpTU2VydmljZVdvcmtlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMjExNyw2ICszMjE0MSw3IEBACiAJCQkJNDRDOTkxODYwRjNEMUVCRTAw
NTg2NjcwIC8qIFNjcm9sbGJhclRoZW1lSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCODUz
RTBFN0M3RjExMDBBQjY5ODQgLyogU2Nyb2xsYmFyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTcxNDA2MTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suaCBpbiBI
ZWFkZXJzICovLAorCQkJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBODRGMDUxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9s
bENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjA1QUVEMTVGOTQ4NDgwMDRERjBD
MCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNjJFRTgx
NERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTMyMTUzLDYgKzMyMTc4LDcgQEAKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyog
U2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUFGRThEMDE5Q0I4
NjcyMDAwRjU2RDggLyogU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODNDNTc5NUQxREE1QzMwMTAwNkY5Qzg2IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUY0Nzg3NTU0MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ2NzI5MjgxRTBERTY4NTAw
QUNDM0Q4IC8qIFNjcm9sbFNuYXBPZmZzZXRzSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
NTc5NUQxREE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwCmluZGV4IDFjNGUzNmYxNDkuLmQ0YWJmMjNiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMzkzLDYgKzMzOTMs
MTAgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclBy
b3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwogICAgICAgICAg
ICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVUb3Vj
aCk7CiAjZW5kaWYKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2aW9yOgorICAg
ICAgICAgICAgaWYgKCFzdHlsZS51c2VTbW9vdGhTY3JvbGxpbmcoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8p
OworICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVTbW9vdGgpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGVyc3BlY3RpdmU6CiAg
ICAgICAgICAgICBpZiAoIXN0eWxlLmhhc1BlcnNwZWN0aXZlKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IDQxNTc4YTk0ZWQuLmY5ODJk
M2Y1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzU1Nyw2ICsz
NTU3LDE2IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIv
U1ZHL3NoYXBlcy5odG1sIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Ny
b2xsLWJlaGF2aW9yIjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAg
ICAiYXV0byIsCisgICAgICAgICAgICAgICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
Y3Nzb20tdmlldyIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9
CisgICAgICAgIH0sCiAgICAgICAgICJzaGFwZS1yZW5kZXJpbmciOiB7CiAgICAgICAgICAgICAi
aW5oZXJpdGVkIjogdHJ1ZSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCkBAIC02NDg5LDYgKzY0
OTksMjIgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9j
c3MtdWktNC8jcHJvcGRlZi11c2VyLXNlbGVjdCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwK
KyAgICAgICAgInNjcm9sbC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisg
ICAgICAgICAgICAgICAgImF1dG8iLAorICAgICAgICAgICAgICAgICJzbW9vdGgiCisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAg
ICAgICAiY29udmVydGVyIjogIlNtb290aFNjcm9sbGluZyIsCisgICAgICAgICAgICAgICAgIm5h
bWUtZm9yLW1ldGhvZHMiOiAiVXNlU21vb3RoU2Nyb2xsaW5nIgorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJleHBlcmlt
ZW50YWwiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7Cisg
ICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAg
ICAgICAgICJzY3JvbGwtcGFkZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRp
ZXMiOiB7CiAgICAgICAgICAgICAgICAgImVuYWJsZS1pZiI6ICJFTkFCTEVfQ1NTX1NDUk9MTF9T
TkFQIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggOGRmZTNhYmIy
MS4uZGE4MjY5ZTYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAg
LTEzODgsNiArMTM4OCwxMCBAQCBwYW4teQogcGluY2gtem9vbQogI2VuZGlmCiAKKy8vIHNjcm9s
bC1iZWhhdmlvcgorLy8gYXV0bworc21vb3RoCisKIC8vIGhhbmdpbmctcHVuY3R1YXRpb24KIGFs
bG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNv
bnRleHQuY3BwCmluZGV4IDc1MzcxODhjYjkuLjcxZjlhYTYyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcApAQCAtNzUsNiArNzUsNyBAQCBD
U1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgVVJMJiBzaGVldEJhcwogICAgIGF0dGFjaG1lbnRFbmFibGVkID0gUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQo
KTsKICNlbmRpZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRp
bmdzKCkuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CisgICAgc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
KCk7CiAgICAgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IGRvY3VtZW50LnBhZ2UoKSA/IGRvY3VtZW50
LnBhZ2UoKS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpIDogZmFsc2U7CiB9CiAKQEAgLTk5LDYgKzEw
MCw3IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBD
U1NQYXJzZXJDb250ZXh0JiBiKQogICAgICAgICAmJiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIu
YXR0YWNobWVudEVuYWJsZWQKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2Vy
RW5hYmxlZCA9PSBiLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAorICAgICAgICAmJiBhLnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCA9PSBiLnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBh
Lmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
CiAgICAgICAgICYmIGEudXNlU3lzdGVtQXBwZWFyYW5jZSA9PSBiLnVzZVN5c3RlbUFwcGVhcmFu
Y2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmlu
ZGV4IDg2NTI1ZmQ3MGMuLmM3NGRjOTRjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBib29s
IGF0dGFjaG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRD
U1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0
IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4g
eyBmYWxzZSB9OwpAQCAtMTE2LDcgKzExNyw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFz
aCB7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAgICAgICYga2V5LmF0
dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYKLSAg
ICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDEyCisgICAgICAgICAgICAmIGtleS5t
b2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0
aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJpdHMpOwogICAgICAgICBy
ZXR1cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckZhc3RQYXRocy5jcHAKaW5kZXggMzFkMTJhYjlhYi4uNDIxMjg4OWVkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtNjM2
LDEwICs2MzYsNiBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9w
ZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZAogICAgICAgICAgICAgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVN0aWNreSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0U3RpY2t5
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6IC8vIG5vbmUgfCBib3RoIHwgaG9yaXpvbnRh
bCB8IHZlcnRpY2FsIHwgYXV0bwogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5v
bmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJvdGggfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUhvcml6
b250YWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVZlcnRpY2FsIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvOwotICAgIC8vIEZJWE1FLU5FV1BBUlNFUjogSW52ZXN0aWdhdGUgdGhpcyBwcm9wZXJ0
eS4KLSAgICAvLyBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsQmVoYXZpb3I6IC8vIGF1dG8gfCBzbW9v
dGgKLSAgICAvLyAgICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmNzc29tU21vb3Ro
U2Nyb2xsRW5hYmxlZCgpKTsKLSAgICAvLyAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0
byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU21vb3RoOwogICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFw
ZVJlbmRlcmluZzoKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDcmlz
cGVkZ2VzIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVHZW9tZXRyaWNQcmVjaXNpb247CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVqb2luOgpAQCAtOTM5LDcgKzkzNSw2IEBAIGJvb2wgQ1NT
UGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJZCkKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5Rm9udEtlcm5pbmc6CiAgICAgLy8gY2FzZSBD
U1NQcm9wZXJ0eUh5cGhlbnM6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93QW5jaG9y
OgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKICAgICAvLyBjYXNlIENT
U1Byb3BlcnR5U2Nyb2xsU25hcFR5cGU6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGln
bkxhc3Q6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRDb21iaW5lVXByaWdodDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggZWJk
MGVhZjVmNi4uNjNmNWFiNTJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTIzMjcsNiArMjMyNywxNCBAQCBzdGF0aWMgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlKQogCiAjZW5kaWYKIAorc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29u
c3VtZVNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1
dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5pZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENTU1Zh
bHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlU21vb3RoKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3RhdGljIFJlZlB0
cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChyYW5n
ZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTM5MjcsNiArMzkz
NSwxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZh
bHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3Jv
bGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxTbmFwVHlwZShtX3Jhbmdl
KTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKKyAgICAgICAg
aWYgKCFtX2NvbnRleHQuc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVybiBjb25zdW1lQ2xpcCht
X3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDcwZDllMWIwYWUuLmJlNWE4NTI2YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTgzMiw3ICs4MzIsNiBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9W
aWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgog
ICAgIGJvb2wgaW5zaWRlRml4ZWQ7CiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJvdW5kcyA9IHJl
bmRlcmVyKCktPmFic29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwogCi0gICAgLy8gRklY
TUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCiAgICAgU2Ny
b2xsSW50b1ZpZXdPcHRpb25zIG9wdGlvbnM7CiAgICAgaWYgKGFyZykgewogICAgICAgICBhdXRv
IHZhbHVlID0gYXJnLnZhbHVlKCk7CkBAIC04NTEsNyArODUwLDggQEAgdm9pZCBFbGVtZW50Ojpz
Y3JvbGxJbnRvVmlldyhPcHRpb25hbDxWYXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9u
cz4+JiYgYXIKICAgICAgICAgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLAogICAgICAgICBp
c0hvcml6b250YWwgPyBhbGlnblggOiBhbGlnblksCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFs
aWduWSA6IGFsaWduWCwKLSAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6
Tm8KKyAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8sCisgICAgICAg
IG9wdGlvbnMuYmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0bykKICAgICB9Owog
ICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYWJzb2x1dGVCb3VuZHMsIGluc2lk
ZUZpeGVkLCB2aXNpYmxlT3B0aW9ucyk7CiB9CkBAIC05MTIsNyArOTEyLDcgQEAgdm9pZCBFbGVt
ZW50OjpzY3JvbGxCeShjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMpCiAKIHZvaWQgRWxl
bWVudDo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIHNjcm9sbEJ5KHsgeCwg
eSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMoeCwgeSkpOwogfQogCiB2b2lkIEVs
ZW1lbnQ6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpCkBAIC05NDgsMTMgKzk0OCwxNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9s
bFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBp
bmcpCiAgICAgICAgIGFkanVzdEZvckFic29sdXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsTGVmdCgp
LCAqcmVuZGVyZXIpLAogICAgICAgICBhZGp1c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVyZXItPnNj
cm9sbFRvcCgpLCAqcmVuZGVyZXIpCiAgICAgKTsKLSAgICByZW5kZXJlci0+c2V0U2Nyb2xsTGVm
dChjbGFtcFRvSW50ZWdlcihzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXIt
PnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFt
cGluZyk7Ci0gICAgcmVuZGVyZXItPnNldFNjcm9sbFRvcChjbGFtcFRvSW50ZWdlcihzY3JvbGxU
b09wdGlvbnMudG9wLnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKKyAgICBJbnRQb2ludCBzY3Jv
bGxQb3NpdGlvbigKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLmxlZnQu
dmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksCisgICAgICAgIGNs
YW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSkKKyAgICApOworICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9v
dGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZp
b3I6OkF1dG8pLCAqdGhpcyk7CisgICAgcmVuZGVyZXItPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkLCBjbGFtcGluZyk7
CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAg
IHNjcm9sbFRvKHsgeCwgeSB9KTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSkp
OwogfQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5VW5pdHMoaW50IHVuaXRzLCBTY3JvbGxHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKQEAgLTEyODgsMTMgKzEyOTIsMTkgQEAgdm9pZCBFbGVtZW50
OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0KQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxp
bmdFbGVtZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVu
dEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRT
Y3JvbGxQb3NpdGlvbihJbnRQb2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmll
dygpLT5zY3JvbGxZKCkpKTsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFt
ZVdpdGhOb25OdWxsVmlldygpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVz
ZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAvLyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQorICAgICAgICAgICAg
Ym9vbCBhbmltYXRlZCA9IGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3Ro
U2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1l
bnQoKSk7CisgICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQ
b2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAq
IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmlldygpLT5zY3JvbGxZKCkpLCBh
bmltYXRlZCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChh
dXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKSB7Ci0gICAgICAgIHJlbmRlcmVyLT5zZXRTY3Jv
bGxMZWZ0KHN0YXRpY19jYXN0PGludD4obmV3TGVmdCAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVj
dGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyk7CisgICAgICAgIGludCBjbGFt
cGVkTGVmdCA9IGNsYW1wVG9JbnRlZ2VyKG5ld0xlZnQgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZl
Y3RpdmVab29tKCkpOworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5n
KFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3Jv
bGxMZWZ0KGNsYW1wZWRMZWZ0LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkKTsK
ICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVyKCkpCiAg
ICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3Rh
dGUodHJ1ZSk7CiAgICAgfQpAQCAtMTMwNSwxMyArMTMxNSwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNl
dFNjcm9sbFRvcChpbnQgbmV3VG9wKQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVt
ZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1l
V2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQ
b3NpdGlvbihJbnRQb2ludChmcmFtZS0+dmlldygpLT5zY3JvbGxYKCksIHN0YXRpY19jYXN0PGlu
dD4obmV3VG9wICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZh
Y3RvcigpKSkpOworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5v
bk51bGxWaWV3KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3Vt
ZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICBib29sIGFu
aW1hdGVkID0gZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxp
bmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICpkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsK
KyAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZy
YW1lLT52aWV3KCktPnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKSwgYW5pbWF0ZWQp
OworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoYXV0byogcmVu
ZGVyZXIgPSByZW5kZXJCb3goKSkgewotICAgICAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKHN0
YXRpY19jYXN0PGludD4obmV3VG9wICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgp
KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKKyAgICAgICAgaW50IGNsYW1wZWRUb3AgPSBj
bGFtcFRvSW50ZWdlcihuZXdUb3AgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
OworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2
aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3AoY2xhbXBl
ZFRvcCwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7CiAgICAgICAgIGlmIChh
dXRvKiBzY3JvbGxhYmxlQXJlYSA9IHJlbmRlcmVyLT5sYXllcigpKQogICAgICAgICAgICAgc2Ny
b2xsYWJsZUFyZWEtPnNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKHRydWUpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAwNTY4YjA2OWRjLi4yOGI0NjVmMGRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNTk1LDcgKzE1OTUsNyBAQCBkb3Vi
bGUgRE9NV2luZG93OjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIAogdm9pZCBET01XaW5kb3c6
OnNjcm9sbEJ5KGRvdWJsZSB4LCBkb3VibGUgeSkgY29uc3QKIHsKLSAgICBzY3JvbGxCeSh7IHgs
IHkgfSk7CisgICAgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKHgsIHkpKTsKIH0KIAogdm9pZCBE
T01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QK
QEAgLTE2MTcsMTAgKzE2MTcsMTAgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNj
cm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QKIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbFRv
KGRvdWJsZSB4LCBkb3VibGUgeSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpIGNvbnN0CiB7Ci0g
ICAgc2Nyb2xsVG8oeyB4LCB5IH0sIGNsYW1waW5nKTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09w
dGlvbnMoeCwgeSksIGNsYW1waW5nKTsKIH0KIAotdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNv
bnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0Cit2b2lk
IERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3Jv
bGxDbGFtcGluZyBjbGFtcGluZykgY29uc3QKIHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxh
eWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNjMzLDEyICsxNjMzLDIyIEBAIHZv
aWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMsIFNj
cm9sbENsYW1waW5nKSBjb25zdAogICAgICAgICB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9u
KCkueCgpLCB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkueSgpCiAgICAgKTsKIAotICAg
IGlmICghc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Nyb2xsVG9PcHRpb25zLnRv
cC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKSA9PSBJbnRQb2ludCgw
LCAwKSkKKyAgICAvLyBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiBmb3IgdGhlIGNvbW1vbiBjYXNl
IG9mIHNjcm9sbGluZyB0byAoMCwgMCkgd2hlbiB0aGUgc2Nyb2xsZXIgaXMgYWxyZWFkeSBhdCB0
aGUgb3JpZ2luLgorICAgIC8vIElmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcywg
dGhpcyBvcHRpbWl6YXRpb24gaXMgc2tpcHBlZCB0byBlbnN1cmUgdGhhdCB0aGUgYW5pbWF0ZWQg
c2Nyb2xsIGlzIHJlYWxseSBzdG9wcGVkLgorICAgIGlmICh2aWV3LT5jdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYg
IXNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkgJiYgIXNjcm9sbFRvT3B0aW9ucy50b3AudmFs
dWUoKSAmJiB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkgPT0gSW50UG9pbnQoMCwgMCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgSW50UG9pbnQgbGF5b3V0UG9zKHZpZXctPm1hcEZy
b21DU1NUb0xheW91dFVuaXRzKHNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkpLCB2aWV3LT5t
YXBGcm9tQ1NTVG9MYXlvdXRVbml0cyhzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkpKTsKKwor
ICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQo
KT8KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTA1OQorICAgIGlmIChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhT
Y3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6
OkF1dG8pLCAqZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkpKSB7CisgICAgICAgIHZpZXct
PnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihsYXlvdXRQb3MsIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYywgY2xhbXBpbmcpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgdmlldy0+
c2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihsYXlvdXRQb3MpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggMDQwMTJmOWVmZi4uNzMxZTMyMjk5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMjI3OSw3ICsyMjc5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9s
bEVsZW1lbnRUb1JlY3QoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKICAgICBzZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChib3VuZHMueCgpIC0gY2VudGVyaW5n
T2Zmc2V0WCAtIHJlY3QueCgpLCBib3VuZHMueSgpIC0gY2VudGVyaW5nT2Zmc2V0WSAtIHJlY3Qu
eSgpKSk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sIGFuaW1hdGVk
KQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRnJhbWVWaWV3
OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uIDw8ICIgLCBjbGVhcmluZyBh
bmNob3IiKTsKIApAQCAtMjI5Miw3ICsyMjkyLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAgICAgUGFn
ZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwogICAgIGlmIChwYWdlICYmIHBhZ2UtPmlzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKCkpCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVu
dFRlc3RNb25pdG9yKHBhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKLSAgICBTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgaWYgKGFuaW1hdGVk
KQorICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBv
c2l0aW9uKHNjcm9sbFBvc2l0aW9uKSwgY3VycmVudFNjcm9sbFR5cGUoKSk7CisgICAgZWxzZQor
ICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CiAK
ICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShvbGRTY3JvbGxUeXBlKTsKIH0KQEAgLTM2NjAsNiAr
MzY2MywyNiBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24m
IG5ld1Bvc2l0aW9uKQogICAgIGRpZENoYW5nZVNjcm9sbE9mZnNldCgpOwogfQogCit2b2lkIEZy
YW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYg
b2Zmc2V0LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQoreworICAgIGF1
dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAg
c2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygp
ID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAg
c2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CisgICAgaWYgKG9mZnNldCAhPSB0
aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zm
c2V0V2l0aEFuaW1hdGlvbihvZmZzZXQpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZp
b3VzU2Nyb2xsVHlwZSk7Cit9CisKIGZsb2F0IEZyYW1lVmlldzo6YWRqdXN0U2Nyb2xsU3RlcEZv
ckZpeGVkQ29udGVudChmbG9hdCBzdGVwLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKGdyYW51bGFyaXR5
ICE9IFNjcm9sbEJ5UGFnZSB8fCBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggZTM2Zjk5NjgwNC4uYjM3ZjA2MGUzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0yMjMsNyArMjIzLDcgQEAgcHVibGljOgogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpeGVkVmlz
aWJsZUNvbnRlbnRSZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICNlbmRpZgotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBm
aW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNj
cm9sbFBvc2l0aW9uJiwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIHJl
c3RvcmVTY3JvbGxiYXIoKTsKICAgICB2b2lkIHNjaGVkdWxlU2Nyb2xsVG9Gb2N1c2VkRWxlbWVu
dChTZWxlY3Rpb25SZXZlYWxNb2RlKTsKICAgICB2b2lkIHNjcm9sbFRvRm9jdXNlZEVsZW1lbnRJ
bW1lZGlhdGVseUlmTmVlZGVkKCk7CkBAIC02NTksNiArNjU5LDggQEAgcHVibGljOgogCiAgICAg
dm9pZCByZW5kZXJMYXllckRpZFNjcm9sbChjb25zdCBSZW5kZXJMYXllciYpOwogCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xs
T2Zmc2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xh
bXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisKIHByb3RlY3RlZDoKICAgICBib29s
IHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwog
ICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNGVkMjljYjQyYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEJlaGF2aW9yLmgiCisKKyNpbmNsdWRlICJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29s
IHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvciBiZWhhdmlvciwgRWxlbWVudCYgYXNz
b2NpYXRlZEVsZW1lbnQpCit7CisgICAgaWYgKCFhc3NvY2lhdGVkRWxlbWVudC5kb2N1bWVudCgp
LnNldHRpbmdzKCkuQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCgpIHx8ICFhc3NvY2lh
dGVkRWxlbWVudC5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nCisgICAgc3dpdGNo
IChiZWhhdmlvcikgeworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OkF1dG86CisgICAgICAgIHJl
dHVybiBhc3NvY2lhdGVkRWxlbWVudC5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZVNtb290aFNjcm9s
bGluZygpOworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQ6CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBjYXNlIFNjcm9sbEJlaGF2aW9yOjpTbW9vdGg6CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVo
YXZpb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xYmFlZjg4MWU4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5o
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxl
bWVudDsKKworZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIEF1dG8g
PSAwLAorICAgIEluc3RhbnQsCisgICAgU21vb3RoCit9OworCitib29sIHVzZVNtb290aFNjcm9s
bGluZyhTY3JvbGxCZWhhdmlvciwgRWxlbWVudCYgYXNzb2NpYXRlZEVsZW1lbnQpOworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9s
bEJlaGF2aW9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjg5NzFhZTkzN2EKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmlkbApAQCAtMCww
ICsxLDI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K2VudW0gU2Nyb2xsQmVoYXZpb3IgeyAiYXV0byIsICJpbnN0YW50IiwgInNtb290aCIgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oCmluZGV4IDkzOWNkNzM0
MjUuLmYyNzVmMmZiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50
b1ZpZXdPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09w
dGlvbnMuaApAQCAtMjAsMTIgKzIwLDExIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNj
cm9sbExvZ2ljYWxQb3NpdGlvbi5oIgorI2luY2x1ZGUgIlNjcm9sbE9wdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBFbGVtZW50OwotCi1zdHJ1Y3QgU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zIHsKK3N0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnMgOiBTY3JvbGxPcHRpb25z
IHsKICAgICBPcHRpb25hbDxTY3JvbGxMb2dpY2FsUG9zaXRpb24+IGJsb2NrUG9zaXRpb24geyBT
Y3JvbGxMb2dpY2FsUG9zaXRpb246OlN0YXJ0IH07CiAgICAgT3B0aW9uYWw8U2Nyb2xsTG9naWNh
bFBvc2l0aW9uPiBpbmxpbmVQb3NpdGlvbiB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6TmVhcmVz
dCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlk
bAppbmRleCBjZjlkMWZkNzY3Li4xYjI0YzY4NmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsCkBAIC0xNyw4ICsxNyw3IEBACiAgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQz
KTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRp
b25zIHsKK2RpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7
CiAgICAgW0ltcGxlbWVudGVkQXM9YmxvY2tQb3NpdGlvbl0gU2Nyb2xsTG9naWNhbFBvc2l0aW9u
IGJsb2NrID0gInN0YXJ0IjsKICAgICBbSW1wbGVtZW50ZWRBcz1pbmxpbmVQb3NpdGlvbl0gU2Ny
b2xsTG9naWNhbFBvc2l0aW9uIGlubGluZSA9ICJuZWFyZXN0IjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2Nyb2xsT3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmUx
ODY3YzYwMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9w
dGlvbnMuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU2Nyb2xsT3B0aW9ucyB7CisgICAg
T3B0aW9uYWw8U2Nyb2xsQmVoYXZpb3I+IGJlaGF2aW9yIHsgU2Nyb2xsQmVoYXZpb3I6OkF1dG8g
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9w
dGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMyOWQ2ZmYx
MDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMu
aWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworZGljdGlvbmFyeSBTY3JvbGxPcHRpb25zIHsKKyAgICBTY3JvbGxCZWhhdmlv
ciBiZWhhdmlvciA9ICJhdXRvIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Njcm9sbFRvT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMu
aAppbmRleCBjZTFjYmExYzdjLi5mNTc3NGQ0NGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xs
VG9PcHRpb25zLmgKQEAgLTI4LDE0ICsyOCwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIlNjcm9sbE9wdGlvbnMuaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgU2Nyb2xsVG9PcHRpb25z
IHsKK3N0cnVjdCBTY3JvbGxUb09wdGlvbnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBPcHRpb25h
bDxkb3VibGU+IGxlZnQ7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiB0b3A7CisKKyAgICBTY3JvbGxU
b09wdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAgU2Nyb2xsVG9PcHRpb25zKGRvdWJsZSB4LCBkb3Vi
bGUgeSkKKyAgICAgICAgOiBsZWZ0KHgpCisgICAgICAgICwgdG9wKHkpCisgICAgeyB9CiB9Owog
CiBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlv
bmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZSBmYWxsYmFja1ZhbHVlKQpAQCAtNDcsNyArNTQsNyBA
QCBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlv
bmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZQogLy8gRklYTUUoaHR0cHM6Ly93ZWJraXQub3JnL2Iv
ODgzMzkpOiBDb25zaWRlciB1c2luZyBGbG9hdFBvaW50IG9yIERvdWJsZVBvaW50IGZvciBmYWxs
YmFjayBhbmQgcmV0dXJuIHZhbHVlcy4KIGlubGluZSBTY3JvbGxUb09wdGlvbnMgbm9ybWFsaXpl
Tm9uRmluaXRlQ29vcmRpbmF0ZXNPckZhbGxCYWNrVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiB2
YWx1ZSwgZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25z
OworICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zID0gdmFsdWU7CiAgICAgb3B0aW9ucy5sZWZ0
ID0gbm9ybWFsaXplTm9uRmluaXRlVmFsdWVPckZhbGxCYWNrVG8odmFsdWUubGVmdCwgeCk7CiAg
ICAgb3B0aW9ucy50b3AgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tUbyh2YWx1
ZS50b3AsIHkpOwogICAgIHJldHVybiBvcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxU
b09wdGlvbnMuaWRsCmluZGV4IDUxMGJjMDcxYTYuLjJiOWI1NTQxMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKQEAgLTI2LDggKzI2LDcgQEAKICAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotLy8gRklYTUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVo
YXZpb3IuCi1kaWN0aW9uYXJ5IFNjcm9sbFRvT3B0aW9ucyB7CitkaWN0aW9uYXJ5IFNjcm9sbFRv
T3B0aW9ucyA6IFNjcm9sbE9wdGlvbnMgewogICAgIHVucmVzdHJpY3RlZCBkb3VibGUgbGVmdDsK
ICAgICB1bnJlc3RyaWN0ZWQgZG91YmxlIHRvcDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlh
bWwKaW5kZXggYjMyOWYxMjQ3OS4uMWQ3OWY0NTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbApAQCAtNjIyLDYgKzYyMiw5IEBAIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6
CiBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCitDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBpbnB1dEV2
ZW50c0VuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRl
eCA0MjllZWU5YTk2Li4wMmQ1ODk3NTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4
LDcgKzI0OCwxNiBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tG
b3J3YXJkQ2FjaGUgPSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRD
YWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29s
IGluUHJvZ3JhbW1hdGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUo
KSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Ny
b2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRp
b24gPSBpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisKKyAgICBi
b29sIGFuaW1hdGVkID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhbmlt
YXRlZCA9IHNjcm9sbGFibGVBcmVhLmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSA9PSBTY3Jv
bGxCZWhhdmlvclR5cGU6OlNtb290aDsKKyAgICAvLyBUaGUgc2Nyb2xsIHBvc2l0aW9uIG9mIGFu
aW1hdGVkIHNjcm9sbGluZyB3aWxsIGJlIHNldCBieSB0aGUgVUkgcHJvY2Vzcy4gU28gc2hvdWxk
bid0IHNldCBpdCBub3cuCisgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSAhYW5pbWF0ZWQgJiYg
dXBkYXRlU2Nyb2xsUG9zaXRpb247CisjZW5kaWYKKyAgICBpZiAodXBkYXRlU2Nyb2xsUG9zaXRp
b24pCiAgICAgICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3JvbGxp
bmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCB7IH0sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIAogICAgIC8vIElmIHRoaXMgZnJh
bWUgdmlldydzIGRvY3VtZW50IGlzIGJlaW5nIHB1dCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUsIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIG91cgpAQCAtMjYwLDcgKzI2OSwxMiBAQCBib29s
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShT
Y3JvbGxhYmxlQXJlYSYgc2NybwogICAgIGlmICghc3RhdGVOb2RlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBhdXRvIHN0YXR1cyA9IGFuaW1hdGVkID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Oklu
TmF0aXZlQW5pbWF0aW9uIDogU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOwor
ICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKHN0YXR1cyk7CisjZW5k
aWYKKworICAgIHN0YXRlTm9kZS0+c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9z
aXRpb24sIGluUHJvZ3JhbW1hdGljU2Nyb2xsLCBhbmltYXRlZCk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTI5MSw2ICszMDUsMzIgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBt
X3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29s
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGZy
YW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZy
YW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXct
PnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhT
Y3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9s
bGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQobm9k
ZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAg
ICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhh
dmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5ub2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBk
YXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9y
dE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRl
TGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4u
M2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3lu
Y1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25h
bDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhT
Y3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWxJbmRleCwgdW5zaWduZWQgdmVydGlj
YWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3MTdiZmMyYTU1Li40ZTQw
MTRlOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29u
c3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
V2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0
aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2Rl
LmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0yMTksMTAgKzIyMiwxNSBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0
IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFt
cyk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwg
Ym9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlvbikKIHsKICAgICBtX3JlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgbV9yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gPSByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0ocmVxdWVzdGVkV2l0aEFuaW1hdGlvbik7CisjZW5kaWYKICAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQogCkBAIC0z
MTQsNiArMzIyLDExIEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJv
cGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUCiAgICAgaWYgKG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogICAgICAgICB0
cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gcmVwcmVzZW50cyBwcm9n
cmFtbWF0aWMgc2Nyb2xsIiwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisgICAgICAgIHRzLmR1bXBQcm9w
ZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB3aXRoIGFuaW1hdGlvbiIsIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3Bh
cmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICB0cy5kdW1wUHJv
cGVydHkoInBhcmVudCByZWxhdGl2ZSBzY3JvbGxhYmxlIHJlY3QiLCBtX3BhcmVudFJlbGF0aXZl
U2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDQ5NjdhNmNlODEu
LjZjNjkyYzFkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xMTEsNyArMTExLDEwIEBA
IHB1YmxpYzoKIAogICAgIGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsgfQogICAgIGJvb2wg
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgY29u
c3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGw7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHJlcXVlc3RlZFdpdGhBbmltYXRpb24pOwogCiAg
ICAgYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faXNNb25p
dG9yaW5nV2hlZWxFdmVudHM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKGJvb2wpOwpAQCAtMTcxLDYgKzE3NCw5IEBAIHByaXZhdGU6CiAgICAg
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogCiAg
ICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCB7IGZhbHNlIH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgogICAg
IGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggMTUxYWMyOWY4
YS4uN2FkZGZlZjRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaApAQCAtODIsOCArODIsMTMgQEAgcHVibGljOgogICAgIC8vIFVwZGF0ZXMgRnJh
bWVWaWV3L1JlbmRlckxheWVyIHNjcm9sbGluZyBzdGF0ZSBhbmQgR3JhcGhpY3NMYXllcnMuCiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlJiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb246OlN5bmMpID0gMDsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgLy8gQ2FsbGVkIGZvciBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cyB1cGRhdGVzLgorICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgLyppc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MqLykgeyB9CisjZW5kaWYKKwogICAgIC8vIENhbGxlZCBmb3IgcmVxdWVz
dGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzLgotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
LypzY3JvbGxQb3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCov
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChT
Y3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9zaXRpb24qLywgYm9v
bCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLywgYm9vbCAvKndpdGhBbmltYXRpb24q
LyA9IGZhbHNlKSB7IH0KIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxpbmcvem9vbWluZyBoYXMg
Y2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2aWV3cG9ydC1jb25zdHJh
aW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5GcmFtZVZpZXdwb3J0Q2hh
bmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwgZG91YmxlIHNjYWxl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYxLi4xN2M3ZjJhOGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3LDEyIEBAIHZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Ny
b2xsaW5nU3RhdGVOCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCiB7CiAg
ICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3JvbGxpbmdTdGF0ZU5vZGUg
PSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CisgICAg
Ym9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICB3aXRoQW5pbWF0aW9uID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uV2l0aEFuaW1hdGlvbigpOworI2VuZGlmCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbikpCi0gICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyAgICAgICAgc2Nyb2xs
aW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlE
KCksIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxp
bmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsKCksIHdpdGhBbmltYXRpb24pOwogCiAgICAgbV9pc0ZpcnN0Q29tbWl0ID0gZmFsc2U7
CiB9CkBAIC0xNTcsMjEgKzE2MSw0MSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBTY3JvbGxQb3NpdGlvbgogICAgIHNj
cm9sbFRvKGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpICsgZGVsdGEsIFNjcm9sbFR5cGU6OlVzZXIs
IGNsYW1wKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8o
Y29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
UG9zaXRpb25DbGFtcCBjbGFtcCkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNj
cm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUs
IFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXAsIGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbikK
IHsKLSAgICBpZiAocG9zaXRpb24gPT0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24pCisgICAgaWYg
KHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSB7CisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAgICAgLy8gU2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIg
cHJvY2Vzcy4KKyAgICAgICAgaWYgKHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpICYmIG5lZWRTeW5j
U2Nyb2xsUG9zaXRpb24pCisgICAgICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwoKnRoaXMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMp
OworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uoc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAg
ICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGZhbHNlKTsKKyNlbHNlCisgICAgICAgIFVOVVNF
RF9QQVJBTShuZWVkU3luY1Njcm9sbFBvc2l0aW9uKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47
CisgICAgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBJZiBkdXJpbmcgYSBz
Y3JvbGwgYW5pbWF0aW9uLCBuZWVkIHRvIHN0b3AgaXQgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9u
ZS4KKyAgICBpZiAoc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpKQorICAgICAgICBzZXROZWVk
c1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKHRydWUpOworI2VuZGlmCiAgICAgc2Nyb2xsaW5n
VHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Nyb2xsVHlwZSA9PSBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMpOwotICAgIAorCiAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRp
b24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7Ci0gICAgCisKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBzY3JvbGxUbyAiIDw8IHBvc2l0
aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFzdCBjb21taXR0ZWQgcG9zaXRpb24gIiA8PCAobV9sYXN0
Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gLSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgPDwgIiki
KTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CiAgICAg
Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNl
dElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOworCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGZhbHNlKTsK
KyAgICBzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoZmFsc2UpOworI2VuZGlmCiB9CiAKIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQo
KQpAQCAtMTc5LDYgKzIwMywxMCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpj
dXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKICAgICByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5
ZXJzKCk7CiAgICAgcmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKTsKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgaWYgKCFyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSkKKyAgICAgICAgcmV0
dXJuOworI2VuZGlmCiAgICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlmeVJlbGF0ZWROb2Rlc0FmdGVy
U2Nyb2xsUG9zaXRpb25DaGFuZ2UoKnRoaXMpOwogICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcyk7CiB9CkBAIC0yNjYsNiArMjk0LDM3IEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRz
LCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAgdHMuZHVtcFByb3BlcnR5KCJzY3JvbGxhYmxlIGFyZWEg
cGFyYW1ldGVycyIsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKTsKIH0KIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1
ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCBhbmltYXRlZCkKK3sKKyAgICBtX3JlcXVlc3RBbmltYXRl
ZFNjcm9sbCA9IGFuaW1hdGVkOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3RB
bmltYXRlZFNjcm9sbDsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sIGluUHJvZ3Jlc3MpCit7CisgICAgbV9zY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzID0gaW5Qcm9ncmVzczsKK30KKworYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzczsKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihi
b29sIHN0b3ApCit7CisgICAgbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uID0gc3Rv
cDsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbjsKK30KKyNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4
IDRjYmY0ZDFhZjAuLmY5ZjMxMGRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNjAsNyAr
NjAsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gLSBtX2xhc3RDb21taXR0
ZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8gVGhlc2UgYXJlIGltcGVyYXRpdmU7IHRoZXkg
YWRqdXN0IHRoZSBzY3JvbGxpbmcgbGF5ZXJzLgotICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxv
YXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlvbkNs
YW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOworICAgIHZvaWQgc2Ny
b2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBT
Y3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMs
IGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiA9IGZhbHNlKTsKICAgICB2b2lkIHNjcm9sbEJ5
KGNvbnN0IEZsb2F0U2l6ZSYsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNs
YW1wOjpUb0NvbnRlbnRFZGdlcyk7CiAKICAgICB2b2lkIHdhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRT
Y3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UmVjdD4g
b3ZlcnJpZGVMYXlvdXRWaWV3cG9ydCA9IHsgfSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpOwpAQCAtOTEsNiArOTEsMTUg
QEAgcHVibGljOgogICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbENvbnRhaW5l
ckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxDb250YWluZXJMYXllcjsgfQogICAgIGNv
bnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbGVkQ29udGVudHNMYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIHZvaWQgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wpOworICAgIGJvb2wg
cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKGJvb2wpOworICAgIGJvb2wgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygp
IGNvbnN0OworICAgIHZvaWQgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29s
KTsKKyAgICBib29sIG5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUoU2Nyb2xs
aW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCkBAIC0xNDgs
NiArMTU3LDEyIEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogICAgIGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9
OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVxdWVzdEFuaW1hdGVk
U2Nyb2xsIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB7
IGZhbHNlIH07CisgICAgYm9vbCBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24geyBm
YWxzZSB9OworI2VuZGlmCisKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsQ29udGFp
bmVyTGF5ZXI7CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbGVkQ29udGVudHNMYXll
cjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCmluZGV4IGI3
YzFkMjRlYjQuLjUyM2E3N2YzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdGlvbi5oCkBAIC0zMiwxMiArMzIsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGbG9hdFBvaW50OwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CitlbnVtIGNsYXNzIFNjcm9sbENs
YW1waW5nIDogdWludDhfdDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0aW9uIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TY3JvbGxBbmltYXRpb24o
KSB7IH07CiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHksIGZsb2F0IC8qIHN0ZXAgKi8sIGZsb2F0IC8qIG11bHRpcGxpZXIgKi8p
IHsgcmV0dXJuIHRydWU7IH07CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBGbG9hdFBv
aW50JikgeyB9OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVu
dFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAppbmRleCBkMDY0ZTY5Mzc5Li4yY2E1
NzhhMzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b25TbW9vdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlv
blNtb290aC5jcHAKQEAgLTI4LDggKzI4LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJTY3JvbGxBbmltYXRpb25TbW9vdGguaCIKIAotI2lmIEVOQUJMRShTTU9PVEhfU0NST0xM
SU5HKQotCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVh
LmgiCiAKQEAgLTM4LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0
IGRvdWJsZSBmcmFtZVJhdGUgPSA2MDsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIHRpY2tUaW1lID0g
MV9zIC8gZnJhbWVSYXRlOwogc3RhdGljIGNvbnN0IFNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2
YWwgeyAxX21zIH07CitzdGF0aWMgY29uc3QgZG91YmxlIHNtb290aEZhY3RvckZvclByb2dyYW1t
YXRpY1Njcm9sbCA9IDU7CiAKIFNjcm9sbEFuaW1hdGlvblNtb290aDo6U2Nyb2xsQW5pbWF0aW9u
U21vb3RoKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgRmxvYXRQb2ludCYg
cG9zaXRpb24sIFdURjo6RnVuY3Rpb248dm9pZCAoRmxvYXRQb2ludCYmKT4mJiBub3RpZnlQb3Np
dGlvbkNoYW5nZWRGdW5jdGlvbikKICAgICA6IFNjcm9sbEFuaW1hdGlvbihzY3JvbGxhYmxlQXJl
YSkKQEAgLTY3LDkgKzY2LDIyIEBAIGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51CiAgICAgcmV0dXJu
IG5lZWRUb1Njcm9sbDsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNjcm9sbChj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3sKKyAgICBTY3JvbGxHcmFudWxhcml0eSBncmFu
dWxhcml0eSA9IFNjcm9sbEJ5UGFnZTsKKyAgICBib29sIG5lZWRUb1Njcm9sbCA9IHVwZGF0ZVBl
ckF4aXNEYXRhKG1faG9yaXpvbnRhbERhdGEsIGdyYW51bGFyaXR5LCBwb3NpdGlvbi54KCkgLSBt
X2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVt
U2Nyb2xsUG9zaXRpb24oKS54KCksIG1fc2Nyb2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0
aW9uKCkueCgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG5lZWRU
b1Njcm9sbCB8PQorICAgICAgICB1cGRhdGVQZXJBeGlzRGF0YShtX3ZlcnRpY2FsRGF0YSwgZ3Jh
bnVsYXJpdHksIHBvc2l0aW9uLnkoKSAtIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwg
bV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKS55KCksIG1fc2Nyb2xsYWJs
ZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueSgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFt
bWF0aWNTY3JvbGwpOworICAgIGlmIChuZWVkVG9TY3JvbGwgJiYgIWFuaW1hdGlvblRpbWVyQWN0
aXZlKCkpIHsKKyAgICAgICAgbV9zdGFydFRpbWUgPSBtX2hvcml6b250YWxEYXRhLnN0YXJ0VGlt
ZTsKKyAgICAgICAgYW5pbWF0aW9uVGltZXJGaXJlZCgpOworICAgIH0KK307CisKIHZvaWQgU2Ny
b2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKCkKIHsKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3Ao
KTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0aW9u
U21vb3RoOjp1cGRhdGVWaXNpYmxlTGVuZ3RocygpCkBAIC0yNDcsNyArMjU5LDcgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGdldEFuaW1hdGlvblBhcmFtZXRlcnNGb3JHcmFudWxhcml0eShTY3JvbGxH
cmFudWxhcml0eSBncmFudWwKICAgICB9CiB9CiAKLWJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
Ojp1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0YSYgZGF0YSwgU2Nyb2xsR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3JvbGxQb3NpdGlvbiwgZmxvYXQg
bWF4U2Nyb2xsUG9zaXRpb24pCitib29sIFNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlUGVy
QXhpc0RhdGEoUGVyQXhpc0RhdGEmIGRhdGEsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBv
c2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yKQogewogICAgIGlmICghZGF0YS5zdGFydFRpbWUg
fHwgIWRlbHRhIHx8IChkZWx0YSA8IDApICE9IChkYXRhLmRlc2lyZWRQb3NpdGlvbiAtIGRhdGEu
Y3VycmVudFBvc2l0aW9uIDwgMCkpIHsKICAgICAgICAgZGF0YS5kZXNpcmVkUG9zaXRpb24gPSBk
YXRhLmN1cnJlbnRQb3NpdGlvbjsKQEAgLTI2NCw2ICsyNzYsMTIgQEAgYm9vbCBTY3JvbGxBbmlt
YXRpb25TbW9vdGg6OnVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiBkYXRhLCBTY3JvbGxH
cmFudWxhcmkKICAgICBDdXJ2ZSBjb2FzdFRpbWVDdXJ2ZTsKICAgICBnZXRBbmltYXRpb25QYXJh
bWV0ZXJzRm9yR3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHksIGFuaW1hdGlvblRpbWUsIHJlcGVhdE1p
bmltdW1TdXN0YWluVGltZSwgYXR0YWNrVGltZSwgcmVsZWFzZVRpbWUsIGNvYXN0VGltZUN1cnZl
LCBtYXhpbXVtQ29hc3RUaW1lKTsKIAorICAgIGFuaW1hdGlvblRpbWUgKj0gc21vb3RoRmFjdG9y
OworICAgIHJlcGVhdE1pbmltdW1TdXN0YWluVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgYXR0
YWNrVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgcmVsZWFzZVRpbWUgKj0gc21vb3RoRmFjdG9y
OworICAgIG1heGltdW1Db2FzdFRpbWUgKj0gc21vb3RoRmFjdG9yOworCiAgICAgZGF0YS5kZXNp
cmVkUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsKICAgICBpZiAoIWRhdGEuc3RhcnRUaW1lKQogICAg
ICAgICBkYXRhLmF0dGFja1RpbWUgPSBhdHRhY2tUaW1lOwpAQCAtMzkyLDYgKzQxMCw4IEBAIHZv
aWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckZpcmVkKCkKIAogICAgIGlm
IChjb250aW51ZUFuaW1hdGlvbikKICAgICAgICAgc3RhcnROZXh0VGltZXIoc3RkOjptYXgobWlu
aW11bVRpbWVySW50ZXJ2YWwsIGRlbHRhVG9OZXh0RnJhbWUpKTsKKyAgICBlbHNlCisgICAgICAg
IG1fc2Nyb2xsYWJsZUFyZWEuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIAogICAgIG1fbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVu
Y3Rpb24oRmxvYXRQb2ludChtX2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV92ZXJ0
aWNhbERhdGEuY3VycmVudFBvc2l0aW9uKSk7CiB9CkBAIC00MDcsNSArNDI3LDMgQEAgYm9vbCBT
Y3JvbGxBbmltYXRpb25TbW9vdGg6OmFuaW1hdGlvblRpbWVyQWN0aXZlKCkgY29uc3QKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5o
CmluZGV4IDAyY2M0ZWUyYmQuLjgxNzNmYTdlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCkBAIC0yNywxNCArMjcsMTMgQEAKIAogI2lu
Y2x1ZGUgIlNjcm9sbEFuaW1hdGlvbi5oIgogCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
Ci0KICNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZs
b2F0UG9pbnQ7CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKK2VudW0gY2xhc3MgU2Nyb2xsQ2xhbXBp
bmcgOiB1aW50OF90OwogCiBjbGFzcyBTY3JvbGxBbmltYXRpb25TbW9vdGggZmluYWw6IHB1Ymxp
YyBTY3JvbGxBbmltYXRpb24gewogcHVibGljOgpAQCAtNTEsNiArNTAsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdy
YW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNjcm9sbChjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKQEAg
LTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaW50IHZpc2libGVMZW5ndGggeyAwIH07
CiAgICAgfTsKIAotICAgIGJvb2wgdXBkYXRlUGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmLCBTY3Jv
bGxHcmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9h
dCBtYXhTY3JvbGxQb3NpdGlvbik7CisgICAgYm9vbCB1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlz
RGF0YSYsIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9z
aXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yID0gMSk7
CiAgICAgYm9vbCBhbmltYXRlU2Nyb2xsKFBlckF4aXNEYXRhJiwgTW9ub3RvbmljVGltZSBjdXJy
ZW50VGltZSk7CiAKICAgICB2b2lkIHJlcXVlc3RBbmltYXRpb25UaW1lckZpcmVkKCk7CkBAIC0x
MDgsNCArMTA4LDMgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5jcHAKaW5kZXggYTYxMTg2ODM3ZC4uNGQ1OThjNzVhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAK
QEAgLTUyLDYgKzUzLDE4IEBAIFNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcihTY3JvbGxh
YmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgICwgbV9zY3JvbGxDb250cm9sbGVyKCp0aGlzKQog
I2VuZGlmCisgICAgLCBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbChtYWtlVW5pcXVlPFNj
cm9sbEFuaW1hdGlvblNtb290aD4oc2Nyb2xsYWJsZUFyZWEsIG1fY3VycmVudFBvc2l0aW9uLCBb
dGhpc10oRmxvYXRQb2ludCYmIHBvc2l0aW9uKSB7CisgICAgICAgIGF1dG8gcHJldmlvdXNTY3Jv
bGxUeXBlID0gbV9zY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsVHlwZSgpOworICAgICAgICBt
X3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKFNjcm9sbFR5cGU6OlByb2dyYW1t
YXRpYyk7CisgICAgICAgIGJvb2wgdXBkYXRlZCA9IG1fc2Nyb2xsYWJsZUFyZWEucmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpOworICAgICAgICBt
X3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7
CisgICAgICAgIGlmICh1cGRhdGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEZs
b2F0U2l6ZSBkZWx0YSA9IHBvc2l0aW9uIC0gbV9jdXJyZW50UG9zaXRpb247CisgICAgICAgIG1f
Y3VycmVudFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7CisgICAgICAgIG5vdGlmeVBvc2l0
aW9uQ2hhbmdlZChkZWx0YSk7CisgICAgfSkpCiB7CiB9CiAKQEAgLTc1LDYgKzg4LDE0IEBAIGJv
b2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHksCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCkKK3sKKyAg
ICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3Vy
cmVudFBvc2l0aW9uKTsKKyAgICBhdXRvIG5ld1Bvc2l0aW9uID0gU2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQsIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJsZUFy
ZWEuc2Nyb2xsT3JpZ2luKCkpKTsKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+
c2Nyb2xsKG5ld1Bvc2l0aW9uKTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbik7Cit9
CisKIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQogewogICAgIEZsb2F0UG9p
bnQgbmV3UG9zaXRvbiA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQo
b2Zmc2V0LCB0b0Zsb2F0U2l6ZShtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CkBA
IC0yNDUsNCArMjY2LDMzIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnJlbW92ZVdoZWVsRXZlbnRU
ZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdoZWVsRXZlbnRUCiB9CiAjZW5kaWYKIAor
dm9pZCBTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucygpCit7CisjaWYgIVVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Nj
cm9sbC0+c3RvcCgpOworI2VuZGlmCit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VT
Y3JvbGxBbmltYXRpb25zKCkKK3sKKyNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJ
TUVSKQorICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT5zZXJ2aWNlQW5pbWF0aW9u
KCk7CisjZW5kaWYKK30KKwordm9pZCBTY3JvbGxBbmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUo
KQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVu
Z3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJh
cihTY3JvbGxiYXIqKQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRh
dGVWaXNpYmxlTGVuZ3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jp
em9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopCit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0
aWNTY3JvbGwtPnVwZGF0ZVZpc2libGVMZW5ndGhzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IGE1YzY5
YzUzYjcuLjliN2MwOWI2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0
UG9pbnQ7CiBjbGFzcyBQbGF0Zm9ybVRvdWNoRXZlbnQ7CitjbGFzcyBTY3JvbGxBbmltYXRpb247
CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKIGNsYXNzIFNjcm9sbGJhcjsKIGNsYXNzIFdoZWVsRXZl
bnRUZXN0TW9uaXRvcjsKQEAgLTY4LDYgKzY5LDcgQEAgcHVibGljOgogICAgIC8vIFRoZSBiYXNl
IGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0ZWx5LCBuZXZlciBh
bmltYXRlcy4KICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBT
Y3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAKKyAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxD
bGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAogICAgIFNjcm9sbGFibGVBcmVh
JiBzY3JvbGxhYmxlQXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWE7IH0KQEAg
LTg1LDggKzg3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmKTsKICAgICBjb25zdCBGbG9hdFBvaW50JiBjdXJyZW50UG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2N1cnJlbnRQb3NpdGlvbjsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNh
bmNlbEFuaW1hdGlvbnMoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1h
dGlvbnMoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsQW5pbWF0aW9ucygpOworICAgIHZp
cnR1YWwgdm9pZCBzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpOwogCiAgICAgdmlydHVhbCB2b2lk
IGNvbnRlbnRBcmVhV2lsbFBhaW50KCkgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNl
RW50ZXJlZENvbnRlbnRBcmVhKCkgeyB9CkBAIC05NywxNiArOTksMTYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBtb3VzZUlzRG93bkluU2Nyb2xsYmFyKFNjcm9sbGJhciosIGJvb2wpIGNv
bnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRMaXZlUmVzaXplKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGNvbnRlbnRzUmVzaXplZCgpIGNvbnN0IHsgfQotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJl
c2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50QXJlYURpZFNob3coKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgY29udGVudEFyZWFEaWRIaWRlKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
bG9ja092ZXJsYXlTY3JvbGxiYXJTdGF0ZVRvSGlkZGVuKGJvb2wpIHsgfQogICAgIHZpcnR1YWwg
Ym9vbCBzY3JvbGxiYXJzQ2FuQmVBY3RpdmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAg
IHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikg
eyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFy
Kik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9s
bGJhciopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJQYXJ0TGF5
ZXJzKFNjcm9sbGJhciopIHsgfQpAQCAtMTUxLDYgKzE1Myw4IEBAIHByb3RlY3RlZDoKICAgICBT
Y3JvbGxDb250cm9sbGVyIG1fc2Nyb2xsQ29udHJvbGxlcjsKICNlbmRpZgogICAgIEZsb2F0UG9p
bnQgbV9jdXJyZW50UG9zaXRpb247CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQW5pbWF0
aW9uPiBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDg5MTE0OTEw
M2QuLmY2ZDM1NjY1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAt
NTQsNiArNTQsMjEgQEAgZW51bSBjbGFzcyBTY3JvbGxQb3NpdGlvbkNsYW1wIDogdWludDhfdCB7
CiAgICAgVG9Db250ZW50RWRnZXMsCiB9OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKK2VudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JUeXBlIDog
dWludDhfdCB7CisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgsCit9OworI2VuZGlmCisKK2VudW0g
Y2xhc3MgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgOiB1aW50OF90IHsKKyAgICBOb3RJbkFuaW1hdGlv
biwKKyAgICBJbk5vbk5hdGl2ZUFuaW1hdGlvbiwKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEluTmF0aXZlQW5pbWF0aW9uLAorI2VuZGlm
Cit9OworCiBpbmxpbmUgU2Nyb2xsRGlyZWN0aW9uIGxvZ2ljYWxUb1BoeXNpY2FsKFNjcm9sbExv
Z2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGlzVmVydGljYWwsIGJvb2wgaXNGbGlwcGVk
KQogewogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCmluZGV4IGIxMjZhOWMyYjcuLjFkMmMzMmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00NjEsMTAgKzQ2MSwxNCBAQCB2b2lkIFNjcm9sbFZp
ZXc6OmNvbXBsZXRlVXBkYXRlc0FmdGVyU2Nyb2xsVG8oY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpCiAgICAgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpOwogfQogCi12
b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBz
Y3JvbGxQb3NpdGlvbikKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sLyogYW5pbWF0ZWQqLykKIHsKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNj
cm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlm
IChwcm9oaWJpdHNTY3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00NzUsMTMgKzQ3
OSwxNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKIAogICAgIFNjcm9sbFBvc2l0aW9uIG5ld1Njcm9sbFBv
c2l0aW9uID0gIWRlbGVnYXRlc1Njcm9sbGluZygpID8gYWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRo
aW5SYW5nZShzY3JvbGxQb3NpdGlvbikgOiBzY3JvbGxQb3NpdGlvbjsKIAotICAgIGlmICgoIWRl
bGVnYXRlc1Njcm9sbGluZygpIHx8IGN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6
VXNlcikgJiYgbmV3U2Nyb2xsUG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKKyAg
ICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNj
cm9sbFR5cGU6OlVzZXIpICYmIGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9s
bEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiAmJiBuZXdTY3JvbGxQb3NpdGlvbiA9PSB0
aGlzLT5zY3JvbGxQb3NpdGlvbigpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoY3VycmVu
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0
aXZlQW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMo
KTsKKwogICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUobmV3U2Nyb2xsUG9zaXRp
b24pKQogICAgICAgICByZXR1cm47CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBv
c2l0aW9uKTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1
czo6Tm90SW5BbmltYXRpb24pOwogfQogCiBib29sIFNjcm9sbFZpZXc6OnNjcm9sbChTY3JvbGxE
aXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTUz
OCw3ICs1NDYsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Ny
b2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICAKICAgICBpZiAoIW1hbmFnZXNTY3Jv
bGxiYXJzKCkpIHsKICAgICAgICAgaWYgKHNjcm9sbE9yaWdpbkNoYW5nZWQoKSkgewotICAgICAg
ICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3Jv
bGxPZmZzZXRGcm9tUG9zaXRpb24oZGVzaXJlZFBvc2l0aW9uKSk7CisgICAgICAgICAgICBpZiAo
IXJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShkZXNpcmVkUG9zaXRpb24pKQorICAgICAgICAg
ICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oc2Ny
b2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOwogICAgICAgICAgICAgcmVz
ZXRTY3JvbGxPcmlnaW5DaGFuZ2VkKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDQzMDE2MGQ2YWUuLjUzOTgxMDgzOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTI2MCw3ICsyNjAsNyBAQCBw
dWJsaWM6CiAgICAgU2Nyb2xsUG9zaXRpb24gY2FjaGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX2NhY2hlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBGdW5jdGlvbnMgZm9y
IHNjcm9sbGluZyB0aGUgdmlldy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24o
Y29uc3QgU2Nyb2xsUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRp
b24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2UpOwogICAgIHZv
aWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYgcykgeyByZXR1cm4gc2V0U2Nyb2xsUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb24oKSArIHMpOyB9CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNjcm9sbHMg
YnkgbGluZXMsIHBhZ2VzIG9yIHBpeGVscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcAppbmRleCA5NmQwZjMwMGIzLi4xNTA3MDRjMmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC03MSw2ICs3MSw5IEBAIFNjcm9s
bGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSgpCiAgICAgLCBtX3Njcm9sbE9yaWdpbkNoYW5nZWQo
ZmFsc2UpCiAgICAgLCBtX2N1cnJlbnRTY3JvbGxUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihT
Y3JvbGxUeXBlOjpVc2VyKSkKICAgICAsIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUo
ZmFsc2UpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykKKyAgICAsIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KSkKKyNlbmRpZgogewogfQogCkBAIC0xNDIs
NiArMTQ1LDEyIEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhCiAgICAgcmV0dXJuIHNjcm9sbEFu
aW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGll
cik7CiB9CiAKK3ZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQoreworICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlz
IDw8ICIgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKKyAgICBzY3Jv
bGxBbmltYXRvcigpLnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7Cit9CisKIHZvaWQgU2Nyb2xsYWJs
ZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBv
ZmZzZXQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Nyb2xs
VG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKQEAgLTIyMSwxNiArMjMwLDE1
IEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1U
b3VjaEV2ZW50JiB0b3VjaEV2ZW50KQogLy8gTk9URTogT25seSBjYWxsZWQgZnJvbSBJbnRlcm5h
bHMgZm9yIHRlc3RpbmcuCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9t
SW50ZXJuYWxzKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogeworICAgIGlmIChyZXF1ZXN0
U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKQor
ICAgICAgICByZXR1cm47CisKICAgICBzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9uKG9mZnNl
dCk7CiB9CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRp
b24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQpCiB7Ci0gICAgU2Nyb2xsUG9zaXRpb24gcG9z
aXRpb24gPSBzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KTsKLSAgICBpZiAocmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9uKTsKKyAgICBzY3JvbGxQb3NpdGlvbkNoYW5n
ZWQoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpOwogfQogCiB2b2lkIFNjcm9sbGFi
bGVBcmVhOjp3aWxsU3RhcnRMaXZlUmVzaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCmluZGV4IGQ3NDM4YzE1Y2QuLjU1NjcyZjgxZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNjIsNyArNjIsMTEgQEAgaW5saW5lIGlu
dCBvZmZzZXRGb3JPcmllbnRhdGlvbihTY3JvbGxPZmZzZXQgb2Zmc2V0LCBTY3JvbGxiYXJPcmll
bnRhdGlvbiBvcmllbnQKIAogY2xhc3MgU2Nyb2xsYWJsZUFyZWEgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U2Nyb2xsYWJsZUFyZWE+IHsKIHB1YmxpYzoKKyAgICBTY3JvbGxCZWhhdmlvclN0YXR1
cyBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSB7IHJldHVybiBtX2N1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1czsgfQorICAgIHZvaWQgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xs
QmVoYXZpb3JTdGF0dXMgc3RhdHVzKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzID0g
c3RhdHVzOyB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rp
b24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2lu
dCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwg
ZmxvYXQgb2Zmc2V0KTsKIApAQCAtMjQyLDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xs
VHlwZSBjdXJyZW50U2Nyb2xsVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9s
bFR5cGU+KG1fY3VycmVudFNjcm9sbFR5cGUpOyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xs
VHlwZShTY3JvbGxUeXBlIHNjcm9sbFR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihzY3JvbGxUeXBlKTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3Vy
cmVudFNjcm9sbEJlaGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9s
bEJlaGF2aW9yVHlwZT4obV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQg
c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVo
YXZpb3JUeXBlKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihzY3JvbGxCZWhhdmlvclR5cGUpOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xs
U2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENs
ZWFyTGF0Y2hlZFN0YXRlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRT
dGF0ZShib29sIHNob3VsZENsZWFyKSB7IG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUg
PSBzaG91bGRDbGVhcjsgfQogCkBAIC0zNzgsNiArMzg3LDggQEAgcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX2N1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4IHsgMCB9OwogI2VuZGlmCiAKKyAg
ICBTY3JvbGxCZWhhdmlvclN0YXR1cyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyB7IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiB9OworCiAgICAgLy8gVGhlcmUgYXJl
IDggcG9zc2libGUgY29tYmluYXRpb25zIG9mIHdyaXRpbmcgbW9kZSBhbmQgZGlyZWN0aW9uLiBT
Y3JvbGwgb3JpZ2luIHdpbGwgYmUgbm9uLXplcm8gaW4gdGhlIHggb3IgeSBheGlzCiAgICAgLy8g
aWYgdGhlcmUgaXMgYW55IHJldmVyc2VkIGRpcmVjdGlvbiBvciB3cml0aW5nLW1vZGUuIFRoZSBj
b21iaW5hdGlvbnMgYXJlOgogICAgIC8vIHdyaXRpbmctbW9kZSAvIGRpcmVjdGlvbiAgICAgc2Ny
b2xsT3JpZ2luLngoKSBzZXQgICAgc2Nyb2xsT3JpZ2luLnkoKSBzZXQKQEAgLTQwMyw2ICs0MTQs
OSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZCA6IDE7CiAg
ICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9sbFR5cGUKICAgICB1
bnNpZ25lZCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHVuc2lnbmVkIG1f
Y3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMv
U2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVy
aWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcAppbmRleCAyMDhhZjdiODQ3Li5hZDMzMmMzMjgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1h
dG9yR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3Jv
bGxBbmltYXRvckdlbmVyaWMuY3BwCkBAIC0xNjIsNiArMTYyLDggQEAgdm9pZCBTY3JvbGxBbmlt
YXRvckdlbmVyaWM6OndpbGxFbmRMaXZlUmVzaXplKCkKIAogdm9pZCBTY3JvbGxBbmltYXRvckdl
bmVyaWM6OnVwZGF0ZVBvc2l0aW9uKEZsb2F0UG9pbnQmJiBwb3NpdGlvbikKIHsKKyAgICBpZiAo
bV9zY3JvbGxhYmxlQXJlYS5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocm91bmRlZEludFBv
aW50KHBvc2l0aW9uKSkpCisgICAgICAgIHJldHVybjsKICAgICBGbG9hdFNpemUgZGVsdGEgPSBw
b3NpdGlvbiAtIG1fY3VycmVudFBvc2l0aW9uOwogICAgIG1fY3VycmVudFBvc2l0aW9uID0gV1RG
TW92ZShwb3NpdGlvbik7CiAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGRlbHRhKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBm
NTkxNzY3MmVlLi42Mzc1M2FkMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC0xMTU1LDYgKzExNTUsNyBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpub3RpZnlDb250ZW50QXJlYVNjcm9sbGVkKGNvbnN0IEZsb2F0U2l6ZSYg
ZGVsdGEpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNhbmNlbEFuaW1hdGlvbnMoKQogewor
ICAgIFNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKCk7CiAgICAgbV9oYXZlU2Nyb2xs
ZWRTaW5jZVBhZ2VMb2FkID0gZmFsc2U7CiAKICAgICBpZiAoc2Nyb2xsYmFyUGFpbnRUaW1lcklz
QWN0aXZlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGY4ZDNh
NDkyNWEuLjZkMWY4NTdjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CkBAIC01ODEsMjAgKzU4MSwyOCBAQCBzdGF0aWMgdm9pZCBzZXR1cFdoZWVsRXZlbnRNb25pdG9y
KFJlbmRlckxheWVyJiBsYXllcikKICAgICBsYXllci5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVs
RXZlbnRUZXN0TW9uaXRvcihwYWdlLndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAotdm9p
ZCBSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xs
TGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBT
Y3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8
ICFsYXllcigpKQogICAgICAgICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigq
bGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Nyb2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Nyb2xs
VHlwZSwgY2xhbXBpbmcpOworICAgIGxheWVyKCktPnNjcm9sbFRvWFBvc2l0aW9uKG5ld0xlZnQs
IHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyQm94Ojpz
ZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwg
U2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFt
cGluZykKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAgICAg
ICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAgbGF5
ZXIoKS0+c2Nyb2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7Cisg
ICAgbGF5ZXIoKS0+c2Nyb2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBhbmltYXRl
ZCwgY2xhbXBpbmcpOworfQorCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsUG9zaXRpb24oY29u
c3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wg
YW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGlmICghaGFzT3ZlcmZs
b3dDbGlwKCkgfHwgIWxheWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBzZXR1cFdoZWVsRXZl
bnRNb25pdG9yKCpsYXllcigpKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1Bvc2l0aW9uKHBvc2l0
aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCiB2b2lkIFJlbmRlckJv
eDo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2lu
dCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKaW5kZXggNDk1NDgxNDA1NC4uMjIxOTI4MDU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaApAQCAtMjQ3LDggKzI0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBz
Y3JvbGxUb3AoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFt
cGluZzo6Q2xhbXBlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9s
bFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZp
cnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9
IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9
IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2
b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwg
Ym9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpD
bGFtcGVkKTsKIAogICAgIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9tYXJnaW5Cb3gudG9wKCk7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94LmJvdHRvbSgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBkODRhZDFhMWRhLi42MTNhNmFm
YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI1NzUs
MTYgKzI1NzUsMjQgQEAgdm9pZCBSZW5kZXJMYXllcjo6YXBwbHlQb3N0TGF5b3V0U2Nyb2xsUG9z
aXRpb25JZk5lZWRlZCgpCiAgICAgbV9wb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb24gPSBXVEY6Om51
bGxvcHQ7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5k
ZXJMYXllcjo6c2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwg
Ym9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgU2Nyb2xsUG9z
aXRpb24gcG9zaXRpb24oeCwgbV9zY3JvbGxQb3NpdGlvbi55KCkpOwotICAgIHNjcm9sbFRvT2Zm
c2V0KHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1w
aW5nKTsKKyAgICBzY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRl
ZCwgY2xhbXBpbmcpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihp
bnQgeSwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3Zv
aWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlIHNjcm9s
bFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIFNj
cm9sbFBvc2l0aW9uIHBvc2l0aW9uKG1fc2Nyb2xsUG9zaXRpb24ueCgpLCB5KTsKLSAgICBzY3Jv
bGxUb09mZnNldChzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBl
LCBjbGFtcGluZyk7CisgICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwg
YW5pbWF0ZWQsIGNsYW1waW5nKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3Np
dGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlw
ZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgaWYgKGFu
aW1hdGVkKQorICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0
RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIGVsc2UK
KyAgICAgICAgc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9u
KSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOwogfQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6
OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25z
dApAQCAtMjU5NCwyMiArMjYwMiw2OCBAQCBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1w
U2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjbwogCiB2b2lk
IFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9m
ZnNldCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAg
IHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50
KTsKKyNlbmRpZgorCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xs
QW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CisKICAgICBTY3JvbGxPZmZzZXQgY2xhbXBl
ZFNjcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xh
bXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9sbE9mZnNldDsKLSAgICBpZiAoY2xh
bXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICBpZiAoY2xhbXBl
ZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkgeworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgICAgIC8vIElmIFVJU2Ny
b2xsVmlldyBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHNjcm9sbCBvZmZz
ZXQgb2YgdGhlIFdlYiBwcm9jZXNzIG1pZ2h0IGJlIG92ZXJyaWRkZW4uCisgICAgICAgIC8vIFNv
IHdlIG5lZWQgdG8gY2FsbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUgaGVyZSBhbmQgbGV0
IGl0IGJlIGNoZWNrZWQgb24gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIC8vIElmIHRoZSBzY3Jv
bGwgb2Zmc2V0IG9uIHRoZSBVSSBwcm9jZXNzIGlzIGRpZmZlcmVudCwgdGhlIGNvcnJlY3Qgc2Ny
b2xsIG9mZnNldCBuZWVkcyB0byBzeW5jIGJhY2sgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAg
ICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0
dXM6OkluTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICAgICAgcmVxdWVzdFNjcm9sbFBvc2l0aW9u
VXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7Cisj
ZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxU
eXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3Jv
bGxUeXBlKTsKIAogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogI2lmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpCi0gICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGlu
YXRvciA9IHBhZ2UoKS5zY3JvbGxpbmdDb29yZGluYXRvcigpKQotICAgICAgICBoYW5kbGVkID0g
c2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywg
c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpKTsKKyAgICBoYW5k
bGVkID0gcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNl
dChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CiAjZW5kaWYKIAotICAgIGlmICghaGFuZGxlZCkKKyAg
ICBpZiAoIWhhbmRsZWQpIHsKICAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9u
KGNsYW1wZWRTY3JvbGxPZmZzZXQsIGNsYW1waW5nKTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAgICB9CisK
KyAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworfQorCitib29s
IFJlbmRlckxheWVyOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9z
aXRpb24mIHBvc2l0aW9uKQoreworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgaWYg
KFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5zY3Jv
bGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3It
PnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgcG9zaXRpb24pOworI2VuZGlmCisg
ICAgcmV0dXJuIGZhbHNlOworfQogCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9s
bFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNj
cm9sbFR5cGUpOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9y
VHlwZTo6U21vb3RoKTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9s
bFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xs
VHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlm
CisKKyAgICBTY3JvbGxPZmZzZXQgbmV3U2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNjcm9sbE9mZnNldChvZmZzZXQpIDogb2Zmc2V0Owor
ICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0
YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pCisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2Fu
Y2VsQW5pbWF0aW9ucygpOworICAgIGlmIChuZXdTY3JvbGxPZmZzZXQgIT0gdGhpcy0+c2Nyb2xs
T2Zmc2V0KCkpCisgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhBbmlt
YXRpb24obmV3U2Nyb2xsT2Zmc2V0KTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91
c1Njcm9sbFR5cGUpOwogfQogCkBAIC0yNjQ1LDcgKzI2OTksNyBAQCB2b2lkIFJlbmRlckxheWVy
OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCiAjZW5kaWYKICAgICB9
CiAgICAgCi0gICAgaWYgKG1fc2Nyb2xsUG9zaXRpb24gPT0gbmV3UG9zaXRpb24pIHsKKyAgICBp
ZiAobV9zY3JvbGxQb3NpdGlvbiA9PSBuZXdQb3NpdGlvbiAmJiBjdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pIHsKICAg
ICAgICAgLy8gRklYTUU6IE5vdGhpbmcgZ3VhcmFudGVlcyB3ZSBnZXQgYSBzY3JvbGxUbygpIHdp
dGggYW4gdW5jaGFuZ2VkIHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgYSB1c2VyIGdlc3R1cmUuCiAg
ICAgICAgIC8vIFRoZSBTY3JvbGxpbmdDb29yZGluYXRvciBwcm9iYWJseSBuZWVkcyB0byBtZXNz
YWdlIHRoZSBtYWluIHRocmVhZCB3aGVuIGEgZ2VzdHVyZSBlbmRzLgogICAgICAgICBpZiAocmVx
dWlyZXNTY3JvbGxQb3NpdGlvblJlY29uY2lsaWF0aW9uKCkpIHsKQEAgLTI3OTAsMTAgKzI4NDQs
MTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRS
ZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgTGF5b3V0UmVjdCByZXZlYWxS
ZWN0ID0gZ2V0UmVjdFRvRXhwb3NlKGxheWVyQm91bmRzLCBsb2NhbEV4cG9zZVJlY3QsIGluc2lk
ZUZpeGVkLCBvcHRpb25zLmFsaWduWCwgb3B0aW9ucy5hbGlnblkpOwogCiAgICAgICAgIFNjcm9s
bE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zm
c2V0KCkgKyB0b0ludFNpemUocm91bmRlZEludFJlY3QocmV2ZWFsUmVjdCkubG9jYXRpb24oKSkp
OwotICAgICAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCAhPSBzY3JvbGxPZmZzZXQoKSkgewor
ICAgICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZp
b3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uIHx8IGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xs
T2Zmc2V0KCkpIHsKICAgICAgICAgICAgIFNjcm9sbE9mZnNldCBvbGRTY3JvbGxPZmZzZXQgPSBz
Y3JvbGxPZmZzZXQoKTsKLSAgICAgICAgICAgIHNjcm9sbFRvT2Zmc2V0KGNsYW1wZWRTY3JvbGxP
ZmZzZXQpOwotICAgICAgICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXREaWZmZXJlbmNlID0gc2Ny
b2xsT2Zmc2V0KCkgLSBvbGRTY3JvbGxPZmZzZXQ7CisgICAgICAgICAgICBib29sIGFuaW1hdGVk
ID0gKGJveC0+ZWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9y
LCAqYm94LT5lbGVtZW50KCkpKTsKKyAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb24oc2Nyb2xs
UG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBTY3JvbGxUeXBlOjpQcm9n
cmFtbWF0aWMsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0RGlm
ZmVyZW5jZSA9IGNsYW1wZWRTY3JvbGxPZmZzZXQgLSBvbGRTY3JvbGxPZmZzZXQ7CiAgICAgICAg
ICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZSgtc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSk7CiAgICAg
ICAgICAgICBuZXdSZWN0ID0gTGF5b3V0UmVjdChib3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxv
YXRRdWFkKEZsb2F0UmVjdChsb2NhbEV4cG9zZVJlY3QpKSwgVXNlVHJhbnNmb3JtcykuYm91bmRp
bmdCb3goKSk7CiAgICAgICAgIH0KQEAgLTI4MTMsMTAgKzI4NjgsMTMgQEAgdm9pZCBSZW5kZXJM
YXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3Qs
IGJvb2wgaW5zaWQKICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0gZnJhbWVW
aWV3LnZpc2libGVDb250ZW50UmVjdChMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsKICAg
ICAgICAgICAgICAgICBMYXlvdXRSZWN0IGV4cG9zZVJlY3QgPSBnZXRSZWN0VG9FeHBvc2Uodmll
d1JlY3QsIGFic29sdXRlUmVjdCwgaW5zaWRlRml4ZWQsIG9wdGlvbnMuYWxpZ25YLCBvcHRpb25z
LmFsaWduWSk7CiAKLSAgICAgICAgICAgICAgICBJbnRQb2ludCBzY3JvbGxPZmZzZXQocm91bmRl
ZEludFBvaW50KGV4cG9zZVJlY3QubG9jYXRpb24oKSkpOworICAgICAgICAgICAgICAgIEludFBv
aW50IHNjcm9sbFBvc2l0aW9uKHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkp
KTsKICAgICAgICAgICAgICAgICAvLyBBZGp1c3Qgb2Zmc2V0cyBpZiB0aGV5J3JlIG91dHNpZGUg
b2YgdGhlIGFsbG93YWJsZSByYW5nZS4KLSAgICAgICAgICAgICAgICBzY3JvbGxPZmZzZXQgPSBz
Y3JvbGxPZmZzZXQuY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1l
Vmlldy5jb250ZW50c1NpemUoKSkpOwotICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3Jv
bGxQb3NpdGlvbihzY3JvbGxPZmZzZXQpOworICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9u
ID0gc2Nyb2xsUG9zaXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50
KGZyYW1lVmlldy5jb250ZW50c1NpemUoKSkpOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBT
aG91bGQgd2UgdXNlIGNvbnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAg
ICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDUwNTkKKyAgICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gb3duZXJFbGVtZW50LT5j
b250ZW50RG9jdW1lbnQoKSAmJiBvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1
bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgKm93
bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAg
ICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGFu
aW1hdGVkKTsKIAogICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NP
cmlnaW5TY3JvbGxpbmcgPT0gU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8
IGZyYW1lVmlldy5zYWZlVG9Qcm9wYWdhdGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIHBhcmVudExheWVyID0gb3duZXJFbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3Np
bmdMYXllcigpOwpAQCAtMjg1NSw3ICsyOTEzLDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9s
bFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lk
CiAgICAgICAgICAgICAvLyBBdm9pZCBzY3JvbGxpbmcgdG8gdGhlIHJvdW5kZWQgdmFsdWUgb2Yg
cmV2ZWFsUmVjdC5sb2NhdGlvbigpIGlmIHdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdG8gc2Nyb2xs
CiAgICAgICAgICAgICBpZiAocmV2ZWFsUmVjdCAhPSB2aWV3UmVjdCkgewogICAgICAgICAgICAg
ICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQo
cmV2ZWFsUmVjdC5sb2NhdGlvbigpKS5jb25zdHJhaW5lZEJldHdlZW4obWluU2Nyb2xsUG9zaXRp
b24sIG1heFNjcm9sbFBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Ny
b2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAvLyBG
SVhNRTogU2hvdWxkIHdlIHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAg
ICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDUwNTkKKyAgICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gcmVuZGVyZXIoKS5kb2N1
bWVudCgpLmRvY3VtZW50RWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJl
aGF2aW9yLCAqcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAg
ICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0
aW9uLCBhbmltYXRlZCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMgaXMg
dGhlIG91dGVybW9zdCB2aWV3IG9mIGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0aGlz
IHZpZXcgd2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNmNhNDIy
YjdiMi4uOGM5Nzc4Mzc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgK
QEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKKyNpbmNsdWRlICJTY3JvbGxCZWhhdmlv
ci5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC0xMzQsNiArMTM1LDcgQEAgc3RydWN0IFNjcm9sbFJl
Y3RUb1Zpc2libGVPcHRpb25zIHsKICAgICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCB7
IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCB9OwogICAgIGNvbnN0IFNjcm9s
bEFsaWdubWVudCYgYWxpZ25ZIHsgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVk
IH07CiAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyBzaG91bGRBbGxvd0Nyb3Nz
T3JpZ2luU2Nyb2xsaW5nIHsgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfTsK
KyAgICBTY3JvbGxCZWhhdmlvciBiZWhhdmlvciB7IFNjcm9sbEJlaGF2aW9yOjpBdXRvIH07CiB9
OwogCiBjbGFzcyBSZW5kZXJMYXllciBmaW5hbCA6IHB1YmxpYyBTY3JvbGxhYmxlQXJlYSB7CkBA
IC00MzksOSArNDQxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbEJ5UmVjdXJzaXZlbHko
Y29uc3QgSW50U2l6ZSYgZGVsdGEsIFNjcm9sbGFibGVBcmVhKiogc2Nyb2xsZWRBcmVhID0gbnVs
bHB0cik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IFNj
cm9sbE9mZnNldCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYsIFNj
cm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCi0gICAgdm9pZCBzY3JvbGxUb1hQb3NpdGlvbihpbnQg
eCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7
Ci0gICAgdm9pZCBzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgYm9vbCByZXF1ZXN0U2Nyb2xs
UG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIHZv
aWQgc2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNj
cm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xs
VG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1w
aW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9Qb3NpdGlv
bihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCiAgICAgLy8gVGhlc2UgYXJl
IG9ubHkgdXNlZCBieSBtYXJxdWVlLgogICAgIHZvaWQgc2Nyb2xsVG9YT2Zmc2V0KGludCB4KSB7
IHNjcm9sbFRvT2Zmc2V0KFNjcm9sbE9mZnNldCh4LCBzY3JvbGxPZmZzZXQoKS55KCkpLCBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggMjVjZDJkMzNhNy4u
YzMzZTkwNjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cApAQCAtNzQzLDcgKzc0Myw3IEBAIGludCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxMZWZ0KCkgY29u
c3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0
KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlckxpc3RCb3g6OnNl
dFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKIH0K
IApAQCAtNzYwLDcgKzc2MCw3IEBAIHN0YXRpYyB2b2lkIHNldHVwV2hlZWxFdmVudFRlc3RNb25p
dG9yKFJlbmRlckxpc3RCb3gmIHJlbmRlcmVyKQogICAgIHJlbmRlcmVyLnNjcm9sbEFuaW1hdG9y
KCkuc2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKHJlbmRlcmVyLnBhZ2UoKS53aGVlbEV2ZW50VGVz
dE1vbml0b3IoKSk7CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBu
ZXdUb3AsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW5kZXJMaXN0Qm94Ojpz
ZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcp
CiB7CiAgICAgLy8gRGV0ZXJtaW5lIGFuIGluZGV4IGFuZCBzY3JvbGwgdG8gaXQuICAgIAogICAg
IGludCBpbmRleCA9IG5ld1RvcCAvIGl0ZW1IZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDY1ZDkyMjZiM2EuLjI1YzkwNjUxZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTA2LDggKzEwNiw4IEBAIHBy
aXZhdGU6CiAgICAgaW50IHNjcm9sbFRvcCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3Jv
bGxXaWR0aCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxD
bGFtcGluZykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBl
LCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwg
U2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0
U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRl
OwogCiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RS
ZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0
IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggOWVlODg4ODY3MS4uNGRmN2QzMThkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5jcHAKQEAgLTM3NiwxMyArMzc2LDEzIEBAIGludCBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OnNjcm9sbFRvcCgpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2Ny
b2xsVG9wKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3Jv
bGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3Jv
bGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxlbWVu
dCgpKQogICAgICAgICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbExlZnQobmV3TGVmdCk7
CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3AoaW50
IG5ld1RvcCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJvb2ws
IFNjcm9sbENsYW1waW5nKQogewogICAgIGlmIChpbm5lclRleHRFbGVtZW50KCkpCiAgICAgICAg
IGlubmVyVGV4dEVsZW1lbnQoKS0+c2V0U2Nyb2xsVG9wKG5ld1RvcCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5k
ZXggM2Y1Nzg2ZGZlNC4uNjY2YWEzMTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTcsOCArNTcsOCBA
QCBwcml2YXRlOgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQg
c2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Ny
b2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChp
bnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVy
cmlkZTsKICAgICBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5
LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gbnVsbHB0ciwg
UmVuZGVyQm94KiBzdGFydEJveCA9IG51bGxwdHIsIGNvbnN0IEludFBvaW50JiB3aGVlbEV2ZW50
QWJzb2x1dGVQb2ludCA9IEludFBvaW50KCkpIGZpbmFsOwogICAgIGJvb2wgbG9naWNhbFNjcm9s
bChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlw
bGllciA9IDEsIEVsZW1lbnQqKiBzdG9wRWxlbWVudCA9IDApIGZpbmFsOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDVkY2IyMWM2NDYuLjAw
N2E0ZDEzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCkBAIC03MzYsNiArNzM2LDggQEAgcHVibGljOgogICAgIGJvb2wgdXNlVG91Y2hPdmVyZmxv
d1Njcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnVzZVRvdWNo
T3ZlcmZsb3dTY3JvbGxpbmc7IH0KICNlbmRpZgogCisgICAgYm9vbCB1c2VTbW9vdGhTY3JvbGxp
bmcoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT51c2VTbW9vdGhTY3Jv
bGxpbmc7IH0KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgVGV4dFNpemVBZGp1
c3RtZW50IHRleHRTaXplQWRqdXN0KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlSW5oZXJpdGVkRGF0
YS0+dGV4dFNpemVBZGp1c3Q7IH0KICAgICBBdXRvc2l6ZVN0YXR1cyBhdXRvc2l6ZVN0YXR1cygp
IGNvbnN0OwpAQCAtMTI2Nyw2ICsxMjY5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlVG91
Y2hPdmVyZmxvd1Njcm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRh
LCB1c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nLCB2KTsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHNl
dFVzZVNtb290aFNjcm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWRE
YXRhLCB1c2VTbW9vdGhTY3JvbGxpbmcsIHYpOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0la
SU5HKQogICAgIHZvaWQgc2V0VGV4dFNpemVBZGp1c3QoVGV4dFNpemVBZGp1c3RtZW50IGFkanVz
dG1lbnQpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB0ZXh0U2l6ZUFkanVzdCwgYWRq
dXN0bWVudCk7IH0KICAgICB2b2lkIHNldEF1dG9zaXplU3RhdHVzKEF1dG9zaXplU3RhdHVzKTsK
QEAgLTE3MDQsNiArMTcwOCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNl
VG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorICAg
IHN0YXRpYyBib29sIGluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxzZTsg
fQorCiAgICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIoKSB7
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7
IH0KICAgICBzdGF0aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgaW5pdGlhbEFwcGxlQ29sb3JG
aWx0ZXIoKSB7IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJl
dHVybiBvcHM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGZiMzIwODIzMzcuLmQy
YTUzMWZhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAg
LCBiYWNrZmFjZVZpc2liaWxpdHkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjpp
bml0aWFsQmFja2ZhY2VWaXNpYmlsaXR5KCkpKQogICAgICwgdXNlckRyYWcoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVXNlckRyYWcoKSkpCiAgICAgLCB0ZXh0T3Zl
cmZsb3coc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVGV4dE92ZXJm
bG93KCkpKQorICAgICwgdXNlU21vb3RoU2Nyb2xsaW5nKHN0YXRpY19jYXN0PHVuc2lnbmVkPihS
ZW5kZXJTdHlsZTo6aW5pdGlhbFVzZVNtb290aFNjcm9sbGluZygpKSkKICAgICAsIG1hcmdpbkJl
Zm9yZUNvbGxhcHNlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihNYXJnaW5Db2xsYXBzZTo6Q29sbGFw
c2UpKQogICAgICwgbWFyZ2luQWZ0ZXJDb2xsYXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTWFy
Z2luQ29sbGFwc2U6OkNvbGxhcHNlKSkKICAgICAsIGFwcGVhcmFuY2Uoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQXBwZWFyYW5jZSgpKSkKQEAgLTE4MCw2ICsxODEs
NyBAQCBpbmxpbmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KG8u
YmFja2ZhY2VWaXNpYmlsaXR5KQogICAgICwgdXNlckRyYWcoby51c2VyRHJhZykKICAgICAsIHRl
eHRPdmVyZmxvdyhvLnRleHRPdmVyZmxvdykKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhvLnVz
ZVNtb290aFNjcm9sbGluZykKICAgICAsIG1hcmdpbkJlZm9yZUNvbGxhcHNlKG8ubWFyZ2luQmVm
b3JlQ29sbGFwc2UpCiAgICAgLCBtYXJnaW5BZnRlckNvbGxhcHNlKG8ubWFyZ2luQWZ0ZXJDb2xs
YXBzZSkKICAgICAsIGFwcGVhcmFuY2Uoby5hcHBlYXJhbmNlKQpAQCAtMjc4LDYgKzI4MCw3IEBA
IGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIGJhY2tmYWNlVmlzaWJpbGl0eSA9
PSBvLmJhY2tmYWNlVmlzaWJpbGl0eQogICAgICAgICAmJiB1c2VyRHJhZyA9PSBvLnVzZXJEcmFn
CiAgICAgICAgICYmIHRleHRPdmVyZmxvdyA9PSBvLnRleHRPdmVyZmxvdworICAgICAgICAmJiB1
c2VTbW9vdGhTY3JvbGxpbmcgPT0gby51c2VTbW9vdGhTY3JvbGxpbmcKICAgICAgICAgJiYgbWFy
Z2luQmVmb3JlQ29sbGFwc2UgPT0gby5tYXJnaW5CZWZvcmVDb2xsYXBzZQogICAgICAgICAmJiBt
YXJnaW5BZnRlckNvbGxhcHNlID09IG8ubWFyZ2luQWZ0ZXJDb2xsYXBzZQogICAgICAgICAmJiBh
cHBlYXJhbmNlID09IG8uYXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggMTljNTkx
YjJkMS4uMTZhMjg1MTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xODEsNiArMTgxLDcg
QEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgdXNlckRyYWcgOiAyOyAvLyBVc2VyRHJhZwogICAg
IHVuc2lnbmVkIHRleHRPdmVyZmxvdyA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IGxpbmVzIHRoYXQg
c3BpbGwgb3V0IHNob3VsZCBiZSB0cnVuY2F0ZWQgd2l0aCAiLi4uIgorICAgIHVuc2lnbmVkIHVz
ZVNtb290aFNjcm9sbGluZyA6IDE7IC8vIFNjcm9sbEJlaGF2aW9yCiAgICAgdW5zaWduZWQgbWFy
Z2luQmVmb3JlQ29sbGFwc2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIG1h
cmdpbkFmdGVyQ29sbGFwc2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIGFw
cGVhcmFuY2UgOiA2OyAvLyBFQXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUJ1aWxkZXJDb252ZXJ0ZXIuaAppbmRleCA3ZjNmMGNiYzRlLi5lMzgyMDRmNjgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTI5LDYgKzEy
OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBjb252ZXJ0T3ZlcmZsb3dTY3JvbGxpbmco
QnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKICNlbmRpZgogICAgIHN0YXRpYyBGb250
RmVhdHVyZVNldHRpbmdzIGNvbnZlcnRGb250RmVhdHVyZVNldHRpbmdzKEJ1aWxkZXJTdGF0ZSYs
IGNvbnN0IENTU1ZhbHVlJik7CisgICAgc3RhdGljIGJvb2wgY29udmVydFNtb290aFNjcm9sbGlu
ZyhCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBGb250U2VsZWN0
aW9uVmFsdWUgY29udmVydEZvbnRXZWlnaHRGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKICAg
ICBzdGF0aWMgRm9udFNlbGVjdGlvblZhbHVlIGNvbnZlcnRGb250U3RyZXRjaEZyb21WYWx1ZShj
b25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBPcHRpb25hbDxGb250U2VsZWN0aW9uVmFsdWU+
IGNvbnZlcnRGb250U3R5bGVGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKQEAgLTE0MDMsNiAr
MTQwNCwxMSBAQCBpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0T3ZlcmZsb3dT
Y3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVgogfQogI2VuZGlmCiAKK2lubGluZSBi
b29sIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTbW9vdGhTY3JvbGxpbmcoQnVpbGRlclN0YXRl
JiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQoreworICAgIHJldHVybiBkb3duY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZT4odmFsdWUpLnZhbHVlSUQoKSA9PSBDU1NWYWx1ZVNtb290aDsKK30KKwogaW5s
aW5lIFNWR0xlbmd0aFZhbHVlIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTVkdMZW5ndGhWYWx1
ZShCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIFNW
R0xlbmd0aFZhbHVlOjpmcm9tQ1NTUHJpbWl0aXZlVmFsdWUoZG93bmNhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWU+KHZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTA3
Nzc5NjJkNS4uNzI0MDA4MTBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtMTc0Niw3ICsxNzQ2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjp1bmNvbnN0
cmFpbmVkU2Nyb2xsVG8oRWxlbWVudCYgZWxlbWVudCwgZG91YmxlIHgsIGQKICAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+dmlldygpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yIH07CiAKLSAgICBlbGVtZW50LnNjcm9sbFRvKHsgeCwgeSB9LCBT
Y3JvbGxDbGFtcGluZzo6VW5jbGFtcGVkKTsKKyAgICBlbGVtZW50LnNjcm9sbFRvKFNjcm9sbFRv
T3B0aW9ucyh4LCB5KSwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CiAgICAgcmV0dXJuIHsg
fTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBlODQ1MmU3ZjkxLi5iMjhhYTRkMGNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDcyIEBACisyMDE5LTEyLTExICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBv
biBuYXRpdmUgc2Nyb2xsIGludGVyZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBh
cyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4gT24gaW9zIHBsYXRmb3JtLCB1c2UgbmF0aXZlIGFu
aW1hdGVkIHNjcm9sbGluZworICAgICAgICBpbnRlcmZhY2VzIHRvIHBlcmZvcm1hbmNlIHNtb290
aCBzY3JvbGwgYW5kIHNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3Mu
CisKKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6
ZW5jb2RlKToKKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlPjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChwb2ludHNFcXVhbEluUm91bmRU
b0RldmljZVBpeGVsKTogSGVscCBmdW5jdGlvbiB0byBjaGVjayBpZiB0d28gZmxvYXQgcG9pbnRz
IGFyZSBub3QgZXF1YWwgYnV0IGluIHRoZSBzYW1lIGRldmljZSBwaXhlbC4KKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46YW5p
bWF0ZWQ6XSk6IEFkZCBhbmltYXRlZCBmbGFnIHRvIHN0YXJ0IGEgYW5pbWF0ZWQgc2Nyb2xsIGlm
IG5lZWRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdB
bmltYXRpb246XSk6IFNlbmQgc3JvbGwgZW5kIG1lc3NhZ2UgdG8gdGhlIFdlYiBwcm9jZXNzLgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9s
bE9yaWdpbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOiBQcm92
aWRlIGludGVyZmFjZSBmb3IgYW5pbWF0ZWQgc2Nyb2xsaW5nLgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5
ZXJUcmVlKTogQWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVE
aWRTY3JvbGwpOiBTeW5jIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxp
bmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogQWRkIGFuaW1hdGVkIHNjcm9sbGluZyBpbmZvIHRv
IG1fcmVxdWVzdGVkU2Nyb2xsSW5mby4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3NEaWRDaGFuZ2UpOiBTeW5jIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgdG8gdGhlIFdl
YiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2UpOiBEaXR0by4gSXQncyBzcGVjaWZpYyB0byB0aGUgcm9vdCBub2RlLgorICAgICAgICAq
IFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKTogQWRkIGFuaW1hdGVkIGluZm8uCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBE
aXR0by4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJl
ZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbToKKyAgICAgICAg
KC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmRTY3Jv
bGxpbmdBbmltYXRpb246XSk6IFNlbmQgc2NvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNz
LgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Ojpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4pOiBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIHRo
ZSBXZWIgcHJvY2VzcyBpc24ndCBlcXVhbCB0byB0aGUgVUkgcHJvY2VzcywKKyAgICAgICAgdGhl
IHNjcm9sbCBwb3NpdGlvbiBzaG91bGQgYmUgc3luY2hyb25pemVkLCBldmVuIHRoZXJlJ3Mgbm8g
c2Nyb2xsaW5nIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGlu
Z0xheWVycyk6IENhbGxpbmcgdGhlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcgaW50ZXJmYWNl
IGZvciBzbW9vdGggc2Nyb2xsLgorICAgICAgICBJZiB0aGVyZSdzIGEgc2Nyb2xsIGFuaW1hdGlv
biBwZXJmb3JtaW5nLCBpdCBzaG91bGQgYmUgc3RvcHBlZCBmaXJzdCwgdGhlbiBzdGFydCBhIG5l
dyBzY3JvbGxpbmcuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24pOiBTeW5jIHNj
cm9sbCBlbmQgaW5mbyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFNj
cm9sbCk6IFRvIGNhbGwgZGlmZmVyZW50IGZ1bmN0aW9ucyBmb3Igc21vb3RoIGFuZCBpbnN0YW50
IHNjcm9sbC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpyZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVl
c3RTY3JvbGxXaXRoQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRG
b3JOb2RlKToKKworMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKwor
ICAgICAgICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBlcmltZW50YWwgZmVh
dHVyZS4KKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAg
QmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorCiAyMDE5LTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBJc3N1ZSBsb2FkIHNvb25lciBvbiBzd2lw
ZSBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IGQ3YjFlMTkzNzIuLjg3N2QyOWEzMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
bi5jcHAKQEAgLTE1Miw2ICsxNTIsOSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAgU0NS
T0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJs
ZUFyZWFQYXJhbXMsIHNjcm9sbGFibGVBcmVhUGFyYW1ldGVycykKICAgICBTQ1JPTExJTkdfTk9E
RV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RF
KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisjZW5kaWYKIAogICAgIGlmIChub2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxh
eWVyKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0
Zm9ybUxheWVySUQ+KG5vZGUuc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSk7CkBAIC0yNjAsNyArMjYz
LDEyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsCiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3Np
dGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgICAgIGJvb2wgc2Nyb2xs
V2l0aEFuaW1hdGlvbiA9IGZhbHNlOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc2Nyb2xsV2l0aEFuaW1hdGlvbikpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbihzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xs
V2l0aEFuaW1hdGlvbik7CiAgICAgfQogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBA
IC02MDgsNiArNjE2LDkgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3Qg
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAgICBpZiAoIWNoYW5n
ZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICB0cy5k
dW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24iLCBub2RlLnJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3Jv
bGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0aWMiLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
UmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24td2l0
aC1hbmltYXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigp
KTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xs
Q29udGFpbmVyTGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
aW5kZXggMmU3YjRiNGZlNC4uZmViMmMzZjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCkBAIC0xMzI0LDYgKzEzMjQsMTMgQEAgQmxvY2tpbmdPZlNtYWxsUGx1
Z2luc0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlN0b3AgcGx1Z2lucyBz
bWFsbGVyIHRoYW4gYSBjZXJ0YWluIHRocmVzaG9sZCBmcm9tIGxvYWRpbmcuIgogICBjYXRlZ29y
eTogaW50ZXJuYWwKIAorQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDoKKyAgdHlwZTog
Ym9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTT00g
VmlldyBTbW9vdGggU2Nyb2xsaW5nIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFi
bGUgRE9NIEFQSSBhbmQgQ1NTIHByb3BlcnR5IGZvciAnc21vb3RoJyBzY3JvbGwgYmVoYXZpb3Ii
CisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogV2ViQW5pbWF0aW9uc0VuYWJsZWQ6CiAgIHR5
cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzMzU0YWM2ZWVjLi4xMDhlNGMwM2I3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAg
LTE2MTcsNiArMTYxNywxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcG9pbnRzRXF1YWxJbkRldmlj
ZVBpeGVscyhDR1BvaW50IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2aWNlUwogICAgICAgICAmJiBm
YWJzKGEueSAqIGRldmljZVNjYWxlRmFjdG9yIC0gYi55ICogZGV2aWNlU2NhbGVGYWN0b3IpIDwg
c3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKIH0KIAorc3RhdGljIGlubGlu
ZSBib29sIHBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoQ0dQb2ludCBhLCBDR1BvaW50
IGIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIHJldHVybiBDR1JvdW5kKGEueCAq
IGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueCAqIGRldmljZVNjYWxlRmFjdG9yKQor
ICAgICAgICAmJiBDR1JvdW5kKGEueSAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIu
eSAqIGRldmljZVNjYWxlRmFjdG9yKTsKK30KIHN0YXRpYyBDR1NpemUgcm91bmRTY3JvbGxWaWV3
Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIENHU2l6ZSBjb250
ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IHBhZ2UuZGV2aWNlU2Nh
bGVGYWN0b3IoKTsKQEAgLTIzNDEsOSArMjM0NiwxMCBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQ
b2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9m
ZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihXZWJDb3JlOjpG
bG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNvbnRlbnRPZmZzZXQpKTsK
IH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZs
b2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClz
Y3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJD
b3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50
UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7Ci0gICAgaWYgKF9j
b21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1v
ZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykKKyAg
ICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBwZWQuCisgICAgaWYgKCFh
bmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8fCBfZHluYW1pY1Zp
ZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5v
dFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBj
b250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Q
b3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2luKSk7CkBAIC0y
MzU3LDEzICsyMzYzLDIxIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFpbkNv
bnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAKICAgICBbX3Njcm9s
bFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CiAKLSAgICBpZiAoIUNH
UG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBb
X3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Njcm9sbFZpZXcgc2V0Q29u
dGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXNdOworICAgIC8v
IEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1dCBpbiB0aGUgc2FtZSBk
ZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4KKyAgICAvLyBXZSBuZWVk
IHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhlcmUuCisgICAgaWYgKCFw
b2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdD
b29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBfcGFnZS0+ZGV2aWNlU2Nh
bGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OmNvbnRl
bnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDphbmltYXRlZF07CiAgICAg
ZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBhbnl0aGluZywgdGhlcmUg
d291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRlIHNlbnQgdG8gdGhlIGNv
bnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtlZXAgdGhlIGludmFsaWQg
Y29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAgICAgICAvLyBUbyBzeW5j
aHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2NyZWVuLCB3ZSBzZW5kIHRo
ZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdlLT5yZXNlbmRMYXN0Vmlz
aWJsZUNvbnRlbnRSZWN0cygpOworICAgICAgICAvLyBJZiBfc2Nyb2xsVmlldyB3b24ndCBjaGFu
Z2UsIHdlIHN0aWxsIG5lZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nlc3MgdGhhdCB0aGUgYW5pbWF0
aW9uIHN0b3BwZWQuCisgICAgICAgIGlmIChhbmltYXRlZCkgeworICAgICAgICAgICAgV2ViS2l0
OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5z
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgICAgICAgICBpZiAoY29vcmRpbmF0b3Ip
CisgICAgICAgICAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CisgICAgICAgIH0KICAgICB9
CiB9CiAKQEAgLTI4NzksNiArMjg5MywxMCBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBj
b25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogLSAo
dm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilz
Y3JvbGxWaWV3CiB7CiAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGluZ107CisKKyAgICBXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9yID0gX3BhZ2Ut
PnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICBpZiAoY29vcmRpbmF0b3IpCisgICAg
ICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOwogfQogCiAtICh2b2lkKV9zY3JvbGxWaWV3RGlkSW50
ZXJydXB0RGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCmlu
ZGV4IDQzNTA4MGYzMjQuLjVjYjVmNTgxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC05Nyw3ICs5Nyw3IEBA
IHN0cnVjdCBQcmludEluZm87CiAKIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rh
a2VWaWV3U25hcHNob3Q7CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9u
OihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29y
ZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luOworLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xs
UG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2lu
OihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQ7
CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IG9y
aWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNjcm9sbERpc3RhbmNlOihm
bG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFuY2U7CiAtIChkb3VibGUpX2luaXRpYWxTY2FsZUZhY3Rv
cjsKIC0gKGRvdWJsZSlfY29udGVudFpvb21TY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAppbmRleCBlODQ4MjRmZDg1Li5kZTNkMzM2NzlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDggQEAgcHVibGljOgogICAgIC8vIFRlbGwg
dGhlIHZpZXcgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBwb3NpdGlvbiwgYW5kIHdoZXRoZXIgdGhp
cyB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIHsgfQorCiAg
ICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiAobm90IG5lY2Vzc2FyaWx5
IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwgYmVjYXVzZSBvZiBzY2Fs
aW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Nj
cm9sbFBvc2l0aW9uKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Lm1tCmluZGV4IDM4MGYxMjQ0NDMuLjBhNDJmOTQ0OTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0yMjQsOCArMjI0
LDE0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJU
cmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAKICAgICAvLyBIYW5kbGUgcmVxdWVzdGVk
IHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlIHRyYW5zYWN0
aW9uIGFmdGVyIGRpZENvbW1pdExheWVyVHJlZSgpCiAgICAgLy8gaGFzIHVwZGF0ZWQgdGhlIHZp
ZXcgc2l6ZSBiYXNlZCBvbiB0aGUgY29udGVudCBzaXplLgotICAgIGlmIChyZXF1ZXN0ZWRTY3Jv
bGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpCi0gICAgICAgIG1fd2ViUGFnZVBy
b3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCkpOworICAgIGlmIChyZXF1
ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpIHsKKyAgICAgICAg
bV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAsIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9s
bE9yaWdpbigpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgICAgICwgcmVxdWVz
dGVkU2Nyb2xsSW5mby5yZXF1ZXN0V2l0aEFuaW1hdGlvbgorI2VuZGlmCisgICAgICAgICAgICAp
OworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogCiAgICAgaWYgKG1f
ZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggNDgyM2Y3NmE5Ny4uOGNmMWQ4NGExMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApA
QCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6CiB9CiAKIC8vIFRoaXMg
Y29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUuCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBz
Y3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0
IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKQordm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChT
Y3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Njcm9s
bFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmln
aW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFj
dGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKIHsKICAgICAvLyBTY3Jv
bGwgdXBkYXRlcyBmb3IgdGhlIG1haW4gZnJhbWUgYXJlIHNlbnQgdmlhIFdlYlBhZ2VQcm94eTo6
dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cygpCiAgICAgLy8gc28gZG9uJ3Qgc2VuZCB0aGVtIGhl
cmUuCkBAIC0yMjIsMjEgKzIyMiwzNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRAogICAgIG1f
d2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVTY3JvbGxWaWV3RGlkU2Nyb2xsKCk7CiAjZW5kaWYK
IAotICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwo
KSkKKyAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xs
KCkgJiYgIWluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvcjo6U2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShzY3JvbGxlZE5vZGVJRCwgbmV3U2Ny
b2xsUG9zaXRpb24sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPT0gU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykpOwogfQogCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9v
bCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05v
ZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJv
b2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQogewog
ICAgIGlmIChzY3JvbGxlZE5vZGVJRCA9PSByb290U2Nyb2xsaW5nTm9kZUlEKCkgJiYgbV9yZXF1
ZXN0ZWRTY3JvbGxJbmZvKSB7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVz
dHNTY3JvbGxQb3NpdGlvblVwZGF0ZSA9IHRydWU7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xs
SW5mby0+cmVxdWVzdElzUHJvZ3JhbW1hdGljU2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbDsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBtX3JlcXVlc3RlZFNj
cm9sbEluZm8tPnJlcXVlc3RXaXRoQW5pbWF0aW9uID0gd2l0aEFuaW1hdGlvbjsKKyNlbmRpZgog
ICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0g
c2Nyb2xsUG9zaXRpb247CiAgICAgfQogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3Zv
aWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Nj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
IHNjcm9sbGVkTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAg
ICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHNjcm9sbGVkTm9kZUlE
LCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsKK30KKwordm9pZCBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NEaWRDaGFuZ2UoYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7
CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShyb290U2Nyb2xs
aW5nTm9kZUlEKCksIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOworfQorI2VuZGlmCisK
IFN0cmluZyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlQXNU
ZXh0KCkgY29uc3QKIHsKICAgICBpZiAobV9zY3JvbGxpbmdUcmVlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggMWE3Njk0M2YyNC4uODExNWU0
NzdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5o
CkBAIC01NSw5ICs1NSwxNCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eShXZWJQYWdlUHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5KCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFu
Z2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzcyk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NEaWRDaGFuZ2UoYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2Vu
ZGlmCisKICAgICAvLyBJbmZvcm0gdGhlIHdlYiBwcm9jZXNzIHRoYXQgdGhlIHNjcm9sbCBwb3Np
dGlvbiBjaGFuZ2VkIChjYWxsZWQgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUpCi0gICAgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFdlYkNvcmU6OlNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
OworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29u
c3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBX
ZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBib29sIGluc3RhbnRTY3JvbGxE
aWRTdG9wQW5pbWF0aW9uID0gZmFsc2UpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGws
IGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKIAogICAgIFdlYkNvcmU6OlRyYWNraW5nVHlw
ZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSwg
V2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0OwogCkBAIC04MCw2ICs4NSw5IEBAIHB1YmxpYzoKICAg
ICBzdHJ1Y3QgUmVxdWVzdGVkU2Nyb2xsSW5mbyB7CiAgICAgICAgIGJvb2wgcmVxdWVzdHNTY3Jv
bGxQb3NpdGlvblVwZGF0ZSB7IH07CiAgICAgICAgIGJvb2wgcmVxdWVzdElzUHJvZ3JhbW1hdGlj
U2Nyb2xsIHsgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBib29sIHJlcXVl
c3RXaXRoQW5pbWF0aW9uIHsgfTsKKyNlbmRpZgogICAgICAgICBXZWJDb3JlOjpGbG9hdFBvaW50
IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOwogICAgIH07CiAgICAgdm9pZCBjb21taXRTY3JvbGxp
bmdUcmVlU3RhdGUoY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbiYs
IFJlcXVlc3RlZFNjcm9sbEluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAppbmRl
eCBhZmFiYmMxZWFlLi5kNTczYTMxZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3Bw
CkBAIC0xMDQsMTIgKzEwNCwxNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJgogICAgIGlmIChp
czxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKSkKICAgICAgICAgbGF5b3V0
Vmlld3BvcnRPcmlnaW4gPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
Pihub2RlKS5sYXlvdXRWaWV3cG9ydCgpLmxvY2F0aW9uKCk7CiAKLSAgICBtX3Njcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdO
b2RlSUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmln
aW4sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworICAgIGJvb2wgaW5zdGFudFNjcm9s
bERpZFN0b3BBbmltYXRpb24gPSBmYWxzZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uID0gbm9kZS5uZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uKCkgJiYgIW5vZGUucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCk7CisjZW5kaWYK
KyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3Jv
bGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKSwg
bGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGluc3Rh
bnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKTsKIH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVl
OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQs
IGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwpCit2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2Rl
UmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3
aXRoQW5pbWF0aW9uKQogewotICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxp
bmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5z
Y3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIHdpdGhBbmltYXRpb24pOwogfQogCiBSZWY8U2Ny
b2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpA
QCAtMTQzLDYgKzE0NywxMyBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZAogICAgIHJldHVybiBT
Y3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdU
cmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sK
KyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVu
dFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5zaWdu
ZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpCiB7CiAgICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKG5vZGVJRCwgaG9y
aXpvbnRhbCwgdmVydGljYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggMjNiYWMw
NmEzYi4uMGY5ZTA5NDk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1
MiwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eSYgc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTsgfQogCiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9s
bChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFdlYkNvcmU6OlNjcm9sbGlu
Z0xheWVyUG9zaXRpb25BY3Rpb24gPSBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uOjpTeW5jKSBvdmVycmlkZTsKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNT
Y3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6
U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24g
PSBmYWxzZSkgb3ZlcnJpZGU7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQg
c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykg
b3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRD
aGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNp
Z25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKaW5kZXggZTYzN2Q2MTUzMi4u
MDBiNGRiY2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxWaWV3V2lsbFN0YXJ0
UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPZmZzZXQsIGJvb2wgaW5Vc2VySW50ZXJhY3Rpb24p
OworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbigpOwogCiAgICAg
dm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25lZCBob3Jpem9udGFs
LCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7CiAgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXgg
ZTc2ODk4Mzc1OC4uODQ4ODYzYTgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMTUyLDYgKzE1Miwx
MSBAQAogICAgIH0KIH0KIAorLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0
aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgX3Njcm9sbGluZ1RyZWVOb2Rl
RGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKTsKK30KKwogI2lm
IEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0
IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3Rh
cnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9j
aXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2
dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIAogICAg
IGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CiAgICAgICAgIGF1dG8g
c2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSA/IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyA6
IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3Jv
bGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSk7Cisg
ICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRo
QW5pbWF0aW9uKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2V0UmVxdWVzdEFuaW1h
dGVkU2Nyb2xsKHRydWUpOworICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9ucyBhcmUg
bm90IHRoZSBzYW1lLCB0aGVyZSdzIGEgcG9zc2liaWxpdHkgdGhhdCB0aGUgc2Nyb2xsIG9mZnNl
dCBmcm9tIHRoZSBXZWIgcHJvY2VzcyBoYXMgYmVlbiBvdmVycmlkZGVuLgorICAgICAgICAvLyBJ
biB0aGlzIGNhc2UsIHRoZSBzY3JvbGwgcG9zaXRpb24gbmVlZCB0byBiZSBzZW50IHRvIHRoZSBX
ZWIgcHJvY2Vzcy4KKyAgICAgICAgYm9vbCBzaG91bGRTeW5jU2Nyb2xsUG9zaXRpb24gPSBzY3Jv
bGxpbmdTdGF0ZU5vZGUuc2Nyb2xsUG9zaXRpb24oKSAhPSBzY3JvbGxpbmdOb2RlKCkuY3VycmVu
dFNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3Jv
bGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSwgU2Ny
b2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMsIHNob3VsZFN5bmNTY3JvbGxQb3NpdGlv
bik7CiAgICAgfQogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwotICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdO
b2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCisgICAgYm9vbCBhbmltYXRpb25JblByb2dyZXNzID0gc2Nyb2xsaW5nTm9kZSgpLnNjcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MoKTsKKyAgICBib29sIG5lZWRUb1N0b3BBbmltYXRpb24gPSBz
Y3JvbGxpbmdOb2RlKCkubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpOworICAgIGlm
IChuZWVkVG9TdG9wQW5pbWF0aW9uICYmIGFuaW1hdGlvbkluUHJvZ3Jlc3MpIHsKKyAgICAgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29u
dGVudE9mZnNldDpzY3JvbGxWaWV3KCkuY29udGVudE9mZnNldCBhbmltYXRlZDpOT107CisgICAg
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CisKKyAgICBpZiAoc2Nyb2xsaW5n
Tm9kZSgpLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Ny
b2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKSBhbmltYXRlZDpZRVNdOworICAgICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNl
dFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3ModHJ1ZSk7CisgICAgfSBlbHNlIGlmICghYW5pbWF0
aW9uSW5Qcm9ncmVzcyB8fCBuZWVkVG9TdG9wQW5pbWF0aW9uKSB7CisgICAgICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZz
ZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07CisgICAgICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsV2lsbFN0YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICsz
NjEsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3Jv
bGxWaWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQKICAgICBzY3JvbGxpbmdOb2RlKCkud2Fz
U2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhzY3JvbGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJ
bnRlcmFjdGlvbiA/IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMgOiBTY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24o
KQoreworICAgIGF1dG8mIG5vZGUgPSBzY3JvbGxpbmdOb2RlKCk7CisgICAgaWYgKCEobm9kZS5y
ZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBub2RlLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mo
KSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNl
KTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAg
ICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3Vy
cmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWdu
ZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAgaWYgKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZGIyY2UwNzljYS4u
ZDA5ZjYwN2FjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0xNzY3LDkgKzE3NjcsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3Bs
YXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAgICAgcGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rp
c3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29u
c3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmln
aW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3
aXRoQW5pbWF0aW9uKQogewotICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBv
c2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGlmICh3aXRoQW5pbWF0aW9uKQorICAgICAgICBw
YWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oc2Nyb2xsUG9zaXRpb24sIHNj
cm9sbE9yaWdpbik7CisgICAgZWxzZQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9s
bChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2lu
dCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFlMzg1MjIyMWQuLmFmMDdlYTQ5MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02MTMsNyArNjEzLDcgQEAgcHVi
bGljOgogICAgIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0
Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKTsKLSAgICB2b2lkIHJlcXVl
c3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pOworICAgIHZvaWQgcmVxdWVzdFNjcm9s
bChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwog
ICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
aW5kZXggZDZjOGMzOGQ0YS4uNTE5OGVmNDQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQ
cm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rp
c3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0
U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVl
c3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsK
ICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwog
ICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29sIGlzVmll
d1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGRjOWY3NGM0OWEuLjJjMzBjNGJjMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
QEAgLTk1LDcgKzk1LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3Bs
YXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChj
b25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9y
aWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpz
Y3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luXTsKKyAgICBbbV93ZWJWaWV3
IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmln
aW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5PXTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6
cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit7CisgICAgW21fd2ViVmlldyBfc2Ny
b2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNj
cm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwogfQogCiBXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VD
bGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA4ZTY0OTM1NTQ1Li4zZDM0NWQ3
NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbFBvc2l0
aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAg
ICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNj
cm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOwog
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgorCiAgICAgV2ViUGFnZSogbV93ZWJQYWdl
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4IDJjMDk4YTEwOTcuLjUzN2ZkMzRkNjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDkgQEAKIG1lc3NhZ2VzIC0+IFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAgICBTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JO
b2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbiwg
Ym9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgQ3VycmVudFNuYXBQb2ludEluZGljZXNDaGFu
Z2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVk
IHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIGJvb2wgaXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5tbQppbmRleCA4MzU0NDFkMzE5Li42ODlkNTU2MjZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDQs
NiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmN1cnJlbnRTbmFw
UG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoU2Nyb2xsaW5nCiAgICAgc2V0QWN0aXZlU2Nyb2xs
U25hcEluZGljZXMobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CiB9CiAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJ
RCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAgIHNldFNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBiOWRh
ZTJjZTEwLi5iY2Y1ZWI4YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRo
ZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIHJ1biB0aW1lIGZsYWcg
Zm9yIENTU09NVmlld1Ntb290aFNjcm9sbGluZy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmg6IEhhbmRsZSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcgYnku
CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKFtXZWJQcmVm
ZXJlbmNlcyBpbml0aWFsaXplXSk6IERpc2FibGUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nIGJ5
IGRlZmF1bHQuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIENTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWRdKTogR2V0dGVyLgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOl0pOiBTZXR0ZXIuCisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06
CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOS0xMi0w
OSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5h
bWUgbWVkaWEgaW4gdGhlIEdQVSBwcm9jZXNzIHByZWZlcmVuY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CmluZGV4IDQ0MWI1YTg3NzYuLmM2NzlmYmQ2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAt
MTg4LDYgKzE4OCw3IEBACiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdw
b3J0QVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxl
ZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgorI2Rl
ZmluZSBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1v
ZGVybk1lZGlhQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1vZGVybk1lZGlh
Q29udHJvbHNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRSZW1vdGVQbGF5YmFja0VuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0UmVtb3RlUGxheWJhY2tFbmFibGVkIgogI2RlZmluZSBXZWJLaXRT
dWJ0bGVDcnlwdG9FbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFN1YnRsZUNyeXB0b0VuYWJs
ZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbQppbmRleCA0N2Y3Yzc1ZGRhLi5jZDIzNjc0NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY2Myw2ICs2NjMsNyBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogICAgICAgICBAWUVTLCBXZWJLaXRDU1NPTVZpZXdTY3JvbGxp
bmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgQE5PLCBXZWJLaXRDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQFlFUywgV2ViS2l0
TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmtLZXksCiAgICAgICAgIEBOTywgV2Vi
S2l0QWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHNLZXksCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTMxODEsNiArMzE4MiwxNiBAQCBzdGF0aWMgTlNT
dHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpm
bGFnIGZvcktleTpXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtl
eV07CiB9CiAKKy0gKEJPT0wpQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZAoreworICAg
IHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdENTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVl
OmZsYWcgZm9yS2V5OldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJl
bmNlS2V5XTsKK30KKwogLSAoQk9PTCl3ZWJBbmltYXRpb25zRW5hYmxlZAogewogICAgIHJldHVy
biBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdFdlYkFuaW1hdGlvbnNFbmFibGVkUHJlZmVy
ZW5jZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA1OTc1OGUyMzM1Li4wOTExOTMxZGMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmgKQEAgLTYzMiw2ICs2MzIsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZl
cmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgog
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CiBA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOwor
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5h
YmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFuaW1hdGVkSW1hZ2VBc3luY0RlY29k
aW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRNYXJrdXBF
bmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IDQ3YWFlMzI4ZGIuLjY2NzAzNTllMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KQEAgLTI5OTIsNiArMjk5Miw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2Vs
ZlJldGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9y
dEFQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZF0pOwogICAg
IHNldHRpbmdzLnNldFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQoW3ByZWZlcmVuY2Vz
IHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NP
TVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTY3JvbGxpbmdB
UElFbmFibGVkXSk7CisgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZF0pOwogICAg
IHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFtw
cmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOwog
CiAgICAgc3dpdGNoIChbcHJlZmVyZW5jZXMgc3RvcmFnZUJsb2NraW5nUG9saWN5XSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDQyMDE0ZDk5ZDUuLmU3Y2E2ZjcyMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0xMi0xMCAgQ2F0
aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOp
cmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2Fu
Zy4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6IEhh
bmRsZSBzbW9vdGggc2Nyb2xsaW5nIG9wdGlvbi4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaDogRGl0dG8uCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOiBEaXR0by4K
KyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAg
ICAgICAgKFdlYlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKToK
KyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkKToKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJW
aWV3LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5n
ZWQpOgorCiAyMDE5LTEyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgUGFnZUNvbmZpZ3VyYXRpb246OmRyYWdDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBv
aW50ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdl
YlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZh
Y2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IGE3MTc2MjIyMWIuLmNjZmY5ZjA1
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJm
YWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjIzLDYgKzIyMyw4IEBAIGludGVy
ZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1CiAg
ICAgSFJFU1VMVCBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQp
OwogICAgIEhSRVNVTFQgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbb3V0LCByZXR2YWxd
IEJPT0wqKTsKICAgICBIUkVTVUxUIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW2lu
XSBCT09MIGVuYWJsZWQpOworICAgIEhSRVNVTFQgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldENTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgZmV0Y2hB
UElLZWVwQWxpdmVFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCogZW5hYmxlZCk7CiAgICAgSFJF
U1VMVCBzZXRGZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAg
IEhSRVNVTFQgc3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCAqZW5h
YmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oCmluZGV4IDA5OTM3NDIwZTQuLjA4YzQ1NjcyN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yMDksNiAr
MjA5LDcgQEAKICNkZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkg
IldlYktpdFNlcnZlclRpbWluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQ
cmVmZXJlbmNlS2V5ICJXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIgogCiAj
ZGVmaW5lIFdlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFJl
c2l6ZU9ic2VydmVyRW5hYmxlZCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZXMuY3BwCmluZGV4IDk1ZWJlYTI2OGMuLmM4ZTIyNWFhNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTMzOSw2ICszMzksOCBAQCB2b2lkIFdl
YlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGljdGlv
bmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQ
cmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlvbmFyeUFkZFZh
bHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
UHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlBZGRW
YWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0Q29yZU1hdGhNTEVuYWJsZWRQcmVmZXJlbmNlS2V5
KSwga0NGQm9vbGVhbkZhbHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRz
LCBDRlNUUihXZWJLaXRSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBr
Q0ZCb29sZWFuRmFsc2UpOwpAQCAtMjI4Myw2ICsyMjg1LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVy
ZW5jZXM6OnNldENvcmVNYXRoTUxFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19P
SzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAg
ICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJL
aXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0
dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldENTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJL
aXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7
CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnJlcXVlc3RJ
ZGxlQ2FsbGJhY2tFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFi
bGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMu
aCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggMWRhYWE3
MzAyNS4uNjA2NmU0NjQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
cy5oCkBAIC0yNzEsNiArMjcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9PTCk7CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBz
ZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOworICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRf
IEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RmV0Y2hBUElLZWVwQWxpdmVF
bmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAppbmRleCBhMDQ0OGJiMDEzLi5kMmIyMmYwNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcApAQCAtNTMxOCw2ICs1MzE4LDExIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90
aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAg
ICAgICAgcmV0dXJuIGhyOwogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAg
ICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZmVyZW5jZXMtPnByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4g
aHI7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MDBkYWJlNzNmNC4uZTlhMTI4YjAyNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTEwICBDYXRoaWUgQ2hl
biAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Ny
b2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2Fu
Zy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoVGVzdE9w
dGlvbnM6OlRlc3RPcHRpb25zKTogUGFyc2UgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOiBBZGQgQ1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCwgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChzZXRXZWJQcmVm
ZXJlbmNlc0ZvclRlc3RPcHRpb25zKTogU2V0IENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQgZnJvbSB0aGUgdGVzdCBvcHRpb25zLgorCiAyMDE5LTEyLTEwICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggQVBJIHRlc3QgZmFpbHVyZSBhZnRl
ciByMjUzMzUxCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggN2M5YWU1OTk0
YS4uMjM3Yzk4ODc4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtMTQy
LDYgKzE0Miw4IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYg
cGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBhZENsaWNr
QXR0cmlidXRpb25FbmFibGVkID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsK
ICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVzaXplT2JzZXJ2ZXJFbmFi
bGVkIikKICAgICAgICAgICAgIGVuYWJsZVJlc2l6ZU9ic2VydmVyID0gcGFyc2VCb29sZWFuVGVz
dEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50
YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIpCisgICAgICAgICAgICBlbmFibGVD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFs
dWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpDb3JlTWF0aE1MRW5h
YmxlZCIpCiAgICAgICAgICAgICBlbmFibGVDb3JlTWF0aE1MID0gcGFyc2VCb29sZWFuVGVzdEhl
YWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6
UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgK
aW5kZXggZTUzMzVlODMxMS4uZjdlOGQyOTExZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9u
cy5oCkBAIC01MCw2ICs1MCw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBlbmFi
bGVDU1NMb2dpY2FsIHsgZmFsc2UgfTsKICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJs
ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlUmVzaXplT2JzZXJ2ZXIgeyBmYWxzZSB9Owor
ICAgIGJvb2wgZW5hYmxlQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nIHsgZmFsc2UgfTsKICAgICBi
b29sIGVuYWJsZUNvcmVNYXRoTUwgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlUmVxdWVzdElk
bGVDYWxsYmFjayB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVBc3luY0NsaXBib2FyZEFQSSB7
IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5k
ZXggY2NmZmUwNTVkMy4uNjdjYWVhNzE4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQpAQCAtMTAyOSw2ICsxMDI5LDcgQEAgc3RhdGljIHZvaWQgc2V0V2Vi
UHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAg
ICBwcmVmZXJlbmNlcy5DU1NMb2dpY2FsRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTTG9naWNh
bDsKICAgICBwcmVmZXJlbmNlcy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gb3B0aW9ucy5h
ZENsaWNrQXR0cmlidXRpb25FbmFibGVkOwogICAgIHByZWZlcmVuY2VzLnJlc2l6ZU9ic2VydmVy
RW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlUmVzaXplT2JzZXJ2ZXI7CisgICAgcHJlZmVyZW5jZXMu
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nOwogICAgIHByZWZlcmVuY2VzLmNvcmVNYXRoTUxFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVDb3JlTWF0aE1MOwogICAgIHByZWZlcmVuY2VzLnJlcXVlc3RJZGxlQ2FsbGJh
Y2tFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrOwogICAgIHByZWZl
cmVuY2VzLmFzeW5jQ2xpcGJvYXJkQVBJRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQXN5bmNDbGlw
Ym9hcmRBUEk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385597</attachid>
            <date>2019-12-13 06:18:59 -0800</date>
            <delta_ts>2019-12-13 07:07:10 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_38.diff</filename>
            <type>text/plain</type>
            <size>302665</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjg4NDBmM2NmLi4zNWZhMzg0M2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0g
aXMgYmFzZWQgb24gQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5j
IHNjcm9sbCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJl
Zm9yZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0
byBmYXN0L3Njcm9sbGluZy9pb3MvLCB0aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAgICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAg
ICAod2FpdEZvclNjcm9sbEVuZCk6CisgICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNj
cm9sbFdpbmRvdyk6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sLgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNh
dGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJl
aGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4ODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUg
cGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
OiBTa2lwIHRoZXNlIHRlc3RzIG9uIFdLMSBhcyB0aGV5IGRvbid0IHdvcmsgZm9yIG5vdy4KKwor
MjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxOS0xMi0xMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgog
CiAgICAgICAgIENyZWF0ZSBhIFRlc3RFeHBlY3RhdGlvbnMgZmlsZSBmb3IgdGhlIEdQVSBwcm9j
ZXNzIHJlbGF0ZWQgd29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwLi4wYTA5NjhlMDI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKQEAg
LTAsMCArMSw4NyBAQAorZnVuY3Rpb24gb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgY2FsbGJh
Y2spIHsKKyAgaWYgKCFBcnJheS5pc0FycmF5KGVsZW1lbnRzKSkKKyAgICAgIGVsZW1lbnRzID0g
W2VsZW1lbnRzXTsKKyAgdmFyIGxhc3RDaGFuZ2VkRnJhbWUgPSAwOworICB2YXIgbGFzdExlZnQg
PSBuZXcgTWFwKCk7CisgIHZhciBsYXN0VG9wID0gbmV3IE1hcCgpOworICBlbGVtZW50cy5mb3JF
YWNoKChlbGVtZW50KSA9PiB7CisgICAgbGFzdExlZnQuc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Ny
b2xsTGVmdCk7CisgICAgbGFzdFRvcC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOwor
ICB9KTsKKyAgZnVuY3Rpb24gdGljayhmcmFtZXMpIHsKKyAgICAvLyBXZSByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgZWl0aGVyIGZvciA1MDAgZnJhbWVzIG9yIHVudGlsIDIwIGZyYW1lcyB3aXRoCisg
ICAgLy8gbm8gY2hhbmdlIGhhdmUgYmVlbiBvYnNlcnZlZC4KKyAgICBpZiAoZnJhbWVzID49IDUw
MCB8fCBmcmFtZXMgLSBsYXN0Q2hhbmdlZEZyYW1lID4gMjApIHsKKyAgICAgIGNhbGxiYWNrKHRy
dWUpOworICAgIH0gZWxzZSB7CisgICAgICB2YXIgc2Nyb2xsSGFwcGVuZWQgPSBlbGVtZW50cy5z
b21lKChlbGVtZW50KSA9PiB7CisgICAgICAgIHJldHVybiBlbGVtZW50LnNjcm9sbExlZnQgIT0g
bGFzdExlZnQuZ2V0KGVsZW1lbnQpIHx8IGVsZW1lbnQuc2Nyb2xsVG9wICE9IGxhc3RUb3AuZ2V0
KGVsZW1lbnQpOworICAgICAgfSk7CisgICAgICBpZiAoc2Nyb2xsSGFwcGVuZWQpIHsKKyAgICAg
ICAgbGFzdENoYW5nZWRGcmFtZSA9IGZyYW1lczsKKyAgICAgICAgZWxlbWVudHMuZm9yRWFjaCgo
ZWxlbWVudCkgPT4geworICAgICAgICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNj
cm9sbExlZnQpOworICAgICAgICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xs
VG9wKTsKKyAgICAgICAgfSk7CisgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsKKyAgICAgIH0KKyAg
ICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrLmJpbmQobnVsbCwgZnJhbWVzICsgMSkpOwor
ICAgIH0KKyAgfQorICB0aWNrKDApOworfQorCitmdW5jdGlvbiB3YWl0Rm9yU2Nyb2xsRW5kKGVs
ZW1lbnRzKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgIG9ic2Vy
dmVTY3JvbGxpbmcoZWxlbWVudHMsIChkb25lKSA9PiB7CisgICAgICBpZiAoZG9uZSkKKyAgICAg
ICAgcmVzb2x2ZSgpOworICAgIH0pOworICB9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCkgeworICAvLyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0
aGUgZWxlbWVudCBwb3NpdGlvbiBpcyByZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOwor
ICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImlu
c3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dp
bmRvdykgeworICAvLyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0aGUgZWxlbWVudCBw
b3NpdGlvbiBpcyByZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwgYmVoYXZpb3I6ICJpbnN0YW50In0pOworfQorCitmdW5j
dGlvbiBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCBjbGFzc05hbWUpIHsKKyAgc3R5
bGVkRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJhdXRvQmVoYXZpb3IiLCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgc3R5bGVkRWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7Cit9CisKK2Z1
bmN0aW9uIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2
aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFy
Z3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsK
KyAgc3dpdGNoIChzY3JvbGxGdW5jdGlvbikgeworICAgIGNhc2UgInNjcm9sbEludG9WaWV3IjoK
KyAgICAgIGFyZ3MuaW5saW5lID0gInN0YXJ0IjsKKyAgICAgIGFyZ3MuYmxvY2sgPSAic3RhcnQi
OworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbEludG9WaWV3KGFyZ3MpOworICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7
CisgICAgICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgICAgIHNjcm9sbGluZ0Vs
ZW1lbnRbc2Nyb2xsRnVuY3Rpb25dKGFyZ3MpOworICAgICAgYnJlYWs7CisgIH0KK30KKworZnVu
Y3Rpb24gc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2
aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFy
Z3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsK
KyAgYXJncy5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgYXJncy50b3AgPSBlbGVtZW50
VG9SZXZlYWxUb3A7CisgIHNjcm9sbGluZ1dpbmRvd1tzY3JvbGxGdW5jdGlvbl0oYXJncyk7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjhkNGNhNjQxNTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQt
Y3NzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBJbnN0YW50IHNjcm9sbGlu
ZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCitQQVNTIFNtb290
aCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uMzVjNjUwM2FiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMCww
ICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVy
aW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFz
eW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIGRl
ZmF1bHQgdmFsdWUgb2Ygc2Nyb2xsLWJlaGF2aW9yPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJp
YyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9s
bC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3Jv
bGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVp
Z2h0OiAyMDBweDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYg
aWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0
aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEz
NWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1l
bnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246
IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwv
c3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBzY3JvbGxpbmdFbGVtZW50
ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFy
IGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgdmFyIHNjcm9sbEZ1bmN0aW9uID0gInNjcm9s
bCI7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7Cisg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgfSwgIkluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQg
d2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIlNtb290
aCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjUzYTk2MWVmNTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKKworUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxl
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDM4
ZGZmZGVjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50
PC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsK
KyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuYXV0b0JlaGF2
aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9y
IHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUi
PgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3Vu
ZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48
L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1i
bG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Cisg
IHZhciBzY3JvbGxpbmdFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgc3R5bGVkRWxlbWVu
dCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZh
ciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisKKyAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAi
c2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4g
eworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVo
YXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rp
b24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRv
IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwg
YEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
YXV0byBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7Cisg
ICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bFRvcCIpOworICAgICAgfSk7CisgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgIH0p
OworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
ZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7Cisg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJv
b3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk3
Y2FlYTI3YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzNyBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5n
IAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4g
ZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDMy
NWI0YjllMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNjkgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAg
IG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6
IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBh
Z2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4K
KyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0g
YXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxl
ZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1
bmN0aW9uKCkgeworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAg
cGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiA1ICsg
InB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cuaW5uZXJI
ZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsgd2luZG93
LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQgPSBlbGVt
ZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUudG9wID0g
ZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNr
KCgpID0+IHsgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7IH0pOworCisgICAgWyJzY3Jv
bGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChz
Y3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29s
dmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAg
ICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNj
cm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwg
InNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0p
OworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBh
biBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJp
bnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21v
b3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5n
Iik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwLi4zODIzODVhYWI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyOSBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21v
b3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi45MDU3YjBjZDEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1s
CkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGlu
dGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5U
ZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogb24gdGhl
IHdpbmRvdyBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBj
b250ZW50PSJsb25nIi8+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLG1pbmltdW0tc2NhbGU9MSxpbml0aWFsLXNjYWxlPTEiPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVo
YXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZp
b3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBp
ZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwi
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2Pgor
PHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOwor
ICB2YXIgc2Nyb2xsaW5nV2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
cGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICBzY3JvbGxpbmdXaW5k
b3cgPSB3aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRo
KSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9ICgyMCArIHdpbmRv
dy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gKDEw
ICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZlYWxUb3AgPSAoMjAg
KyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUubGVm
dCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbC5zdHls
ZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRkX2NvbXBsZXRpb25f
Y2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbEZvcldpbmRvdyh3aW5kb3cpOyB9KTsKKworICAg
IFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rp
b24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93
LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAg
ICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAg
c2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50Iiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290
aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3Ag
LyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJpbnN0YW50IiwgMCwg
MCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAuLjQ0M2E4MjBlNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mgc2Nyb2xsSW50b1ZpZXcg
d2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJlaGF2aW9yIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40NWI1ZDhkN2M3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxp
bnRvdmlldy1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIHdpdGggc2Ny
b2xsSW50b1ZpZXcgZm9yIG5lc3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxlPgorPG1ldGEgbmFt
ZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJG
csOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3Bk
ZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
KyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIGhlaWdodDogMjAwcHg7
CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsK
KyAgfQorICAuZ3JhZGllbnQgeworICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVk
ZWcsIHJlZCwgZ3JlZW4pOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2Pgor
PGRpdj4KKyAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9Indp
ZHRoOiA0NTBweCI+CisgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIHNt
b290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KKyAgICAgIDxkaXYgY2xhc3M9Imdy
YWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAg
ICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDM1MHB4Ij4KKyAgICAgICAg
PGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAz
MDBweCI+CisgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDI1MHB4Ij4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6
IDIwMHB4Ij4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0
aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0i
ZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgYmFja2dy
b3VuZDogYmxhY2s7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQi
IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAg
IDwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDog
MTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg
ICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBw
eDsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICA8L2Rpdj4K
KyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDUwMHB4OyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0Pgor
ICAvLyBUaGUgQ1NTT00tVmlldyBzcGVjIGFuZCBpbXBsZW1lbnRhdGlvbnMgZm9sbG93IGRpZmZl
cmVudCBhbGdvcml0aG1zIChzY3JvbGxzIHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgYXMgaW5uZXIt
dG8tb3V0ZXIgc2VxdWVuY2Ugb3IgYXMgb3V0ZXItdG8taW5uZXIgc2VxdWVuY2UpLgorICAvLyBT
ZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzMxMjcKKyAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICB2YXIgZGl2cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ii5zY3JvbGxhYmxlIik7CisgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsYWJsZURpdik7CisgICAgICB9KTsKKyAgICAgIGVs
ZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyh7aW5saW5lOiAic3RhcnQiLCBibG9jazogInN0
YXJ0IiwgYmVoYXZpb3I6ICJhdXRvIn0pOworICAgICAgdmFyIHNjcm9sbFRvcCA9IG5ldyBNYXAo
KTsKKyAgICAgIHZhciBpc1Ntb290aCA9IG5ldyBNYXAoKTsKKyAgICAgIGRpdnMuZm9yRWFjaCgo
c2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9sbGFibGVEaXYs
IHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgaXNTbW9vdGguc2V0KHNjcm9sbGFi
bGVEaXYsIHNjcm9sbGFibGVEaXYuY2xhc3NMaXN0LmNvbnRhaW5zKCJzbW9vdGhCZWhhdmlvciIp
KTsKKyAgICAgICAgLy8gSWYgc2Nyb2xsIG9wZXJhdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgaW4g
cGFyYWxsZWwsIHNjcm9sbCBib3hlcyB3aXRoIGluc3RhbnQgYmVoYXZpb3IgbWlnaHQgYWxzbyBu
ZWVkIHRvIHdhaXQgZm9yIHRoZWlyIHByZWRlY2Vzc29ycy4KKyAgICAgICAgaWYgKGlzU21vb3Ro
LmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbFRv
cC5nZXQoc2Nyb2xsYWJsZURpdiksIDUwMCwgIkVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
c2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkiKTsKKyAgICAgIH0pOworCisgICAgICBvYnNl
cnZlU2Nyb2xsaW5nKEFycmF5LmZyb20oZGl2cyksIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAg
dHJ5IHsKKyAgICAgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2
KSwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIp
OworICAgICAgICAgICAgaWYgKCFpc1Ntb290aC5nZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAg
ICAgICAgIGFzc2VydF9hbnkoYXNzZXJ0X2VxdWFscywgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3As
IFswLCA1MDBdLCAiRWxlbWVudCB3aXRoIGluc3RhbnQgYmVoYXZpb3Igc2hvdWxkIGp1bXAgdG8g
dGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgNTAwLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9sbGFibGVE
aXYsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSBj
YXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChk
b25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAic2Ny
b2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJl
aGF2aW9yIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu
Ljg1NWE2YTYxMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjAgQEAKKworUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hl
biBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9s
bFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Ny
b2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUw
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9u
cyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9y
bWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcg
c2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290
aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkg
IAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgw
LCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3Np
dGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAo
NTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25z
IHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUw
MCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9s
bGluZyAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9s
bGluZyB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3Ro
LXBvc2l0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBh
NDFiOGIwOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbApAQCAtMCwwICsxLDE1MSBA
QAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJm
bG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGwgcG9z
aXRpb25zIHdoZW4gc2Nyb2xsaW5nIGFuIGVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3I8L3Rp
dGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAg
IHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHNjcm9sbC1iZWhhdmlvcjog
c21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0i
b3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAy
MDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVn
LCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRv
UmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1
cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFu
PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgLy8gRm9yIHNtb290aCBiZWhhdmlvciwg
ZXZvbHV0aW9uIG9mIHNjcm9sbCBwb3NpdGlvbnMgb3ZlciB0aW1lIGlzIG5vdCBzcGVjaWZpZWQg
YnkgQ1NTT00gVmlldy4KKyAgLy8gVGhpcyB0ZXN0IHJlbGllcyBvbiB0aGUgbWluaW1hbCBhc3N1
bXB0aW9uIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGZ1bmN0aW9ucyBhcmUgbW9ub3RvbmljLgorICBb
InNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVh
Y2goZnVuY3Rpb24oc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBbe2xlZnQ6MCwgdG9wOjB9LCB7bGVm
dDoxMDAwLCB0b3A6MH0sIHtsZWZ0OjAsIHRvcDo1MDB9LCB7bGVmdDoxMDAwLCB0b3A6NTAwfV0u
Zm9yRWFjaCgoaW5pdGlhbCkgPT4geworICAgICAgdmFyIGZpbmFsTGVmdCA9IDUwMDsKKyAgICAg
IHZhciBmaW5hbFRvcCA9IDI1MDsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgaW5pdGlhbC5s
ZWZ0LCBpbml0aWFsLnRvcCk7CisgICAgICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUu
c2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRv
cDsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIGluaXRpYWwubGVmdCwgIlNjcm9s
bExlZnQgc2hvdWxkIGJlIGF0IGluaXRpYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG9sZFRvcCwgaW5pdGlhbC50b3AsICJTY3JvbGxUb3Agc2hvdWxkIGJlIGF0IGluaXRp
YWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBpZiAoc2Nyb2xsRnVuY3Rpb24gPT09ICJzY3JvbGxC
eSIpCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgc2Nyb2xsRnVuY3Rpb24s
ICJzbW9vdGgiLCBmaW5hbExlZnQgLSBpbml0aWFsLmxlZnQsIGZpbmFsVG9wIC0gaW5pdGlhbC50
b3ApOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2Rl
LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCwgZmluYWxUb3ApOworICAgICAg
ICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25lKSB7CisgICAg
ICAgICAgICB0cnkgeworICAgICAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxMZWZ0OworICAgICAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bFRvcDsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChNYXRoLmh5cG90KGZp
bmFsTGVmdCAtIG5ld0xlZnQsIGZpbmFsVG9wIC0gbmV3VG9wKSwgTWF0aC5oeXBvdChmaW5hbExl
ZnQgLSBvbGRMZWZ0LCBmaW5hbFRvcCAtIG9sZFRvcCksICJTY3JvbGwgcG9zaXRpb24gc2hvdWxk
IG1vdmUgdG93YXJkcyB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgaWYgKGRv
bmUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIGZpbmFsTGVmdCwg
IlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIGZpbmFsVG9wLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFj
aCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIG9sZExl
ZnQgPSBuZXdMZWZ0OworICAgICAgICAgICAgICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZv
cm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgke2luaXRpYWwubGVmdH0sICR7aW5pdGlhbC50
b3B9KSB0byAoJHtmaW5hbExlZnR9LCAke2ZpbmFsVG9wfSkgdXNpbmcgJHtzY3JvbGxGdW5jdGlv
bn0oKSBgKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICByZXNl
dFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxTY3JvbGxBYm9ydGVkID0g
ZmFsc2U7CisgICAgICB2YXIgc2Nyb2xsRGlyZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOworICAgICAg
dmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZhciBvbGRUb3Ag
PSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUob3Zl
cmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAgICBvYnNlcnZl
U2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgewor
ICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAg
ICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgaWYgKGlu
aXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAgICAgICAgICBpZiAoc2Nyb2xsRGlyZWN0aW9uQ2hh
bmdlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9sZExlZnQs
IG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBrZWVw
cyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgc2Nyb2xs
RGlyZWN0aW9uQ2hhbmdlZCA9IG5ld0xlZnQgPD0gb2xkTGVmdCAmJiBuZXdUb3AgPD0gb2xkVG9w
OworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1
YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAg
ICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xs
VG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAw
ICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAgICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFs
IHNjcm9sbC4KKyAgICAgICAgICAgICAgICBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3Ro
IiwgNTAwLCAyNTApOworICAgICAgICAgICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Ny
b2xsTGVmdDsKKyAgICAgICAgICAgICAgICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9w
OworICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxk
IHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1Rv
cCwgMjUwLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAg
ICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3AgPSBu
ZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsK
KyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBz
Y3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5pdGlh
bFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsK
KyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKG9s
ZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9v
dGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1
bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05v
ZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmICghaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsKKyAg
ICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Ny
b2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIpOwor
ICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7CisgICAg
ICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAgICAg
IGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxOb2Rl
KG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgNTAwLCAyNTApOworICAgICAgICAg
ICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAg
ICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9z
aXRpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Ny
b2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRp
b24iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Ag
c2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICB9CisgICAgICAgICAg
b2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICB9
IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH0sICJT
Y3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4g
aW5zdGFudCBzY3JvbGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uMjc5OWZkY2MyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzNyBAQAorCitQQVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3Ro
IHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAor
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3
aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk2ZDExYWI5NjIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4K
Kzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9s
bCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4K
KzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12
aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+
Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2RlIiB3aWR0aD0i
NDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFET0NUWVBFPgorPGh0bWw+CisgIDxzdHls
ZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgLmF1dG9CZWhhdmlv
ciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgICAgfQorICAgIC5zbW9vdGhCZWhh
dmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgICB9CisgIDwvc3R5bGU+
CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4
OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsnPgorICAg
ICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWln
aHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0eWxlPSdkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48L3NwYW4+CisgICAgPC9kaXY+CisgIDwv
Ym9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2NyaXB0PgorICB2YXIgaWZyYW1lTG9hZFRl
c3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50
LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBlbGVtZW50VG9SZXZlYWxM
ZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICBpZnJhbWVOb2Rl
LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5zdGVwX2Z1bmNfZG9uZSgo
KSA9PiB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVu
dERvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50VG9SZXZlYWwgPSBpZnJhbWVO
b2RlLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudFRvUmV2ZWFsIik7CisK
KyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJd
LmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJh
dXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Jg
KTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3Jv
bGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICAgIH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
bnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAg
ICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxp
bmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNt
b290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsKKwor
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVt
ZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhh
dmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAy
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBz
Y3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9s
bChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50Iiwg
MCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDVlYjMyNzJmNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisK
K1BBU1MgaWZyYW1lIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13
aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zMzMzZDY0
Zjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFE
T0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Ny
b2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVt
ZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1l
PC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+
PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2Rl
IiB3aWR0aD0iNDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFET0NUWVBFPgorPGh0bWw+
CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgLmF1
dG9CZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgICAgfQorICAgIC5z
bW9vdGhCZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgICB9Cisg
IDwvc3R5bGU+CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdo
dDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVu
KTsnPgorICAgICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUw
MHB4OyBoZWlnaHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0
eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48L3NwYW4+CisgICAgPC9k
aXY+CisgIDwvYm9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2NyaXB0PgorICB2YXIgaWZy
YW1lTG9hZFRlc3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7CisgIHZhciBzY3JvbGxp
bmdXaW5kb3csIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAgdmFyIGVsZW1lbnRU
b1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlm
cmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVu
Y19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdXaW5kb3cgPSBpZnJhbWVOb2RlLmNvbnRlbnRX
aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50VG9SZXZlYWwgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudFRvUmV2ZWFsIik7CisKKyAgICBbInNjcm9s
bCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJl
c29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xs
aW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9u
LCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhz
Y3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cu
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7Cisg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9w
Iik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisK
KyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Ny
b2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIp
OworCisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
NDdmZDVlMWE1NC4uMzZmNTNiNjBhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVz
IG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgRW5hYmxlIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQgb24gc2Nyb2xsIGJlaGF2aW9yIHRlc3RzIGFuZCB1cGRhdGUgZXhwZWN0YXRpb25zLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJv
b3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Ny
b2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6CisKKzIwMTktMTItMTAgIENhdGhp
ZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJp
YyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFu
Y2UtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmUtc3luYyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLW9yaWdpbi1v
YmplY3RzLmh0bWwgZnJvbSB1c3B0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCAzYWMwYTM3Y2ZmLi44
NzVhNzI3Yzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBQcm9wZXJ0
eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogc2Ny
b2xsLWJlaGF2aW9yIGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVk
IHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhh
dmlvciBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byAK
K1BBU1MgUHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9yIGRvZXMgbm90IGluaGVyaXQgCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dAppbmRleCA5MDY4Yjc5NzU1Li44
ZDRjYTY0MTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQg
d2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKLUZBSUwgU21vb3RoIHNjcm9sbGluZyBvZiBh
biBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFNtb290aCBzY3JvbGxpbmcgb2YgYW4gZWxl
bWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1j
c3MuaHRtbAppbmRleCA2OTI1Y2YwOTJjLi5mZTQ3NWIwMzlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1
bHQtY3NzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1
ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBl
Y3RlZC50eHQKaW5kZXggMmI5MTI5YzFjZi4uNTNhOTYxZWY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTIsMzUgKzIsMzUgQEAKIFBBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAog
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVs
ZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxl
bWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1l
bnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAotRkFJTCBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0
byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1l
bGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKaW5kZXggM2NiZDcy
MmY3Mi4uNmMxNTkyOWM5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+
CiA8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3Jv
bGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwvdGl0bGU+CiA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKaW5kZXggZDkyMjI1OGFm
Mi4uOTdjYWVhMjdiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1y
b290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0CkBAIC0zLDM1ICszLDM1IEBAIFBBU1MgUGFnZSBsb2FkZWQKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290
IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBi
dXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBn
b3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAg
YnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50
b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
NDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9v
dGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAppbmRleCBmY2Y3NWFhMWRkLi42ZDliMjI0MmVhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
RE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
eHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxl
PgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4
dAppbmRleCBjNmJlOTY2NjFjLi4zODIzODVhYWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0zLDI3ICszLDI3IEBAIFBBU1Mg
UGFnZSBsb2FkZWQKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
Ci1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQg
Z290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1G
QUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290
IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2Vy
dF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0
ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
IFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5k
b3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKaW5kZXgg
OGM4OGVjNjg2MS4uYmYzODczMDQyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS13aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdp
bmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMn
IGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogb24gdGhlIHdpbmRvdyBvZiB0aGUgbWFpbiBm
cmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLG1pbmltdW0tc2Nh
bGU9MSxpbml0aWFsLXNjYWxlPTEiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Ny
b2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9s
bGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKaW5kZXggN2NlMTBjMDg5Ni4uNDQzYTgyMGU1
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHNjcm9sbEludG9WaWV3IHdpdGgg
bmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNob3VsZCBub3Qgc2Nyb2xsIGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1Mgc2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Ny
b2xsLWJlaGF2aW9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRv
dmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC5odG1sCmluZGV4IDNhODkwNjUzMmIuLjNmM2Q5YjcyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBF
IGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5U
ZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIHdpdGggc2Nyb2xsSW50b1ZpZXcgZm9yIG5l
c3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMuaHRtbAppbmRleCAwMDVkMmI2MDRkLi5lYWEwZmZmMDE5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5n
IHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRoIHNtb290aCBi
ZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3
YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUt
cm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVj
dGVkLnR4dAppbmRleCBiNmZhMWMyZWM4Li4yNzk5ZmRjYzI5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMywzNSArMywzNSBAQCBQQVNTIGlm
cmFtZSBsb2FkZWQKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1G
QUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVz
cyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
NTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5n
IGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290Lmh0bWwKaW5kZXggZTY0MWU1M2UzMy4uZThjY2I2NmJlNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBo
dG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50
YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+VGVz
dGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3Jv
bGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggY2M2NjVlYmRi
OC4uMDVlYjMyNzJmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2lu
ZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0CkBAIC0zLDI3ICszLDI3IEBAIFBBU1MgaWZyYW1lIGxvYWRlZAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290
aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3Qg
NTAwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190
aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVt
YmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUw
MCBidXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAw
Ci1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBn
b3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFi
b3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1z
dWJmcmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5o
dG1sCmluZGV4IGQ5MzFlMDAzZDQuLjkyNjg0ZDY3NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXdpbmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9w
dGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBv
biB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDQ5NmNmMmRjYi4uMDQxZjM2ZWJjZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NzQ4LDYgKzc0OCwxNSBAQCB3ZWJraXQub3JnL2IvMTg5NTk0IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmltYXRpb25zL3BlbmRpbmctcwogCiB3ZWJraXQub3JnL2Iv
MTg4MDcwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZXJy
b3ItcHJvcGFnYXRpb24tYmFja3dhcmQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKKyMgVGVzdHMg
Zm9yIHNtb290aCBzY3JvbGwgYmVoYXZpb3IgZG8gbm90IGFsbCB3b3JrIGFuZCB0aGV5IGFyZSBz
bG93LCBzbyBsZXQncyBqdXN0IHNraXAgdGhlbS4KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS1yb290Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS13aW5kb3cuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE5MTM1NyBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c3ViZnJhbWUtd2luZG93Lmh0bWwgWyBTa2lwIF0KKworIyBUaGlzIGlzIGZhaWxpbmcgb24gbWFj
LXdrMSwgdHJ5IHRvIGZpZ3VyZSBpdCBvdXQgaW4gdGhlIGZvbGxvdy11cCBidWcuCit3ZWJraXQu
b3JnL2IvMTkxMzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvaW5oZXJpdGFuY2UuaHRtbCBbIFNraXAgXQorCiB3ZWJraXQub3JnL2IvMTg5OTA4IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL3Jlc291cmNlX3RpbWlu
Zy53b3JrZXIuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTg5NzU2IFsgTW9qYXZl
KyBdIGNvbXBvc2l0aW5nL2ZpbHRlcnMvb3BhY2l0eS1jaGFuZ2Utb24tZmlsdGVyZWQtcGFpbnRz
LWludG8tYW5jZXN0b3IuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDUyMjA2ODczMWMuLjBlODE0YmJjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC05NjQsOCArOTY0LDEwIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAg
cGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbAogICAgIHBhZ2UvUmVzaXplT2JzZXJ2ZXJF
bnRyeS5pZGwKICAgICBwYWdlL1NjcmVlbi5pZGwKKyAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmlk
bAogICAgIHBhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAogICAgIHBhZ2UvU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uLmlkbAorICAgIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKICAgICBwYWdlL1Nj
cm9sbFRvT3B0aW9ucy5pZGwKICAgICBwYWdlL1NoYXJlRGF0YS5pZGwKICAgICBwYWdlL1VuZG9J
dGVtLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhMTZiNDQwYWQuLmE0ODExZmM4MDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNDAgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBp
Z2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVs
aWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggc3VwcG9ydCBuYXRp
dmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0uIEl0IHJlbGllcyBvbiBVSVNjcm9s
bFZpZXcncworICAgICAgICBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBwb3J0IGFuZCBpcyBl
eGVjdXRlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBUZXN0czogZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJm
cmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5p
bWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBieSBjYWxsaW5nIGFu
aW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKTog
QWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCBvciBu
b3QuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1
cyBmcm9tIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOiBBZGQgbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gdG8gaW5kaWNhdGUgaXQncyBhbmltYXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOiBEaXR0by4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25XaXRoQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBVcGRh
dGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhIGZsYWcgdG8g
aW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4pOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIHRoZSBzY3JvbGwgaXMgYW5pbWF0ZWQgb3Ig
bm90LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9s
bFRvKTogSWYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiBpcyB0cnVlLCBzZW5kIHRoZSBzY3JvbGwg
cG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLCBldmVuIGlmIHRoZSBzY3JvbGwgcG9zaXRpb24g
ZG9lc24ndCBjaGFuZ2UuCisgICAgICAgIE1haW50YWluIHRoZSBzdGF0dXMgb2YgbV9zdG9wU2Ny
b2xsQW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbC4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFu
Z2VkKTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlt
bWVkaWF0ZWx5LCBzbyBkb24ndCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZvIG5vdy4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0QW5pbWF0
ZWRTY3JvbGwpOiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlz
IGFuIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRlZFNjcm9sbCBjb25zdCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24p
OiBJZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHByZXZp
b3VzIHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRk
IFNjcm9sbEJlaGF2aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQgb3Igc21vb3RoIHNj
cm9sbC4KKyAgICAgICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGluZGljYXRlIHRoZSBz
dGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBVcGRhdGUg
U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSk6IEFk
ZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjdXJyZW50U2Ny
b2xsQmVoYXZpb3JUeXBlIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogU2VuZCBhIHF1ZXN0IG9m
IG5hdGl2ZSBzY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBi
eSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorCisyMDE5
LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24g
b2YgdGhlIFdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ4ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIHByb2dyYW1tYXRpYyBzbW9vdGggc2Nyb2xsaW5n
IGluIFdlYktpdCBmcm9tIHRoZSBDU1NPTSBWaWV3CisgICAgICAgIHNwZWNpZmljYXRpb24gWzFd
LiBUbyB1c2UgdGhpcyBlZmZlY3QsIHdlYiBkZXZlbG9wZXJzIGNhbiBwYXNzIGEgYmVoYXZpb3Ig
cGFyYW1ldGVyIChhdXRvLAorICAgICAgICBzbW9vdGgsIG9yIGluc3RhbnQpIHRvIEVsZW1lbnQu
c2Nyb2xsLCBFbGVtZW50LnNjcm9sbFRvLCBFbGVtZW50LnNjcm9sbEJ5LAorICAgICAgICBFbGVt
ZW50LnNjcm9sbEludG9WaWV3LCBXaW5kb3cuc2Nyb2xsLCBXaW5kb3cuc2Nyb2xsVG8gb3IgV2lu
ZG93LnNjcm9sbEJ5IFsyXS4gV2hlbiBiZWhhdmlvcgorICAgICAgICBpcyBhdXRvLCB0aGUgaW5z
dGFudC9zbW9vdGggY2hhcmFjdGVyaXN0aWMgaXMgYWN0dWFsbHkgdGFrZW4gZnJvbSB0aGUgdmFs
dWUgb2YgYSBuZXcgQ1NTCisgICAgICAgIHNjcm9sbC1iZWhhdmlvciBwcm9wZXJ0eSBbM10uIEJv
dGggdGhlIG5ldyBDU1MgYW5kIERPTSBiZWhhdmlvciBhcmUgcHJvdGVjdGVkIGJ5IGEgcnVudGlt
ZQorICAgICAgICBmbGFnLgorCisgICAgICAgIFsxXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldworICAgICAgICBbMl0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZp
ZXcvI2RpY3RkZWYtc2Nyb2xsb3B0aW9ucworICAgICAgICBbM10gaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yCisKKyAgICAgICAgVGVz
dHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQu
aHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAgICAgICAg
ICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgt
cG9zaXRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAor
ICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDogQnVpbGQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCBvbiBhbGwgcGxhdGZvcm1z
LgorICAgICAgICAqIFNvdXJjZXNHVEsudHh0OiBSZW1vdmUgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmNwcCBzaW5jZSBpdCBpcyBidWlsdCBvbiBhbGwgcGxhdGZvcm1zIG5vdy4KKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmll
dyk6IFBhc3Mgc2Nyb2xsIGJlaGF2aW9yLCBpZiBhbnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzY3JvbGxCeSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxUbyk6IEhh
bmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Ny
b2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNj
cm9sbFRvcCk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGgu
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpzY3JvbGxCeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9s
bFRvIGNvbnN0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290
aC4KKyAgICAgICAgVGhlIG9wdGltaXphdGlvbiBvZiBjYW5jZWwgKDAsIDApIHNjcm9sbGluZyBp
cyBza2lwcGVkIGlmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcy4KKyAgICAgICAg
T3RoZXJ3aXNlLCB0aGUgcHJldmlvdXMgc2Nyb2xsIHdvbid0IGJlIHN0b3BwZWQgYnkgYSBmb2xs
b3ctdXAgc2Nyb2xsLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBTdGFydCBhbiBhbmltYXRl
ZCBzY3JvbGwuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRpb246OnNjcm9sbCk6IEZ1bmN0aW9uIHRvIGFuaW1hdGUgc2Nyb2xsaW5n
IHRvIGEgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvblNtb290aC5jcHA6IEJ1aWxkIHRoaXMgZmlsZSBvbiBhbGwgcGxhdGZvcm1zLiBBZGQgYQor
ICAgICAgICBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgcGFyYW1ldGVyIHRvIHNs
b3cgZG93biB0aGUgc21vb3RoIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdGlvblNtb290aDo6c2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlv
blNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEpOiBTY2FsZSB0aGUgdGltZSBwYXJhbWV0ZXJzIG9m
IHRoZQorICAgICAgICBhbmltYXRpb24gc28gdGhhdCBpdCBsb29rcyBzbW9vdGhlci4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaDogRGVjbGFyZSB0aGUgY2xhc3Mg
b24gYWxsIHBsYXRmb3Jtcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IpOiBJbml0
aWFsaXplIGFuaW1hdGlvbiBtZW1iZXIgZm9yIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9PZmZzZXQpOiBBbmltYXRlIHNj
cm9sbGluZyB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMpOiBDb3B5IGxvZ2ljIGZyb20gU2Nyb2xsQW5p
bWF0aW9uU21vb3RoLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzZXJ2
aWNlU2Nyb2xsQW5pbWF0aW9ucyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3I6OndpbGxFbmRMaXZlUmVzaXplKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvcjo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaDogTmV3IGFuaW1hdGlvbiBtZW1i
ZXIgZm9yIHNtb290aCBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6c2Vy
dmljZVNjcm9sbEFuaW1hdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjp3aWxsRW5kTGl2ZVJlc2l6ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFkZFZl
cnRpY2FsU2Nyb2xsYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yOjpTY3JvbGxBbmltYXRvcjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yU3Rh
dHVzIHRvIGluZGljYXRlIHRoZSBzdGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Ny
b2xsUG9zaXRpb24pOiBGb2xsb3cgdGhlIENTU09NIFZpZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMg
aW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGludGVycnVwdCBpdCBhbmQgY29udGludWUgdGhlIHNj
cm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJlIGF0IHRoZSBmaW5hbCBwb3NpdGlvbikuCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09m
ZnNldFdpdGhBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNl
dFNjcm9sbE9mZnNldEZyb21JbnRlcm5hbHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24pOiBUbyBhdm9pZCBpdGVyYXRlIGNh
bGxpbmcsCisgICAgICAgIG1vdmUgdGhlIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShwb3Np
dGlvbikgY2hlY2tpbmcgb3V0IG9mIHNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24oKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyBjb25zdCk6IE1haW50YWlu
IGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFi
bGVBcmVhOjpzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyk6CisgICAgICAgICogcGxhdGZvcm0vZ2Vu
ZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JHZW5lcmljOjp1cGRhdGVQb3NpdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JN
YWM6OmNhbmNlbEFuaW1hdGlvbnMpOiBDYWxsIHBhcmVudCBtZW1iZXIgdG8gaGFuZGxlIHByb2dy
YW1tYXRpYyBzY3JvbGxpbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQpOiBBZGQgZmxhZyB0byBp
bmRpY2F0ZSBhbmltYXRlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNl
dFNjcm9sbFRvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRTY3Jv
bGxQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9YUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpzY3JvbGxUb1lQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnNjcm9sbFRvUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnNjcm9sbFRvT2Zmc2V0KTogRm9sbG93IHRoZSBDU1NPTSBWaWV3IHNwZWM6IElmIGEgc2Nyb2xs
IGlzIGluCisgICAgICAgIHByb2dyZXNzLCB3ZSBpbnRlcnJ1cHQgaXQgYW5kIGNvbnRpbnVlIHRo
ZSBzY3JvbGwgY2FsbCAoZXZlbiB3aGVuIHdlIGFyZSBhdCB0aGUgZmluYWwKKyAgICAgICAgcG9z
aXRpb24pLiBJdCdzIFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCBzY3JvbGwuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24p
OiBEaXR0by4gVGhpcyBpcyBzaW1pbGFyIHRvIHNjcm9sbFRvT2Zmc2V0CisgICAgICAgIGJ1dCBh
bmltYXRlcyB0aGUgc2Nyb2xsLiBJdCdzIFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoIHNjcm9s
bC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6IEFnYWluIGRvbid0IGRv
IGFuIGVhcmx5IHJldHVybiBpZiBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MuIFdlIGNh
bGwgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uIGluc3RlYWQgb2Ygc2Nyb2xsVG9PZmZzZXQg
d2hlbiBhcHByb3ByaWF0ZS4KKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gbWF5IG5v
dCB3b3JrIHdlbGwgZm9yIHNldmVyYWwgbmVzdGVkIHNjcm9sbCBib3hlcyB3aXRoIGF0IGxlYXN0
IG9uZQorICAgICAgICBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yLiBJdCB3aWxsIGhhbmRs
ZWQgaW4gYnVnIEZvbGxvdy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDogQWRk
IHNjcm9sbCBiZWhhdmlvciB0byBTY3JvbGxUZWN0VG9WaXNpYmxlT3B0aW9ucy4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
aXN0Qm94OjpzZXRTY3JvbGxMZWZ0KTogQWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3ApOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp1bmNvbnN0cmFpbmVkU2Nyb2xsVG8p
OgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5n
IHNjcm9sbC1iZWhhdmlvciBjc3MgcHJvcGVydHkgYW5kIFNjcm9sbE9wdGlvbnMuCisKKyAgICAg
ICAgVGVzdHM6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IEFkZCBJREwgZmlsZXMgZm9yIFNjcm9sbE9wdGlvbnMgYW5kIFNjcm9sbEJlaGF2aW9yLgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogSGVhZGVycy5jbWFrZTogQWRk
IGhlYWRlcnMgZm9yIFNjcm9sbEJlaGF2b3IgYW5kIFNjcm9sbE9wdGlvbnMuCisgICAgICAgICog
U291cmNlcy50eHQ6IEFkZCBTY3JvbGxCZWhhdm9yIGFuZCBTY3JvbGxPcHRpb25zIGltcGxlbWVu
dGF0aW9uLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRk
IGZpbGVzIHRvIHRoZSBidWlsZCBzeXN0ZW0uCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHA6IEhhbmRsZSBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChXZWJD
b3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZSk6Cisg
ICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjogQWRkIHNjcm9sbC1iZWhhdmlvci4KKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogQWRkIGtleXdvcmRzIGZvciBzY3JvbGwt
YmVoYXZpb3IuCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcDogQWRk
IHJ1bnRpbWUgY29uZmlnIGZvciBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHRIYXNoOjpoYXNoKToKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHA6IFJlbW92ZSBzY3JvbGwtYmVo
YXZpb3IgdGVtcGxhdGVzLiBJdCBpcyBoYW5kbGVkIGluIHRoZSBzbG93IHBhdGggc2luY2UgcHJv
cGVydHkgY2FuIGJlIGRpc2FibGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBh
dGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKToKKyAgICAgICAgKiBjc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVT
Y3JvbGxCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6cGFy
c2VTaW5nbGVWYWx1ZSk6IFBhcnNlIHNjcm9sbC1iZWhhdmlvciAob25seSBpZiBlbmFibGVkKS4K
KyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjp1c2VTbW9vdGhTY3JvbGxpbmcpOiBIZWxwZXIgZnVuY2l0b24gdG8gZGV0ZXJtaW5lIHRo
ZSBzY3JvbGwgYmVoYXZpb3IgdG8gYXBwbHkgdG8gYW4gZWxlbWVudCBmcm9tIHRoZSBDU1MgYW5k
IERPTSBiZWhhdmlvci4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmg6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOiBNYWtlIHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBT
Y3JvbGxPcHRpb24uIEFsc28gcmVtb3ZlIHVubmVjZXNzYXJ5IGZvcndhcmQgZGVjbGFyYXRpb24u
CisgICAgICAgICogcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xh
c3MgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb24uCisgICAgICAgICogcGFnZS9TY3JvbGxPcHRp
b25zLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmg6IE1ha2UgdGhpcyBzdHJ1Y3QgaW5oZXJp
dHMgZnJvbSBTY3JvbGxPcHRpb25zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVG9PcHRpb25z
OjpTY3JvbGxUb09wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6bm9ybWFsaXplTm9uRmluaXRl
Q29vcmRpbmF0ZXNPckZhbGxCYWNrVG8pOiBDb3B5IHRoZSBjdXJyZW50IFNjcm9sbFRvT3B0aW9u
cyBzbyB0aGF0IHRoZSBzY3JvbGwgYmVoYXZpb3IgaXMgcHJlc2VydmVkLgorICAgICAgICAqIHBh
Z2UvU2Nyb2xsVG9PcHRpb25zLmlkbDogTWFrZSB0aGlzIGNsYXNzIGluaGVyaXQgZnJvbSBTY3Jv
bGxPcHRpb25zLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDogTmV3IHNldHRpbmcgZm9y
IENTU09NIFZpZXcgc21vb3RoIHNjcm9sbGluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaDogSGFuZGxlICdzbW9vdGggc2Nyb2xsaW5nJyBib29sZWFuIGRhdGEuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dXNlU21vb3RoU2Nyb2xsaW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRVc2VTbW9vdGhTY3JvbGxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpj
b252ZXJ0U21vb3RoU2Nyb2xsaW5nKToKKwogMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRo
aWVjaGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4ZWQgUGF0dGVybi5oIGNvbXBpbGUgZXJy
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDBiZmFiZWNhNDMuLmU5NzE0Yzg1
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTE1LDggKzkxNSwxMCBAQCBK
U19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2Fs
bGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvUmVzaXplT2JzZXJ2ZXJFbnRyeS5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JlZW4uaWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2Uv
U2Nyb2xsQmVoYXZpb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5p
ZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TaGFy
ZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvVW5kb0l0ZW0uaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IGVlODllZTNmMGMuLjJmMTc3MjYwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtODE2LDggKzgxNiwxMCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgcGFnZS9SZW1vdGVGcmFtZS5oCiAgICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVs
ZXIuaAogICAgIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisgICAgcGFnZS9TY3JvbGxC
ZWhhdmlvci5oCiAgICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaAogICAgIHBhZ2UvU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmgKKyAgICBwYWdlL1Njcm9sbE9wdGlvbnMuaAogICAgIHBhZ2Uv
U2Nyb2xsVG9PcHRpb25zLmgKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luLmgKICAgICBwYWdlL1Nl
Y3VyaXR5T3JpZ2luRGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGJjYTczY2Y5ZTcuLjNlNjgwNDRm
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNjQ3LDYgKzE2NDcsNyBAQCBwYWdlL1Jlc291cmNlVXNh
Z2VPdmVybGF5LmNwcAogcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAogcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAogcGFnZS9TY3JlZW4uY3BwCitwYWdlL1Njcm9sbEJlaGF2aW9y
LmNwcAogcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNw
cAogcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKQEAgLTE3NTIsNiArMTc1Myw3IEBAIHBsYXRmb3Jt
L1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5jcHAKIHBsYXRmb3JtL1NTTEtleUdlbmVyYXRvci5jcHAKIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmNwcAorcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAKIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Ny
b2xsYmFyLmNwcApAQCAtMzM3Niw4ICszMzc4LDEwIEBAIEpTU1ZHWm9vbUFuZFBhbi5jcHAKIEpT
U1ZHWm9vbUV2ZW50LmNwcAogSlNTY3JlZW4uY3BwCiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
CitKU1Njcm9sbEJlaGF2aW9yLmNwcAogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwCiBKU1Nj
cm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAKK0pTU2Nyb2xsT3B0aW9ucy5jcHAKIEpTU2Nyb2xsVG9P
cHRpb25zLmNwcAogSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNwcAogSlNTZXJ2aWNl
V29ya2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRleCBjMmMyNzA5Yjg3Li41NGI1MzZlZDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzR1RLLnR4dApAQCAtNjMsNyArNjMsNiBAQCBwYWdlL3Njcm9sbGluZy9u
aWNvc2lhL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLmNwcAogcGFnZS9zY3JvbGxpbmcvZ2VuZXJp
Yy9TY3JvbGxpbmdUaHJlYWRHZW5lcmljLmNwcAogCiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25L
aW5ldGljLmNwcAotcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0v
VXNlckFnZW50UXVpcmtzLmNwcAogCiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2Vu
ZXJpYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAwM2U2ZjU0MzNiLi5iYzk5NzA2ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzk3LDYgKzIzOTcs
OCBAQAogCQk4MzQwN0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0MDdG
QzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVF
MDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhENCAvKiBK
U1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVF
QzEgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9s
bEludG9WaWV3T3B0aW9ucy5oICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyog
SlNTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNFOUIzMDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAq
LzsgfTsKKwkJODM0NDc2RUYxREE1QkM1RTAwMkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1
QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVC
QzVFMDAyQjZFRDIgLyogSlNTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Nj
cm9sbFRvT3B0aW9ucy5oICovOyB9OwogCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYgLyogQ2xh
c3NDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzQ4QkZBQTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggKi87IH07
CiAJCTgzNERGQUQwMUY3REFFNUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRERkFDQzFGN0RBRTU2
MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNDUxLDYgKzI0NTMsOCBAQAogCQk4M0M0NUI4RTFE
QzJCNjhBMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZh
bGlkYXRpb25CdWJibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUw
QzNFNzFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMw
MTAwNkY5Qzk3IC8qIFNjcm9sbEludG9WaWV3T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNj
cm9sbEludG9WaWV3T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMz
RTcxREE1OUI2MjAwMzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3
IC8qIFNjcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQx
REE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNj
cm9sbFRvT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTgzRDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICov
OyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmgg
Ki87IH07CkBAIC0xMDE2Nyw5ICsxMDE3MSwxNCBAQAogCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcy
NUIgLyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTaGFyZWRTdHJpbmdIYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8q
IFNjcm9sbEludG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY3JvbGxJbnRvVmlld09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQzNCAvKiBTY3JvbGxCZWhhdmlvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xs
T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYy
MDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcm9sbFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzUwQzNFODFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50
b1ZpZXdPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxJbnRvVmlld09w
dGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNj
cm9sbEJlaGF2aW9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTgx
REE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNjcm9sbE9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUw
QzNFODFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTY3JvbGxUb09wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzUyMEM3RDFBNzFCRkNDMDA2QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NGb250RmFtaWx5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNTY1N0M2MUVDQUIwRTgwMENERTcyRCAvKiBKU0RPTU1hdHJpeElu
aXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXRyaXhJ
bml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjkxLDkgKzEwMzAwLDEz
IEBACiAJCTgzRTk1OUUxMUI4QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1
QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxCZWhhdmlvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxPcHRpb25z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZF
OEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTU2Nyb2xsVG9PcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZG
RDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThFNSAvKiBK
U1Njcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3Jv
bGxPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1
MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1Njcm9sbFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4M0VFNTk4QjFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTk4QzFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JD
YWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDc2OCwxMCArMjA3
ODEsMTUgQEAKIAkJCQlCQ0VDMDFCQTBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmNwcCAqLywK
IAkJCQlCQ0VDMDFCQjBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmggKi8sCiAJCQkJQkNFQzAx
QkMwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2
MjAwMzU2NDM0IC8qIFNjcm9sbEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYy
MDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAz
NTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaWRsICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1
NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCAqLywKIAkJCQk4MzUwQzNFNzFE
QTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCiAJCQkJODM1MEMz
RTgxREE1OUI2MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgKi8sCisJCQkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAqLywKKwkJCQk4MzUw
QzNFODFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwgKi8sCiAJCQkJODM1MEMz
RTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5oICovLAogCQkJCTgzNTBDM0U4
MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMuaWRsICovLAogCQkJCUJDRDBFMEY3
MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgKi8sCkBAIC0yNTU2MywxMCAr
MjU1ODEsMTQgQEAKIAkJCQk1OEIyRkEwMjIyMzJENjBBMDA5MzhENjMgLyogSlNSZXNpemVPYnNl
cnZlckVudHJ5LmggKi8sCiAJCQkJQkNFQzAxQzAwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVu
LmNwcCAqLywKIAkJCQlCQ0VDMDFDMTBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCAqLywK
KwkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAgKi8s
CisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLywK
IAkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkQ4RTUgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMu
Y3BwICovLAogCQkJCTgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3
T3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExv
Z2ljYWxQb3NpdGlvbi5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpT
U2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCisJCQkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5jcHAgKi8sCisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThGNiAv
KiBKU1Njcm9sbFRvT3B0aW9ucy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2
IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi8sCiAJCQkJN0M3M0ZCMEYxOTFFRjZGNDAwN0RFMDYx
IC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLywKQEAgLTMwOTEyLDggKzMwOTM0LDEwIEBA
CiAJCQkJNUUyQzQzNkMxQkNGMDcxRTAwMDFFMkJDIC8qIEpTUlRDVHJhY2tFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNFQzAxQzMwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVDRTEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9j
ZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAg
LyogSlNTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYxREE1QkM1
RTAwMkI1RUMxIC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVDMSAvKiBKU1Njcm9sbE9w
dGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBK
U1Njcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VEMDZBRDExQzc3NzU0ODAw
RkRGQUYxIC8qIEpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE4MkMyNTYxRjMxNDNDRDAwNTlCQTdDIC8qIEpTU2VydmljZVdvcmtlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMjExNyw2ICszMjE0MSw3IEBACiAJCQkJNDRDOTkxODYwRjNEMUVCRTAw
NTg2NjcwIC8qIFNjcm9sbGJhclRoZW1lSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCODUz
RTBFN0M3RjExMDBBQjY5ODQgLyogU2Nyb2xsYmFyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTcxNDA2MTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suaCBpbiBI
ZWFkZXJzICovLAorCQkJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBODRGMDUxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9s
bENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjA1QUVEMTVGOTQ4NDgwMDRERjBD
MCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNjJFRTgx
NERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTMyMTUzLDYgKzMyMTc4LDcgQEAKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyog
U2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUFGRThEMDE5Q0I4
NjcyMDAwRjU2RDggLyogU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODNDNTc5NUQxREE1QzMwMTAwNkY5Qzg2IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUY0Nzg3NTU0MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ2NzI5MjgxRTBERTY4NTAw
QUNDM0Q4IC8qIFNjcm9sbFNuYXBPZmZzZXRzSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
NTc5NUQxREE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwCmluZGV4IDFjNGUzNmYxNDkuLmQ0YWJmMjNiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMzkzLDYgKzMzOTMs
MTAgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclBy
b3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwogICAgICAgICAg
ICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVUb3Vj
aCk7CiAjZW5kaWYKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2aW9yOgorICAg
ICAgICAgICAgaWYgKCFzdHlsZS51c2VTbW9vdGhTY3JvbGxpbmcoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8p
OworICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVTbW9vdGgpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGVyc3BlY3RpdmU6CiAg
ICAgICAgICAgICBpZiAoIXN0eWxlLmhhc1BlcnNwZWN0aXZlKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IDQxNTc4YTk0ZWQuLmY5ODJk
M2Y1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzU1Nyw2ICsz
NTU3LDE2IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIv
U1ZHL3NoYXBlcy5odG1sIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Ny
b2xsLWJlaGF2aW9yIjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAg
ICAiYXV0byIsCisgICAgICAgICAgICAgICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
Y3Nzb20tdmlldyIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9
CisgICAgICAgIH0sCiAgICAgICAgICJzaGFwZS1yZW5kZXJpbmciOiB7CiAgICAgICAgICAgICAi
aW5oZXJpdGVkIjogdHJ1ZSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCkBAIC02NDg5LDYgKzY0
OTksMjIgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9j
c3MtdWktNC8jcHJvcGRlZi11c2VyLXNlbGVjdCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwK
KyAgICAgICAgInNjcm9sbC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisg
ICAgICAgICAgICAgICAgImF1dG8iLAorICAgICAgICAgICAgICAgICJzbW9vdGgiCisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAg
ICAgICAiY29udmVydGVyIjogIlNtb290aFNjcm9sbGluZyIsCisgICAgICAgICAgICAgICAgIm5h
bWUtZm9yLW1ldGhvZHMiOiAiVXNlU21vb3RoU2Nyb2xsaW5nIgorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJleHBlcmlt
ZW50YWwiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7Cisg
ICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAg
ICAgICAgICJzY3JvbGwtcGFkZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRp
ZXMiOiB7CiAgICAgICAgICAgICAgICAgImVuYWJsZS1pZiI6ICJFTkFCTEVfQ1NTX1NDUk9MTF9T
TkFQIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggOGRmZTNhYmIy
MS4uZGE4MjY5ZTYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAg
LTEzODgsNiArMTM4OCwxMCBAQCBwYW4teQogcGluY2gtem9vbQogI2VuZGlmCiAKKy8vIHNjcm9s
bC1iZWhhdmlvcgorLy8gYXV0bworc21vb3RoCisKIC8vIGhhbmdpbmctcHVuY3R1YXRpb24KIGFs
bG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNv
bnRleHQuY3BwCmluZGV4IDc1MzcxODhjYjkuLjcxZjlhYTYyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcApAQCAtNzUsNiArNzUsNyBAQCBD
U1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgVVJMJiBzaGVldEJhcwogICAgIGF0dGFjaG1lbnRFbmFibGVkID0gUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQo
KTsKICNlbmRpZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRp
bmdzKCkuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CisgICAgc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
KCk7CiAgICAgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IGRvY3VtZW50LnBhZ2UoKSA/IGRvY3VtZW50
LnBhZ2UoKS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpIDogZmFsc2U7CiB9CiAKQEAgLTk5LDYgKzEw
MCw3IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBD
U1NQYXJzZXJDb250ZXh0JiBiKQogICAgICAgICAmJiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIu
YXR0YWNobWVudEVuYWJsZWQKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2Vy
RW5hYmxlZCA9PSBiLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAorICAgICAgICAmJiBhLnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCA9PSBiLnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBh
Lmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
CiAgICAgICAgICYmIGEudXNlU3lzdGVtQXBwZWFyYW5jZSA9PSBiLnVzZVN5c3RlbUFwcGVhcmFu
Y2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmlu
ZGV4IDg2NTI1ZmQ3MGMuLmM3NGRjOTRjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBib29s
IGF0dGFjaG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRD
U1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0
IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4g
eyBmYWxzZSB9OwpAQCAtMTE2LDcgKzExNyw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFz
aCB7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAgICAgICYga2V5LmF0
dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYKLSAg
ICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDEyCisgICAgICAgICAgICAmIGtleS5t
b2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0
aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJpdHMpOwogICAgICAgICBy
ZXR1cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckZhc3RQYXRocy5jcHAKaW5kZXggMzFkMTJhYjlhYi4uNDIxMjg4OWVkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtNjM2
LDEwICs2MzYsNiBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9w
ZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZAogICAgICAgICAgICAgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVN0aWNreSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0U3RpY2t5
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6IC8vIG5vbmUgfCBib3RoIHwgaG9yaXpvbnRh
bCB8IHZlcnRpY2FsIHwgYXV0bwogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5v
bmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJvdGggfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUhvcml6
b250YWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVZlcnRpY2FsIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvOwotICAgIC8vIEZJWE1FLU5FV1BBUlNFUjogSW52ZXN0aWdhdGUgdGhpcyBwcm9wZXJ0
eS4KLSAgICAvLyBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsQmVoYXZpb3I6IC8vIGF1dG8gfCBzbW9v
dGgKLSAgICAvLyAgICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmNzc29tU21vb3Ro
U2Nyb2xsRW5hYmxlZCgpKTsKLSAgICAvLyAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0
byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU21vb3RoOwogICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFw
ZVJlbmRlcmluZzoKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDcmlz
cGVkZ2VzIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVHZW9tZXRyaWNQcmVjaXNpb247CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVqb2luOgpAQCAtOTM5LDcgKzkzNSw2IEBAIGJvb2wgQ1NT
UGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJZCkKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5Rm9udEtlcm5pbmc6CiAgICAgLy8gY2FzZSBD
U1NQcm9wZXJ0eUh5cGhlbnM6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93QW5jaG9y
OgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKICAgICAvLyBjYXNlIENT
U1Byb3BlcnR5U2Nyb2xsU25hcFR5cGU6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGln
bkxhc3Q6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRDb21iaW5lVXByaWdodDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggZWJk
MGVhZjVmNi4uNjNmNWFiNTJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTIzMjcsNiArMjMyNywxNCBAQCBzdGF0aWMgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlKQogCiAjZW5kaWYKIAorc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29u
c3VtZVNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1
dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5pZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENTU1Zh
bHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlU21vb3RoKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3RhdGljIFJlZlB0
cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChyYW5n
ZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTM5MjcsNiArMzkz
NSwxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZh
bHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3Jv
bGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxTbmFwVHlwZShtX3Jhbmdl
KTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKKyAgICAgICAg
aWYgKCFtX2NvbnRleHQuc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVybiBjb25zdW1lQ2xpcCht
X3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDcwZDllMWIwYWUuLmJlNWE4NTI2YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTgzMiw3ICs4MzIsNiBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9W
aWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgog
ICAgIGJvb2wgaW5zaWRlRml4ZWQ7CiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJvdW5kcyA9IHJl
bmRlcmVyKCktPmFic29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwogCi0gICAgLy8gRklY
TUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCiAgICAgU2Ny
b2xsSW50b1ZpZXdPcHRpb25zIG9wdGlvbnM7CiAgICAgaWYgKGFyZykgewogICAgICAgICBhdXRv
IHZhbHVlID0gYXJnLnZhbHVlKCk7CkBAIC04NTEsNyArODUwLDggQEAgdm9pZCBFbGVtZW50Ojpz
Y3JvbGxJbnRvVmlldyhPcHRpb25hbDxWYXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9u
cz4+JiYgYXIKICAgICAgICAgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLAogICAgICAgICBp
c0hvcml6b250YWwgPyBhbGlnblggOiBhbGlnblksCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFs
aWduWSA6IGFsaWduWCwKLSAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6
Tm8KKyAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8sCisgICAgICAg
IG9wdGlvbnMuYmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0bykKICAgICB9Owog
ICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYWJzb2x1dGVCb3VuZHMsIGluc2lk
ZUZpeGVkLCB2aXNpYmxlT3B0aW9ucyk7CiB9CkBAIC05MTIsNyArOTEyLDcgQEAgdm9pZCBFbGVt
ZW50OjpzY3JvbGxCeShjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMpCiAKIHZvaWQgRWxl
bWVudDo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIHNjcm9sbEJ5KHsgeCwg
eSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMoeCwgeSkpOwogfQogCiB2b2lkIEVs
ZW1lbnQ6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpCkBAIC05NDgsMTMgKzk0OCwxNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9s
bFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBp
bmcpCiAgICAgICAgIGFkanVzdEZvckFic29sdXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsTGVmdCgp
LCAqcmVuZGVyZXIpLAogICAgICAgICBhZGp1c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVyZXItPnNj
cm9sbFRvcCgpLCAqcmVuZGVyZXIpCiAgICAgKTsKLSAgICByZW5kZXJlci0+c2V0U2Nyb2xsTGVm
dChjbGFtcFRvSW50ZWdlcihzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXIt
PnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFt
cGluZyk7Ci0gICAgcmVuZGVyZXItPnNldFNjcm9sbFRvcChjbGFtcFRvSW50ZWdlcihzY3JvbGxU
b09wdGlvbnMudG9wLnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKKyAgICBJbnRQb2ludCBzY3Jv
bGxQb3NpdGlvbigKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLmxlZnQu
dmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksCisgICAgICAgIGNs
YW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSkKKyAgICApOworICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9v
dGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZp
b3I6OkF1dG8pLCAqdGhpcyk7CisgICAgcmVuZGVyZXItPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkLCBjbGFtcGluZyk7
CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAg
IHNjcm9sbFRvKHsgeCwgeSB9KTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSkp
OwogfQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5VW5pdHMoaW50IHVuaXRzLCBTY3JvbGxHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKQEAgLTEyODgsMTMgKzEyOTIsMTkgQEAgdm9pZCBFbGVtZW50
OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0KQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxp
bmdFbGVtZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVu
dEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRT
Y3JvbGxQb3NpdGlvbihJbnRQb2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmll
dygpLT5zY3JvbGxZKCkpKTsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFt
ZVdpdGhOb25OdWxsVmlldygpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVz
ZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAvLyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQorICAgICAgICAgICAg
Ym9vbCBhbmltYXRlZCA9IGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3Ro
U2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1l
bnQoKSk7CisgICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQ
b2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAq
IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmlldygpLT5zY3JvbGxZKCkpLCBh
bmltYXRlZCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChh
dXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKSB7Ci0gICAgICAgIHJlbmRlcmVyLT5zZXRTY3Jv
bGxMZWZ0KHN0YXRpY19jYXN0PGludD4obmV3TGVmdCAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVj
dGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyk7CisgICAgICAgIGludCBjbGFt
cGVkTGVmdCA9IGNsYW1wVG9JbnRlZ2VyKG5ld0xlZnQgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZl
Y3RpdmVab29tKCkpOworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5n
KFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3Jv
bGxMZWZ0KGNsYW1wZWRMZWZ0LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkKTsK
ICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVyKCkpCiAg
ICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3Rh
dGUodHJ1ZSk7CiAgICAgfQpAQCAtMTMwNSwxMyArMTMxNSwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNl
dFNjcm9sbFRvcChpbnQgbmV3VG9wKQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVt
ZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1l
V2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQ
b3NpdGlvbihJbnRQb2ludChmcmFtZS0+dmlldygpLT5zY3JvbGxYKCksIHN0YXRpY19jYXN0PGlu
dD4obmV3VG9wICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZh
Y3RvcigpKSkpOworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5v
bk51bGxWaWV3KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3Vt
ZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICBib29sIGFu
aW1hdGVkID0gZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxp
bmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICpkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsK
KyAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZy
YW1lLT52aWV3KCktPnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKSwgYW5pbWF0ZWQp
OworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoYXV0byogcmVu
ZGVyZXIgPSByZW5kZXJCb3goKSkgewotICAgICAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKHN0
YXRpY19jYXN0PGludD4obmV3VG9wICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgp
KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKKyAgICAgICAgaW50IGNsYW1wZWRUb3AgPSBj
bGFtcFRvSW50ZWdlcihuZXdUb3AgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
OworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2
aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3AoY2xhbXBl
ZFRvcCwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7CiAgICAgICAgIGlmIChh
dXRvKiBzY3JvbGxhYmxlQXJlYSA9IHJlbmRlcmVyLT5sYXllcigpKQogICAgICAgICAgICAgc2Ny
b2xsYWJsZUFyZWEtPnNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKHRydWUpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAwNTY4YjA2OWRjLi4yOGI0NjVmMGRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNTk1LDcgKzE1OTUsNyBAQCBkb3Vi
bGUgRE9NV2luZG93OjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIAogdm9pZCBET01XaW5kb3c6
OnNjcm9sbEJ5KGRvdWJsZSB4LCBkb3VibGUgeSkgY29uc3QKIHsKLSAgICBzY3JvbGxCeSh7IHgs
IHkgfSk7CisgICAgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKHgsIHkpKTsKIH0KIAogdm9pZCBE
T01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QK
QEAgLTE2MTcsMTAgKzE2MTcsMTAgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNj
cm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QKIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbFRv
KGRvdWJsZSB4LCBkb3VibGUgeSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpIGNvbnN0CiB7Ci0g
ICAgc2Nyb2xsVG8oeyB4LCB5IH0sIGNsYW1waW5nKTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09w
dGlvbnMoeCwgeSksIGNsYW1waW5nKTsKIH0KIAotdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNv
bnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0Cit2b2lk
IERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3Jv
bGxDbGFtcGluZyBjbGFtcGluZykgY29uc3QKIHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxh
eWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNjMzLDEyICsxNjMzLDIyIEBAIHZv
aWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMsIFNj
cm9sbENsYW1waW5nKSBjb25zdAogICAgICAgICB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9u
KCkueCgpLCB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkueSgpCiAgICAgKTsKIAotICAg
IGlmICghc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Nyb2xsVG9PcHRpb25zLnRv
cC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKSA9PSBJbnRQb2ludCgw
LCAwKSkKKyAgICAvLyBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiBmb3IgdGhlIGNvbW1vbiBjYXNl
IG9mIHNjcm9sbGluZyB0byAoMCwgMCkgd2hlbiB0aGUgc2Nyb2xsZXIgaXMgYWxyZWFkeSBhdCB0
aGUgb3JpZ2luLgorICAgIC8vIElmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcywg
dGhpcyBvcHRpbWl6YXRpb24gaXMgc2tpcHBlZCB0byBlbnN1cmUgdGhhdCB0aGUgYW5pbWF0ZWQg
c2Nyb2xsIGlzIHJlYWxseSBzdG9wcGVkLgorICAgIGlmICh2aWV3LT5jdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYg
IXNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkgJiYgIXNjcm9sbFRvT3B0aW9ucy50b3AudmFs
dWUoKSAmJiB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkgPT0gSW50UG9pbnQoMCwgMCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgSW50UG9pbnQgbGF5b3V0UG9zKHZpZXctPm1hcEZy
b21DU1NUb0xheW91dFVuaXRzKHNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkpLCB2aWV3LT5t
YXBGcm9tQ1NTVG9MYXlvdXRVbml0cyhzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkpKTsKKwor
ICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQo
KT8KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTA1OQorICAgIGlmIChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhT
Y3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6
OkF1dG8pLCAqZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkpKSB7CisgICAgICAgIHZpZXct
PnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihsYXlvdXRQb3MsIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYywgY2xhbXBpbmcpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgdmlldy0+
c2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihsYXlvdXRQb3MpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggMDQwMTJmOWVmZi4uNzMxZTMyMjk5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMjI3OSw3ICsyMjc5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9s
bEVsZW1lbnRUb1JlY3QoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKICAgICBzZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChib3VuZHMueCgpIC0gY2VudGVyaW5n
T2Zmc2V0WCAtIHJlY3QueCgpLCBib3VuZHMueSgpIC0gY2VudGVyaW5nT2Zmc2V0WSAtIHJlY3Qu
eSgpKSk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sIGFuaW1hdGVk
KQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRnJhbWVWaWV3
OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uIDw8ICIgLCBjbGVhcmluZyBh
bmNob3IiKTsKIApAQCAtMjI5Miw3ICsyMjkyLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAgICAgUGFn
ZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwogICAgIGlmIChwYWdlICYmIHBhZ2UtPmlzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKCkpCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVu
dFRlc3RNb25pdG9yKHBhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKLSAgICBTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgaWYgKGFuaW1hdGVk
KQorICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBv
c2l0aW9uKHNjcm9sbFBvc2l0aW9uKSwgY3VycmVudFNjcm9sbFR5cGUoKSk7CisgICAgZWxzZQor
ICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CiAK
ICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShvbGRTY3JvbGxUeXBlKTsKIH0KQEAgLTM2NjAsNiAr
MzY2MywyNiBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24m
IG5ld1Bvc2l0aW9uKQogICAgIGRpZENoYW5nZVNjcm9sbE9mZnNldCgpOwogfQogCit2b2lkIEZy
YW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYg
b2Zmc2V0LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQoreworICAgIGF1
dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAg
c2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygp
ID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAg
c2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CisgICAgaWYgKG9mZnNldCAhPSB0
aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zm
c2V0V2l0aEFuaW1hdGlvbihvZmZzZXQpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZp
b3VzU2Nyb2xsVHlwZSk7Cit9CisKIGZsb2F0IEZyYW1lVmlldzo6YWRqdXN0U2Nyb2xsU3RlcEZv
ckZpeGVkQ29udGVudChmbG9hdCBzdGVwLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKGdyYW51bGFyaXR5
ICE9IFNjcm9sbEJ5UGFnZSB8fCBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggZTM2Zjk5NjgwNC4uYjM3ZjA2MGUzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0yMjMsNyArMjIzLDcgQEAgcHVibGljOgogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpeGVkVmlz
aWJsZUNvbnRlbnRSZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICNlbmRpZgotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBm
aW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNj
cm9sbFBvc2l0aW9uJiwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIHJl
c3RvcmVTY3JvbGxiYXIoKTsKICAgICB2b2lkIHNjaGVkdWxlU2Nyb2xsVG9Gb2N1c2VkRWxlbWVu
dChTZWxlY3Rpb25SZXZlYWxNb2RlKTsKICAgICB2b2lkIHNjcm9sbFRvRm9jdXNlZEVsZW1lbnRJ
bW1lZGlhdGVseUlmTmVlZGVkKCk7CkBAIC02NTksNiArNjU5LDggQEAgcHVibGljOgogCiAgICAg
dm9pZCByZW5kZXJMYXllckRpZFNjcm9sbChjb25zdCBSZW5kZXJMYXllciYpOwogCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xs
T2Zmc2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xh
bXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisKIHByb3RlY3RlZDoKICAgICBib29s
IHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwog
ICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNGVkMjljYjQyYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEJlaGF2aW9yLmgiCisKKyNpbmNsdWRlICJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29s
IHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvciBiZWhhdmlvciwgRWxlbWVudCYgYXNz
b2NpYXRlZEVsZW1lbnQpCit7CisgICAgaWYgKCFhc3NvY2lhdGVkRWxlbWVudC5kb2N1bWVudCgp
LnNldHRpbmdzKCkuQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCgpIHx8ICFhc3NvY2lh
dGVkRWxlbWVudC5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nCisgICAgc3dpdGNo
IChiZWhhdmlvcikgeworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OkF1dG86CisgICAgICAgIHJl
dHVybiBhc3NvY2lhdGVkRWxlbWVudC5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZVNtb290aFNjcm9s
bGluZygpOworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQ6CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBjYXNlIFNjcm9sbEJlaGF2aW9yOjpTbW9vdGg6CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVo
YXZpb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xYmFlZjg4MWU4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5o
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxl
bWVudDsKKworZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIEF1dG8g
PSAwLAorICAgIEluc3RhbnQsCisgICAgU21vb3RoCit9OworCitib29sIHVzZVNtb290aFNjcm9s
bGluZyhTY3JvbGxCZWhhdmlvciwgRWxlbWVudCYgYXNzb2NpYXRlZEVsZW1lbnQpOworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9s
bEJlaGF2aW9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjg5NzFhZTkzN2EKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmlkbApAQCAtMCww
ICsxLDI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K2VudW0gU2Nyb2xsQmVoYXZpb3IgeyAiYXV0byIsICJpbnN0YW50IiwgInNtb290aCIgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oCmluZGV4IDkzOWNkNzM0
MjUuLmYyNzVmMmZiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50
b1ZpZXdPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09w
dGlvbnMuaApAQCAtMjAsMTIgKzIwLDExIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNj
cm9sbExvZ2ljYWxQb3NpdGlvbi5oIgorI2luY2x1ZGUgIlNjcm9sbE9wdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBFbGVtZW50OwotCi1zdHJ1Y3QgU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zIHsKK3N0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnMgOiBTY3JvbGxPcHRpb25z
IHsKICAgICBPcHRpb25hbDxTY3JvbGxMb2dpY2FsUG9zaXRpb24+IGJsb2NrUG9zaXRpb24geyBT
Y3JvbGxMb2dpY2FsUG9zaXRpb246OlN0YXJ0IH07CiAgICAgT3B0aW9uYWw8U2Nyb2xsTG9naWNh
bFBvc2l0aW9uPiBpbmxpbmVQb3NpdGlvbiB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6TmVhcmVz
dCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlk
bAppbmRleCBjZjlkMWZkNzY3Li4xYjI0YzY4NmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsCkBAIC0xNyw4ICsxNyw3IEBACiAgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQz
KTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRp
b25zIHsKK2RpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7
CiAgICAgW0ltcGxlbWVudGVkQXM9YmxvY2tQb3NpdGlvbl0gU2Nyb2xsTG9naWNhbFBvc2l0aW9u
IGJsb2NrID0gInN0YXJ0IjsKICAgICBbSW1wbGVtZW50ZWRBcz1pbmxpbmVQb3NpdGlvbl0gU2Ny
b2xsTG9naWNhbFBvc2l0aW9uIGlubGluZSA9ICJuZWFyZXN0IjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2Nyb2xsT3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmUx
ODY3YzYwMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9w
dGlvbnMuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU2Nyb2xsT3B0aW9ucyB7CisgICAg
T3B0aW9uYWw8U2Nyb2xsQmVoYXZpb3I+IGJlaGF2aW9yIHsgU2Nyb2xsQmVoYXZpb3I6OkF1dG8g
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9w
dGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMyOWQ2ZmYx
MDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMu
aWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworZGljdGlvbmFyeSBTY3JvbGxPcHRpb25zIHsKKyAgICBTY3JvbGxCZWhhdmlv
ciBiZWhhdmlvciA9ICJhdXRvIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Njcm9sbFRvT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMu
aAppbmRleCBjZTFjYmExYzdjLi5mNTc3NGQ0NGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xs
VG9PcHRpb25zLmgKQEAgLTI4LDE0ICsyOCwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIlNjcm9sbE9wdGlvbnMuaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgU2Nyb2xsVG9PcHRpb25z
IHsKK3N0cnVjdCBTY3JvbGxUb09wdGlvbnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBPcHRpb25h
bDxkb3VibGU+IGxlZnQ7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiB0b3A7CisKKyAgICBTY3JvbGxU
b09wdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAgU2Nyb2xsVG9PcHRpb25zKGRvdWJsZSB4LCBkb3Vi
bGUgeSkKKyAgICAgICAgOiBsZWZ0KHgpCisgICAgICAgICwgdG9wKHkpCisgICAgeyB9CiB9Owog
CiBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlv
bmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZSBmYWxsYmFja1ZhbHVlKQpAQCAtNDcsNyArNTQsNyBA
QCBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlv
bmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZQogLy8gRklYTUUoaHR0cHM6Ly93ZWJraXQub3JnL2Iv
ODgzMzkpOiBDb25zaWRlciB1c2luZyBGbG9hdFBvaW50IG9yIERvdWJsZVBvaW50IGZvciBmYWxs
YmFjayBhbmQgcmV0dXJuIHZhbHVlcy4KIGlubGluZSBTY3JvbGxUb09wdGlvbnMgbm9ybWFsaXpl
Tm9uRmluaXRlQ29vcmRpbmF0ZXNPckZhbGxCYWNrVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiB2
YWx1ZSwgZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25z
OworICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zID0gdmFsdWU7CiAgICAgb3B0aW9ucy5sZWZ0
ID0gbm9ybWFsaXplTm9uRmluaXRlVmFsdWVPckZhbGxCYWNrVG8odmFsdWUubGVmdCwgeCk7CiAg
ICAgb3B0aW9ucy50b3AgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tUbyh2YWx1
ZS50b3AsIHkpOwogICAgIHJldHVybiBvcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxU
b09wdGlvbnMuaWRsCmluZGV4IDUxMGJjMDcxYTYuLjJiOWI1NTQxMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKQEAgLTI2LDggKzI2LDcgQEAKICAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotLy8gRklYTUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVo
YXZpb3IuCi1kaWN0aW9uYXJ5IFNjcm9sbFRvT3B0aW9ucyB7CitkaWN0aW9uYXJ5IFNjcm9sbFRv
T3B0aW9ucyA6IFNjcm9sbE9wdGlvbnMgewogICAgIHVucmVzdHJpY3RlZCBkb3VibGUgbGVmdDsK
ICAgICB1bnJlc3RyaWN0ZWQgZG91YmxlIHRvcDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlh
bWwKaW5kZXggYjMyOWYxMjQ3OS4uMWQ3OWY0NTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbApAQCAtNjIyLDYgKzYyMiw5IEBAIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6
CiBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCitDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBpbnB1dEV2
ZW50c0VuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRl
eCA0MjllZWU5YTk2Li4wMmQ1ODk3NTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4
LDcgKzI0OCwxNiBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tG
b3J3YXJkQ2FjaGUgPSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRD
YWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29s
IGluUHJvZ3JhbW1hdGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUo
KSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Ny
b2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRp
b24gPSBpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisKKyAgICBi
b29sIGFuaW1hdGVkID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhbmlt
YXRlZCA9IHNjcm9sbGFibGVBcmVhLmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSA9PSBTY3Jv
bGxCZWhhdmlvclR5cGU6OlNtb290aDsKKyAgICAvLyBUaGUgc2Nyb2xsIHBvc2l0aW9uIG9mIGFu
aW1hdGVkIHNjcm9sbGluZyB3aWxsIGJlIHNldCBieSB0aGUgVUkgcHJvY2Vzcy4gU28gc2hvdWxk
bid0IHNldCBpdCBub3cuCisgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSAhYW5pbWF0ZWQgJiYg
dXBkYXRlU2Nyb2xsUG9zaXRpb247CisjZW5kaWYKKyAgICBpZiAodXBkYXRlU2Nyb2xsUG9zaXRp
b24pCiAgICAgICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3JvbGxp
bmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCB7IH0sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIAogICAgIC8vIElmIHRoaXMgZnJh
bWUgdmlldydzIGRvY3VtZW50IGlzIGJlaW5nIHB1dCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUsIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIG91cgpAQCAtMjYwLDcgKzI2OSwxMiBAQCBib29s
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShT
Y3JvbGxhYmxlQXJlYSYgc2NybwogICAgIGlmICghc3RhdGVOb2RlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBhdXRvIHN0YXR1cyA9IGFuaW1hdGVkID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Oklu
TmF0aXZlQW5pbWF0aW9uIDogU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOwor
ICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKHN0YXR1cyk7CisjZW5k
aWYKKworICAgIHN0YXRlTm9kZS0+c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9z
aXRpb24sIGluUHJvZ3JhbW1hdGljU2Nyb2xsLCBhbmltYXRlZCk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTI5MSw2ICszMDUsMzIgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBt
X3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29s
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGZy
YW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZy
YW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXct
PnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhT
Y3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9s
bGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQobm9k
ZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAg
ICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhh
dmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5ub2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBk
YXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9y
dE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRl
TGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4u
M2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3lu
Y1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25h
bDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhT
Y3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWxJbmRleCwgdW5zaWduZWQgdmVydGlj
YWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3MTdiZmMyYTU1Li40ZTQw
MTRlOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29u
c3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
V2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0
aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2Rl
LmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0yMTksMTAgKzIyMiwxNSBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0
IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFt
cyk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwg
Ym9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlvbikKIHsKICAgICBtX3JlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgbV9yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gPSByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0ocmVxdWVzdGVkV2l0aEFuaW1hdGlvbik7CisjZW5kaWYKICAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQogCkBAIC0z
MTQsNiArMzIyLDExIEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJv
cGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUCiAgICAgaWYgKG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogICAgICAgICB0
cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gcmVwcmVzZW50cyBwcm9n
cmFtbWF0aWMgc2Nyb2xsIiwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisgICAgICAgIHRzLmR1bXBQcm9w
ZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB3aXRoIGFuaW1hdGlvbiIsIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3Bh
cmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICB0cy5kdW1wUHJv
cGVydHkoInBhcmVudCByZWxhdGl2ZSBzY3JvbGxhYmxlIHJlY3QiLCBtX3BhcmVudFJlbGF0aXZl
U2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDQ5NjdhNmNlODEu
LjZjNjkyYzFkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xMTEsNyArMTExLDEwIEBA
IHB1YmxpYzoKIAogICAgIGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsgfQogICAgIGJvb2wg
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgY29u
c3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGw7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHJlcXVlc3RlZFdpdGhBbmltYXRpb24pOwogCiAg
ICAgYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faXNNb25p
dG9yaW5nV2hlZWxFdmVudHM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKGJvb2wpOwpAQCAtMTcxLDYgKzE3NCw5IEBAIHByaXZhdGU6CiAgICAg
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogCiAg
ICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCB7IGZhbHNlIH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgogICAg
IGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggMTUxYWMyOWY4
YS4uN2FkZGZlZjRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaApAQCAtODIsOCArODIsMTMgQEAgcHVibGljOgogICAgIC8vIFVwZGF0ZXMgRnJh
bWVWaWV3L1JlbmRlckxheWVyIHNjcm9sbGluZyBzdGF0ZSBhbmQgR3JhcGhpY3NMYXllcnMuCiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlJiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb246OlN5bmMpID0gMDsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgLy8gQ2FsbGVkIGZvciBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cyB1cGRhdGVzLgorICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgLyppc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MqLykgeyB9CisjZW5kaWYKKwogICAgIC8vIENhbGxlZCBmb3IgcmVxdWVz
dGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzLgotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
LypzY3JvbGxQb3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCov
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChT
Y3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9zaXRpb24qLywgYm9v
bCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLywgYm9vbCAvKndpdGhBbmltYXRpb24q
LyA9IGZhbHNlKSB7IH0KIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxpbmcvem9vbWluZyBoYXMg
Y2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2aWV3cG9ydC1jb25zdHJh
aW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5GcmFtZVZpZXdwb3J0Q2hh
bmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwgZG91YmxlIHNjYWxl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYxLi4xN2M3ZjJhOGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3LDEyIEBAIHZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Ny
b2xsaW5nU3RhdGVOCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCiB7CiAg
ICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3JvbGxpbmdTdGF0ZU5vZGUg
PSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CisgICAg
Ym9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICB3aXRoQW5pbWF0aW9uID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uV2l0aEFuaW1hdGlvbigpOworI2VuZGlmCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbikpCi0gICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyAgICAgICAgc2Nyb2xs
aW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlE
KCksIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxp
bmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsKCksIHdpdGhBbmltYXRpb24pOwogCiAgICAgbV9pc0ZpcnN0Q29tbWl0ID0gZmFsc2U7
CiB9CkBAIC0xNTcsMjEgKzE2MSw0MSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBTY3JvbGxQb3NpdGlvbgogICAgIHNj
cm9sbFRvKGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpICsgZGVsdGEsIFNjcm9sbFR5cGU6OlVzZXIs
IGNsYW1wKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8o
Y29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
UG9zaXRpb25DbGFtcCBjbGFtcCkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNj
cm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUs
IFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXAsIGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbikK
IHsKLSAgICBpZiAocG9zaXRpb24gPT0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24pCisgICAgaWYg
KHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSB7CisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAgICAgLy8gU2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIg
cHJvY2Vzcy4KKyAgICAgICAgaWYgKHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpICYmIG5lZWRTeW5j
U2Nyb2xsUG9zaXRpb24pCisgICAgICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwoKnRoaXMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMp
OworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uoc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAg
ICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGZhbHNlKTsKKyNlbHNlCisgICAgICAgIFVOVVNF
RF9QQVJBTShuZWVkU3luY1Njcm9sbFBvc2l0aW9uKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47
CisgICAgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBJZiBkdXJpbmcgYSBz
Y3JvbGwgYW5pbWF0aW9uLCBuZWVkIHRvIHN0b3AgaXQgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9u
ZS4KKyAgICBpZiAoc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpKQorICAgICAgICBzZXROZWVk
c1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKHRydWUpOworI2VuZGlmCiAgICAgc2Nyb2xsaW5n
VHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Nyb2xsVHlwZSA9PSBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMpOwotICAgIAorCiAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRp
b24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7Ci0gICAgCisKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBzY3JvbGxUbyAiIDw8IHBvc2l0
aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFzdCBjb21taXR0ZWQgcG9zaXRpb24gIiA8PCAobV9sYXN0
Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gLSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgPDwgIiki
KTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CiAgICAg
Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNl
dElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOworCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGZhbHNlKTsK
KyAgICBzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoZmFsc2UpOworI2VuZGlmCiB9CiAKIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQo
KQpAQCAtMTc5LDYgKzIwMywxMCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpj
dXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKICAgICByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5
ZXJzKCk7CiAgICAgcmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKTsKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgaWYgKCFyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSkKKyAgICAgICAgcmV0
dXJuOworI2VuZGlmCiAgICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlmeVJlbGF0ZWROb2Rlc0FmdGVy
U2Nyb2xsUG9zaXRpb25DaGFuZ2UoKnRoaXMpOwogICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcyk7CiB9CkBAIC0yNjYsNiArMjk0LDM3IEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRz
LCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAgdHMuZHVtcFByb3BlcnR5KCJzY3JvbGxhYmxlIGFyZWEg
cGFyYW1ldGVycyIsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKTsKIH0KIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1
ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCBhbmltYXRlZCkKK3sKKyAgICBtX3JlcXVlc3RBbmltYXRl
ZFNjcm9sbCA9IGFuaW1hdGVkOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3RB
bmltYXRlZFNjcm9sbDsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sIGluUHJvZ3Jlc3MpCit7CisgICAgbV9zY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzID0gaW5Qcm9ncmVzczsKK30KKworYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzczsKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihi
b29sIHN0b3ApCit7CisgICAgbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uID0gc3Rv
cDsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbjsKK30KKyNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4
IDRjYmY0ZDFhZjAuLmY5ZjMxMGRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNjAsNyAr
NjAsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gLSBtX2xhc3RDb21taXR0
ZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8gVGhlc2UgYXJlIGltcGVyYXRpdmU7IHRoZXkg
YWRqdXN0IHRoZSBzY3JvbGxpbmcgbGF5ZXJzLgotICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxv
YXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlvbkNs
YW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOworICAgIHZvaWQgc2Ny
b2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBT
Y3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMs
IGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiA9IGZhbHNlKTsKICAgICB2b2lkIHNjcm9sbEJ5
KGNvbnN0IEZsb2F0U2l6ZSYsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNs
YW1wOjpUb0NvbnRlbnRFZGdlcyk7CiAKICAgICB2b2lkIHdhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRT
Y3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UmVjdD4g
b3ZlcnJpZGVMYXlvdXRWaWV3cG9ydCA9IHsgfSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpOwpAQCAtOTEsNiArOTEsMTUg
QEAgcHVibGljOgogICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbENvbnRhaW5l
ckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxDb250YWluZXJMYXllcjsgfQogICAgIGNv
bnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbGVkQ29udGVudHNMYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIHZvaWQgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wpOworICAgIGJvb2wg
cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKGJvb2wpOworICAgIGJvb2wgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygp
IGNvbnN0OworICAgIHZvaWQgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29s
KTsKKyAgICBib29sIG5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUoU2Nyb2xs
aW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCkBAIC0xNDgs
NiArMTU3LDEyIEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogICAgIGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9
OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVxdWVzdEFuaW1hdGVk
U2Nyb2xsIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB7
IGZhbHNlIH07CisgICAgYm9vbCBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24geyBm
YWxzZSB9OworI2VuZGlmCisKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsQ29udGFp
bmVyTGF5ZXI7CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbGVkQ29udGVudHNMYXll
cjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCmluZGV4IGI3
YzFkMjRlYjQuLjUyM2E3N2YzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdGlvbi5oCkBAIC0zMiwxMiArMzIsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGbG9hdFBvaW50OwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CitlbnVtIGNsYXNzIFNjcm9sbENs
YW1waW5nIDogdWludDhfdDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0aW9uIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TY3JvbGxBbmltYXRpb24o
KSB7IH07CiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHksIGZsb2F0IC8qIHN0ZXAgKi8sIGZsb2F0IC8qIG11bHRpcGxpZXIgKi8p
IHsgcmV0dXJuIHRydWU7IH07CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBGbG9hdFBv
aW50JikgeyB9OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVu
dFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAppbmRleCBkMDY0ZTY5Mzc5Li4yY2E1
NzhhMzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b25TbW9vdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlv
blNtb290aC5jcHAKQEAgLTI4LDggKzI4LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJTY3JvbGxBbmltYXRpb25TbW9vdGguaCIKIAotI2lmIEVOQUJMRShTTU9PVEhfU0NST0xM
SU5HKQotCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVh
LmgiCiAKQEAgLTM4LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0
IGRvdWJsZSBmcmFtZVJhdGUgPSA2MDsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIHRpY2tUaW1lID0g
MV9zIC8gZnJhbWVSYXRlOwogc3RhdGljIGNvbnN0IFNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2
YWwgeyAxX21zIH07CitzdGF0aWMgY29uc3QgZG91YmxlIHNtb290aEZhY3RvckZvclByb2dyYW1t
YXRpY1Njcm9sbCA9IDU7CiAKIFNjcm9sbEFuaW1hdGlvblNtb290aDo6U2Nyb2xsQW5pbWF0aW9u
U21vb3RoKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgRmxvYXRQb2ludCYg
cG9zaXRpb24sIFdURjo6RnVuY3Rpb248dm9pZCAoRmxvYXRQb2ludCYmKT4mJiBub3RpZnlQb3Np
dGlvbkNoYW5nZWRGdW5jdGlvbikKICAgICA6IFNjcm9sbEFuaW1hdGlvbihzY3JvbGxhYmxlQXJl
YSkKQEAgLTY3LDkgKzY2LDIyIEBAIGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51CiAgICAgcmV0dXJu
IG5lZWRUb1Njcm9sbDsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNjcm9sbChj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3sKKyAgICBTY3JvbGxHcmFudWxhcml0eSBncmFu
dWxhcml0eSA9IFNjcm9sbEJ5UGFnZTsKKyAgICBib29sIG5lZWRUb1Njcm9sbCA9IHVwZGF0ZVBl
ckF4aXNEYXRhKG1faG9yaXpvbnRhbERhdGEsIGdyYW51bGFyaXR5LCBwb3NpdGlvbi54KCkgLSBt
X2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVt
U2Nyb2xsUG9zaXRpb24oKS54KCksIG1fc2Nyb2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0
aW9uKCkueCgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG5lZWRU
b1Njcm9sbCB8PQorICAgICAgICB1cGRhdGVQZXJBeGlzRGF0YShtX3ZlcnRpY2FsRGF0YSwgZ3Jh
bnVsYXJpdHksIHBvc2l0aW9uLnkoKSAtIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwg
bV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKS55KCksIG1fc2Nyb2xsYWJs
ZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueSgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFt
bWF0aWNTY3JvbGwpOworICAgIGlmIChuZWVkVG9TY3JvbGwgJiYgIWFuaW1hdGlvblRpbWVyQWN0
aXZlKCkpIHsKKyAgICAgICAgbV9zdGFydFRpbWUgPSBtX2hvcml6b250YWxEYXRhLnN0YXJ0VGlt
ZTsKKyAgICAgICAgYW5pbWF0aW9uVGltZXJGaXJlZCgpOworICAgIH0KK307CisKIHZvaWQgU2Ny
b2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKCkKIHsKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3Ao
KTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0aW9u
U21vb3RoOjp1cGRhdGVWaXNpYmxlTGVuZ3RocygpCkBAIC0yNDcsNyArMjU5LDcgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGdldEFuaW1hdGlvblBhcmFtZXRlcnNGb3JHcmFudWxhcml0eShTY3JvbGxH
cmFudWxhcml0eSBncmFudWwKICAgICB9CiB9CiAKLWJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
Ojp1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0YSYgZGF0YSwgU2Nyb2xsR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3JvbGxQb3NpdGlvbiwgZmxvYXQg
bWF4U2Nyb2xsUG9zaXRpb24pCitib29sIFNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlUGVy
QXhpc0RhdGEoUGVyQXhpc0RhdGEmIGRhdGEsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBv
c2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yKQogewogICAgIGlmICghZGF0YS5zdGFydFRpbWUg
fHwgIWRlbHRhIHx8IChkZWx0YSA8IDApICE9IChkYXRhLmRlc2lyZWRQb3NpdGlvbiAtIGRhdGEu
Y3VycmVudFBvc2l0aW9uIDwgMCkpIHsKICAgICAgICAgZGF0YS5kZXNpcmVkUG9zaXRpb24gPSBk
YXRhLmN1cnJlbnRQb3NpdGlvbjsKQEAgLTI2NCw2ICsyNzYsMTIgQEAgYm9vbCBTY3JvbGxBbmlt
YXRpb25TbW9vdGg6OnVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiBkYXRhLCBTY3JvbGxH
cmFudWxhcmkKICAgICBDdXJ2ZSBjb2FzdFRpbWVDdXJ2ZTsKICAgICBnZXRBbmltYXRpb25QYXJh
bWV0ZXJzRm9yR3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHksIGFuaW1hdGlvblRpbWUsIHJlcGVhdE1p
bmltdW1TdXN0YWluVGltZSwgYXR0YWNrVGltZSwgcmVsZWFzZVRpbWUsIGNvYXN0VGltZUN1cnZl
LCBtYXhpbXVtQ29hc3RUaW1lKTsKIAorICAgIGFuaW1hdGlvblRpbWUgKj0gc21vb3RoRmFjdG9y
OworICAgIHJlcGVhdE1pbmltdW1TdXN0YWluVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgYXR0
YWNrVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgcmVsZWFzZVRpbWUgKj0gc21vb3RoRmFjdG9y
OworICAgIG1heGltdW1Db2FzdFRpbWUgKj0gc21vb3RoRmFjdG9yOworCiAgICAgZGF0YS5kZXNp
cmVkUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsKICAgICBpZiAoIWRhdGEuc3RhcnRUaW1lKQogICAg
ICAgICBkYXRhLmF0dGFja1RpbWUgPSBhdHRhY2tUaW1lOwpAQCAtMzkyLDYgKzQxMCw4IEBAIHZv
aWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckZpcmVkKCkKIAogICAgIGlm
IChjb250aW51ZUFuaW1hdGlvbikKICAgICAgICAgc3RhcnROZXh0VGltZXIoc3RkOjptYXgobWlu
aW11bVRpbWVySW50ZXJ2YWwsIGRlbHRhVG9OZXh0RnJhbWUpKTsKKyAgICBlbHNlCisgICAgICAg
IG1fc2Nyb2xsYWJsZUFyZWEuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIAogICAgIG1fbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVu
Y3Rpb24oRmxvYXRQb2ludChtX2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV92ZXJ0
aWNhbERhdGEuY3VycmVudFBvc2l0aW9uKSk7CiB9CkBAIC00MDcsNSArNDI3LDMgQEAgYm9vbCBT
Y3JvbGxBbmltYXRpb25TbW9vdGg6OmFuaW1hdGlvblRpbWVyQWN0aXZlKCkgY29uc3QKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5o
CmluZGV4IDAyY2M0ZWUyYmQuLjgxNzNmYTdlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCkBAIC0yNywxNCArMjcsMTMgQEAKIAogI2lu
Y2x1ZGUgIlNjcm9sbEFuaW1hdGlvbi5oIgogCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
Ci0KICNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZs
b2F0UG9pbnQ7CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKK2VudW0gY2xhc3MgU2Nyb2xsQ2xhbXBp
bmcgOiB1aW50OF90OwogCiBjbGFzcyBTY3JvbGxBbmltYXRpb25TbW9vdGggZmluYWw6IHB1Ymxp
YyBTY3JvbGxBbmltYXRpb24gewogcHVibGljOgpAQCAtNTEsNiArNTAsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdy
YW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNjcm9sbChjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKQEAg
LTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaW50IHZpc2libGVMZW5ndGggeyAwIH07
CiAgICAgfTsKIAotICAgIGJvb2wgdXBkYXRlUGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmLCBTY3Jv
bGxHcmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9h
dCBtYXhTY3JvbGxQb3NpdGlvbik7CisgICAgYm9vbCB1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlz
RGF0YSYsIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9z
aXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yID0gMSk7
CiAgICAgYm9vbCBhbmltYXRlU2Nyb2xsKFBlckF4aXNEYXRhJiwgTW9ub3RvbmljVGltZSBjdXJy
ZW50VGltZSk7CiAKICAgICB2b2lkIHJlcXVlc3RBbmltYXRpb25UaW1lckZpcmVkKCk7CkBAIC0x
MDgsNCArMTA4LDMgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5jcHAKaW5kZXggYTYxMTg2ODM3ZC4uNGQ1OThjNzVhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAK
QEAgLTUyLDYgKzUzLDE4IEBAIFNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcihTY3JvbGxh
YmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgICwgbV9zY3JvbGxDb250cm9sbGVyKCp0aGlzKQog
I2VuZGlmCisgICAgLCBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbChtYWtlVW5pcXVlPFNj
cm9sbEFuaW1hdGlvblNtb290aD4oc2Nyb2xsYWJsZUFyZWEsIG1fY3VycmVudFBvc2l0aW9uLCBb
dGhpc10oRmxvYXRQb2ludCYmIHBvc2l0aW9uKSB7CisgICAgICAgIGF1dG8gcHJldmlvdXNTY3Jv
bGxUeXBlID0gbV9zY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsVHlwZSgpOworICAgICAgICBt
X3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKFNjcm9sbFR5cGU6OlByb2dyYW1t
YXRpYyk7CisgICAgICAgIGJvb2wgdXBkYXRlZCA9IG1fc2Nyb2xsYWJsZUFyZWEucmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpOworICAgICAgICBt
X3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7
CisgICAgICAgIGlmICh1cGRhdGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEZs
b2F0U2l6ZSBkZWx0YSA9IHBvc2l0aW9uIC0gbV9jdXJyZW50UG9zaXRpb247CisgICAgICAgIG1f
Y3VycmVudFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7CisgICAgICAgIG5vdGlmeVBvc2l0
aW9uQ2hhbmdlZChkZWx0YSk7CisgICAgfSkpCiB7CiB9CiAKQEAgLTc1LDYgKzg4LDE0IEBAIGJv
b2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHksCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCkKK3sKKyAg
ICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3Vy
cmVudFBvc2l0aW9uKTsKKyAgICBhdXRvIG5ld1Bvc2l0aW9uID0gU2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQsIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJsZUFy
ZWEuc2Nyb2xsT3JpZ2luKCkpKTsKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+
c2Nyb2xsKG5ld1Bvc2l0aW9uKTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbik7Cit9
CisKIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQogewogICAgIEZsb2F0UG9p
bnQgbmV3UG9zaXRvbiA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQo
b2Zmc2V0LCB0b0Zsb2F0U2l6ZShtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CkBA
IC0yNDUsNCArMjY2LDMzIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnJlbW92ZVdoZWVsRXZlbnRU
ZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdoZWVsRXZlbnRUCiB9CiAjZW5kaWYKIAor
dm9pZCBTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucygpCit7CisjaWYgIVVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Nj
cm9sbC0+c3RvcCgpOworI2VuZGlmCit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VT
Y3JvbGxBbmltYXRpb25zKCkKK3sKKyNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJ
TUVSKQorICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT5zZXJ2aWNlQW5pbWF0aW9u
KCk7CisjZW5kaWYKK30KKwordm9pZCBTY3JvbGxBbmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUo
KQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVu
Z3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJh
cihTY3JvbGxiYXIqKQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRh
dGVWaXNpYmxlTGVuZ3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jp
em9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopCit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0
aWNTY3JvbGwtPnVwZGF0ZVZpc2libGVMZW5ndGhzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IGE1YzY5
YzUzYjcuLjliN2MwOWI2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0
UG9pbnQ7CiBjbGFzcyBQbGF0Zm9ybVRvdWNoRXZlbnQ7CitjbGFzcyBTY3JvbGxBbmltYXRpb247
CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKIGNsYXNzIFNjcm9sbGJhcjsKIGNsYXNzIFdoZWVsRXZl
bnRUZXN0TW9uaXRvcjsKQEAgLTY4LDYgKzY5LDcgQEAgcHVibGljOgogICAgIC8vIFRoZSBiYXNl
IGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0ZWx5LCBuZXZlciBh
bmltYXRlcy4KICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBT
Y3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAKKyAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxD
bGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAogICAgIFNjcm9sbGFibGVBcmVh
JiBzY3JvbGxhYmxlQXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWE7IH0KQEAg
LTg1LDggKzg3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmKTsKICAgICBjb25zdCBGbG9hdFBvaW50JiBjdXJyZW50UG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2N1cnJlbnRQb3NpdGlvbjsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNh
bmNlbEFuaW1hdGlvbnMoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1h
dGlvbnMoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsQW5pbWF0aW9ucygpOworICAgIHZp
cnR1YWwgdm9pZCBzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpOwogCiAgICAgdmlydHVhbCB2b2lk
IGNvbnRlbnRBcmVhV2lsbFBhaW50KCkgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNl
RW50ZXJlZENvbnRlbnRBcmVhKCkgeyB9CkBAIC05NywxNiArOTksMTYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBtb3VzZUlzRG93bkluU2Nyb2xsYmFyKFNjcm9sbGJhciosIGJvb2wpIGNv
bnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRMaXZlUmVzaXplKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGNvbnRlbnRzUmVzaXplZCgpIGNvbnN0IHsgfQotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJl
c2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50QXJlYURpZFNob3coKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgY29udGVudEFyZWFEaWRIaWRlKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
bG9ja092ZXJsYXlTY3JvbGxiYXJTdGF0ZVRvSGlkZGVuKGJvb2wpIHsgfQogICAgIHZpcnR1YWwg
Ym9vbCBzY3JvbGxiYXJzQ2FuQmVBY3RpdmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAg
IHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikg
eyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFy
Kik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9s
bGJhciopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJQYXJ0TGF5
ZXJzKFNjcm9sbGJhciopIHsgfQpAQCAtMTUxLDYgKzE1Myw4IEBAIHByb3RlY3RlZDoKICAgICBT
Y3JvbGxDb250cm9sbGVyIG1fc2Nyb2xsQ29udHJvbGxlcjsKICNlbmRpZgogICAgIEZsb2F0UG9p
bnQgbV9jdXJyZW50UG9zaXRpb247CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQW5pbWF0
aW9uPiBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDg5MTE0OTEw
M2QuLmY2ZDM1NjY1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAt
NTQsNiArNTQsMjEgQEAgZW51bSBjbGFzcyBTY3JvbGxQb3NpdGlvbkNsYW1wIDogdWludDhfdCB7
CiAgICAgVG9Db250ZW50RWRnZXMsCiB9OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKK2VudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JUeXBlIDog
dWludDhfdCB7CisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgsCit9OworI2VuZGlmCisKK2VudW0g
Y2xhc3MgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgOiB1aW50OF90IHsKKyAgICBOb3RJbkFuaW1hdGlv
biwKKyAgICBJbk5vbk5hdGl2ZUFuaW1hdGlvbiwKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEluTmF0aXZlQW5pbWF0aW9uLAorI2VuZGlm
Cit9OworCiBpbmxpbmUgU2Nyb2xsRGlyZWN0aW9uIGxvZ2ljYWxUb1BoeXNpY2FsKFNjcm9sbExv
Z2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGlzVmVydGljYWwsIGJvb2wgaXNGbGlwcGVk
KQogewogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCmluZGV4IGIxMjZhOWMyYjcuLjFkMmMzMmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00NjEsMTAgKzQ2MSwxNCBAQCB2b2lkIFNjcm9sbFZp
ZXc6OmNvbXBsZXRlVXBkYXRlc0FmdGVyU2Nyb2xsVG8oY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpCiAgICAgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpOwogfQogCi12
b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBz
Y3JvbGxQb3NpdGlvbikKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sLyogYW5pbWF0ZWQqLykKIHsKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNj
cm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlm
IChwcm9oaWJpdHNTY3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00NzUsMTMgKzQ3
OSwxNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKIAogICAgIFNjcm9sbFBvc2l0aW9uIG5ld1Njcm9sbFBv
c2l0aW9uID0gIWRlbGVnYXRlc1Njcm9sbGluZygpID8gYWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRo
aW5SYW5nZShzY3JvbGxQb3NpdGlvbikgOiBzY3JvbGxQb3NpdGlvbjsKIAotICAgIGlmICgoIWRl
bGVnYXRlc1Njcm9sbGluZygpIHx8IGN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6
VXNlcikgJiYgbmV3U2Nyb2xsUG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKKyAg
ICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNj
cm9sbFR5cGU6OlVzZXIpICYmIGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9s
bEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiAmJiBuZXdTY3JvbGxQb3NpdGlvbiA9PSB0
aGlzLT5zY3JvbGxQb3NpdGlvbigpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoY3VycmVu
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0
aXZlQW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMo
KTsKKwogICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUobmV3U2Nyb2xsUG9zaXRp
b24pKQogICAgICAgICByZXR1cm47CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBv
c2l0aW9uKTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1
czo6Tm90SW5BbmltYXRpb24pOwogfQogCiBib29sIFNjcm9sbFZpZXc6OnNjcm9sbChTY3JvbGxE
aXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTUz
OCw3ICs1NDYsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Ny
b2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICAKICAgICBpZiAoIW1hbmFnZXNTY3Jv
bGxiYXJzKCkpIHsKICAgICAgICAgaWYgKHNjcm9sbE9yaWdpbkNoYW5nZWQoKSkgewotICAgICAg
ICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3Jv
bGxPZmZzZXRGcm9tUG9zaXRpb24oZGVzaXJlZFBvc2l0aW9uKSk7CisgICAgICAgICAgICBpZiAo
IXJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShkZXNpcmVkUG9zaXRpb24pKQorICAgICAgICAg
ICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oc2Ny
b2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOwogICAgICAgICAgICAgcmVz
ZXRTY3JvbGxPcmlnaW5DaGFuZ2VkKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDQzMDE2MGQ2YWUuLjUzOTgxMDgzOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTI2MCw3ICsyNjAsNyBAQCBw
dWJsaWM6CiAgICAgU2Nyb2xsUG9zaXRpb24gY2FjaGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX2NhY2hlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBGdW5jdGlvbnMgZm9y
IHNjcm9sbGluZyB0aGUgdmlldy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24o
Y29uc3QgU2Nyb2xsUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRp
b24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2UpOwogICAgIHZv
aWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYgcykgeyByZXR1cm4gc2V0U2Nyb2xsUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb24oKSArIHMpOyB9CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNjcm9sbHMg
YnkgbGluZXMsIHBhZ2VzIG9yIHBpeGVscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcAppbmRleCA5NmQwZjMwMGIzLi4xNTA3MDRjMmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC03MSw2ICs3MSw5IEBAIFNjcm9s
bGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSgpCiAgICAgLCBtX3Njcm9sbE9yaWdpbkNoYW5nZWQo
ZmFsc2UpCiAgICAgLCBtX2N1cnJlbnRTY3JvbGxUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihT
Y3JvbGxUeXBlOjpVc2VyKSkKICAgICAsIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUo
ZmFsc2UpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykKKyAgICAsIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KSkKKyNlbmRpZgogewogfQogCkBAIC0xNDIs
NiArMTQ1LDEyIEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhCiAgICAgcmV0dXJuIHNjcm9sbEFu
aW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGll
cik7CiB9CiAKK3ZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQoreworICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlz
IDw8ICIgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKKyAgICBzY3Jv
bGxBbmltYXRvcigpLnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7Cit9CisKIHZvaWQgU2Nyb2xsYWJs
ZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBv
ZmZzZXQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Nyb2xs
VG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKQEAgLTIyMSwxNiArMjMwLDE1
IEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1U
b3VjaEV2ZW50JiB0b3VjaEV2ZW50KQogLy8gTk9URTogT25seSBjYWxsZWQgZnJvbSBJbnRlcm5h
bHMgZm9yIHRlc3RpbmcuCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9t
SW50ZXJuYWxzKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogeworICAgIGlmIChyZXF1ZXN0
U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKQor
ICAgICAgICByZXR1cm47CisKICAgICBzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9uKG9mZnNl
dCk7CiB9CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRp
b24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQpCiB7Ci0gICAgU2Nyb2xsUG9zaXRpb24gcG9z
aXRpb24gPSBzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KTsKLSAgICBpZiAocmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9uKTsKKyAgICBzY3JvbGxQb3NpdGlvbkNoYW5n
ZWQoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpOwogfQogCiB2b2lkIFNjcm9sbGFi
bGVBcmVhOjp3aWxsU3RhcnRMaXZlUmVzaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCmluZGV4IGQ3NDM4YzE1Y2QuLjU1NjcyZjgxZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNjIsNyArNjIsMTEgQEAgaW5saW5lIGlu
dCBvZmZzZXRGb3JPcmllbnRhdGlvbihTY3JvbGxPZmZzZXQgb2Zmc2V0LCBTY3JvbGxiYXJPcmll
bnRhdGlvbiBvcmllbnQKIAogY2xhc3MgU2Nyb2xsYWJsZUFyZWEgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U2Nyb2xsYWJsZUFyZWE+IHsKIHB1YmxpYzoKKyAgICBTY3JvbGxCZWhhdmlvclN0YXR1
cyBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSB7IHJldHVybiBtX2N1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1czsgfQorICAgIHZvaWQgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xs
QmVoYXZpb3JTdGF0dXMgc3RhdHVzKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzID0g
c3RhdHVzOyB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rp
b24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2lu
dCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwg
ZmxvYXQgb2Zmc2V0KTsKIApAQCAtMjQyLDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xs
VHlwZSBjdXJyZW50U2Nyb2xsVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9s
bFR5cGU+KG1fY3VycmVudFNjcm9sbFR5cGUpOyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xs
VHlwZShTY3JvbGxUeXBlIHNjcm9sbFR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihzY3JvbGxUeXBlKTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3Vy
cmVudFNjcm9sbEJlaGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9s
bEJlaGF2aW9yVHlwZT4obV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQg
c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVo
YXZpb3JUeXBlKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihzY3JvbGxCZWhhdmlvclR5cGUpOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xs
U2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENs
ZWFyTGF0Y2hlZFN0YXRlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRT
dGF0ZShib29sIHNob3VsZENsZWFyKSB7IG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUg
PSBzaG91bGRDbGVhcjsgfQogCkBAIC0zNzgsNiArMzg3LDggQEAgcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX2N1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4IHsgMCB9OwogI2VuZGlmCiAKKyAg
ICBTY3JvbGxCZWhhdmlvclN0YXR1cyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyB7IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiB9OworCiAgICAgLy8gVGhlcmUgYXJl
IDggcG9zc2libGUgY29tYmluYXRpb25zIG9mIHdyaXRpbmcgbW9kZSBhbmQgZGlyZWN0aW9uLiBT
Y3JvbGwgb3JpZ2luIHdpbGwgYmUgbm9uLXplcm8gaW4gdGhlIHggb3IgeSBheGlzCiAgICAgLy8g
aWYgdGhlcmUgaXMgYW55IHJldmVyc2VkIGRpcmVjdGlvbiBvciB3cml0aW5nLW1vZGUuIFRoZSBj
b21iaW5hdGlvbnMgYXJlOgogICAgIC8vIHdyaXRpbmctbW9kZSAvIGRpcmVjdGlvbiAgICAgc2Ny
b2xsT3JpZ2luLngoKSBzZXQgICAgc2Nyb2xsT3JpZ2luLnkoKSBzZXQKQEAgLTQwMyw2ICs0MTQs
OSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZCA6IDE7CiAg
ICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9sbFR5cGUKICAgICB1
bnNpZ25lZCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHVuc2lnbmVkIG1f
Y3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMv
U2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVy
aWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcAppbmRleCAyMDhhZjdiODQ3Li5hZDMzMmMzMjgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1h
dG9yR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3Jv
bGxBbmltYXRvckdlbmVyaWMuY3BwCkBAIC0xNjIsNiArMTYyLDggQEAgdm9pZCBTY3JvbGxBbmlt
YXRvckdlbmVyaWM6OndpbGxFbmRMaXZlUmVzaXplKCkKIAogdm9pZCBTY3JvbGxBbmltYXRvckdl
bmVyaWM6OnVwZGF0ZVBvc2l0aW9uKEZsb2F0UG9pbnQmJiBwb3NpdGlvbikKIHsKKyAgICBpZiAo
bV9zY3JvbGxhYmxlQXJlYS5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocm91bmRlZEludFBv
aW50KHBvc2l0aW9uKSkpCisgICAgICAgIHJldHVybjsKICAgICBGbG9hdFNpemUgZGVsdGEgPSBw
b3NpdGlvbiAtIG1fY3VycmVudFBvc2l0aW9uOwogICAgIG1fY3VycmVudFBvc2l0aW9uID0gV1RG
TW92ZShwb3NpdGlvbik7CiAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGRlbHRhKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBm
NTkxNzY3MmVlLi42Mzc1M2FkMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC0xMTU1LDYgKzExNTUsNyBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpub3RpZnlDb250ZW50QXJlYVNjcm9sbGVkKGNvbnN0IEZsb2F0U2l6ZSYg
ZGVsdGEpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNhbmNlbEFuaW1hdGlvbnMoKQogewor
ICAgIFNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKCk7CiAgICAgbV9oYXZlU2Nyb2xs
ZWRTaW5jZVBhZ2VMb2FkID0gZmFsc2U7CiAKICAgICBpZiAoc2Nyb2xsYmFyUGFpbnRUaW1lcklz
QWN0aXZlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuaAppbmRleCA3YzFkYzAzZjliLi41MWJj
MGVkNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmgKQEAgLTI1LDkgKzI1LDEzIEBACiAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQXVkaW9EYXRhLmgiCisjaW5jbHVkZSAiUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFT
b2Z0TGluay5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWN1cnNp
dmVMb2NrQWRhcHRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGY4ZDNhNDkyNWEuLjZkMWY4NTdj
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC01ODEsMjAgKzU4
MSwyOCBAQCBzdGF0aWMgdm9pZCBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKFJlbmRlckxheWVyJiBs
YXllcikKICAgICBsYXllci5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRv
cihwYWdlLndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNl
dFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVm
dCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBj
bGFtcGluZykKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAg
ICAgICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAg
bGF5ZXIoKS0+c2Nyb2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcp
OworICAgIGxheWVyKCktPnNjcm9sbFRvWFBvc2l0aW9uKG5ld0xlZnQsIHNjcm9sbFR5cGUsIGFu
aW1hdGVkLCBjbGFtcGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3AoaW50
IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykK
K3ZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3Jv
bGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBp
ZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAgICAgICByZXR1cm47CiAgICAg
c2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Nyb2xsVG9Z
UG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgbGF5ZXIoKS0+c2Ny
b2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwor
fQorCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRp
b24mIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9s
bENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkgfHwgIWxh
eWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKCpsYXll
cigpKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBl
LCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCiB2b2lkIFJlbmRlckJveDo6YWJzb2x1dGVSZWN0
cyhWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRP
ZmZzZXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggNDk1NDgx
NDA1NC4uMjIxOTI4MDU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAt
MjQ3LDggKzI0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBzY3JvbGxUb3AoKSBjb25z
dDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50
IHNjcm9sbEhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0KGlu
dCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7
Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENs
YW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRT
Y3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3JvbGxD
bGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3JvbGxD
bGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2b2lkIHNldFNjcm9sbFBv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9
IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAogICAg
IExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9tYXJnaW5C
b3gudG9wKCk7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fbWFyZ2luQm94LmJvdHRvbSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAppbmRleCBkODRhZDFhMWRhLi42MTNhNmFmYTM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI1NzUsMTYgKzI1NzUsMjQgQEAg
dm9pZCBSZW5kZXJMYXllcjo6YXBwbHlQb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb25JZk5lZWRlZCgp
CiAgICAgbV9wb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb24gPSBXVEY6Om51bGxvcHQ7CiB9CiAKLXZv
aWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlIHNjcm9s
bFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xs
VG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwg
U2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgU2Nyb2xsUG9zaXRpb24gcG9zaXRpb24o
eCwgbV9zY3JvbGxQb3NpdGlvbi55KCkpOwotICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNl
dEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICBzY3Jv
bGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwog
fQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlw
ZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVyTGF5ZXI6
OnNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5p
bWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIFNjcm9sbFBvc2l0aW9uIHBv
c2l0aW9uKG1fc2Nyb2xsUG9zaXRpb24ueCgpLCB5KTsKLSAgICBzY3JvbGxUb09mZnNldChzY3Jv
bGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7Cisg
ICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1w
aW5nKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRl
ZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgaWYgKGFuaW1hdGVkKQorICAgICAg
ICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBv
c2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIGVsc2UKKyAgICAgICAgc2Nyb2xs
VG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwg
Y2xhbXBpbmcpOwogfQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zm
c2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjU5NCwyMiAr
MjYwMiw2OCBAQCBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNv
bnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjbwogCiB2b2lkIFJlbmRlckxheWVyOjpz
Y3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Nyb2xsVHlw
ZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3Jv
bGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRpZgorCisg
ICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5j
ZWxBbmltYXRpb25zKCk7CisKICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9
IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQo
c2Nyb2xsT2Zmc2V0KSA6IHNjcm9sbE9mZnNldDsKLSAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNl
dCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9
PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgICAgIC8vIElmIFVJU2Nyb2xsVmlldyBpcyBwZXJm
b3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHNjcm9sbCBvZmZzZXQgb2YgdGhlIFdlYiBw
cm9jZXNzIG1pZ2h0IGJlIG92ZXJyaWRkZW4uCisgICAgICAgIC8vIFNvIHdlIG5lZWQgdG8gY2Fs
bCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUgaGVyZSBhbmQgbGV0IGl0IGJlIGNoZWNrZWQg
b24gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIC8vIElmIHRoZSBzY3JvbGwgb2Zmc2V0IG9uIHRo
ZSBVSSBwcm9jZXNzIGlzIGRpZmZlcmVudCwgdGhlIGNvcnJlY3Qgc2Nyb2xsIG9mZnNldCBuZWVk
cyB0byBzeW5jIGJhY2sgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAoY3VycmVudFNj
cm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5p
bWF0aW9uKQorICAgICAgICAgICAgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBv
c2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAg
cmV0dXJuOworICAgIH0KIAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNj
cm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKIAogICAg
IGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAg
aWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5z
Y3JvbGxpbmdDb29yZGluYXRvcigpKQotICAgICAgICBoYW5kbGVkID0gc2Nyb2xsaW5nQ29vcmRp
bmF0b3ItPnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgc2Nyb2xsUG9zaXRpb25G
cm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpKTsKKyAgICBoYW5kbGVkID0gcmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xs
T2Zmc2V0KSk7CiAjZW5kaWYKIAotICAgIGlmICghaGFuZGxlZCkKKyAgICBpZiAoIWhhbmRsZWQp
IHsKICAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNsYW1wZWRTY3JvbGxP
ZmZzZXQsIGNsYW1waW5nKTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xs
QmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBzZXRDdXJyZW50
U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworfQorCitib29sIFJlbmRlckxheWVyOjpy
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9u
KQoreworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgaWYgKFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5zY3JvbGxpbmdDb29yZGluYXRv
cigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlcXVlc3RTY3JvbGxQ
b3NpdGlvblVwZGF0ZSgqdGhpcywgcG9zaXRpb24pOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNl
OworfQogCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29u
c3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50
U2Nyb2xsVHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOworCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBz
ZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsK
KyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9m
ZnNldChvZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Nj
cm9sbFR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBTY3JvbGxP
ZmZzZXQgbmV3U2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1w
ZWQgPyBjbGFtcFNjcm9sbE9mZnNldChvZmZzZXQpIDogb2Zmc2V0OworICAgIGlmIChjdXJyZW50
U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRp
dmVBbmltYXRpb24pCisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygp
OworICAgIGlmIChuZXdTY3JvbGxPZmZzZXQgIT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisgICAg
ICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3U2Nyb2xs
T2Zmc2V0KTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOwog
fQogCkBAIC0yNjQ1LDcgKzI2OTksNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhjb25z
dCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCiAjZW5kaWYKICAgICB9CiAgICAgCi0gICAgaWYg
KG1fc2Nyb2xsUG9zaXRpb24gPT0gbmV3UG9zaXRpb24pIHsKKyAgICBpZiAobV9zY3JvbGxQb3Np
dGlvbiA9PSBuZXdQb3NpdGlvbiAmJiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBT
Y3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pIHsKICAgICAgICAgLy8gRklYTUU6
IE5vdGhpbmcgZ3VhcmFudGVlcyB3ZSBnZXQgYSBzY3JvbGxUbygpIHdpdGggYW4gdW5jaGFuZ2Vk
IHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgYSB1c2VyIGdlc3R1cmUuCiAgICAgICAgIC8vIFRoZSBT
Y3JvbGxpbmdDb29yZGluYXRvciBwcm9iYWJseSBuZWVkcyB0byBtZXNzYWdlIHRoZSBtYWluIHRo
cmVhZCB3aGVuIGEgZ2VzdHVyZSBlbmRzLgogICAgICAgICBpZiAocmVxdWlyZXNTY3JvbGxQb3Np
dGlvblJlY29uY2lsaWF0aW9uKCkpIHsKQEAgLTI3OTAsMTAgKzI4NDQsMTEgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJl
Y3QsIGJvb2wgaW5zaWQKICAgICAgICAgTGF5b3V0UmVjdCByZXZlYWxSZWN0ID0gZ2V0UmVjdFRv
RXhwb3NlKGxheWVyQm91bmRzLCBsb2NhbEV4cG9zZVJlY3QsIGluc2lkZUZpeGVkLCBvcHRpb25z
LmFsaWduWCwgb3B0aW9ucy5hbGlnblkpOwogCiAgICAgICAgIFNjcm9sbE9mZnNldCBjbGFtcGVk
U2Nyb2xsT2Zmc2V0ID0gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KCkgKyB0b0ludFNp
emUocm91bmRlZEludFJlY3QocmV2ZWFsUmVjdCkubG9jYXRpb24oKSkpOwotICAgICAgICBpZiAo
Y2xhbXBlZFNjcm9sbE9mZnNldCAhPSBzY3JvbGxPZmZzZXQoKSkgeworICAgICAgICBpZiAoY3Vy
cmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdElu
QW5pbWF0aW9uIHx8IGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkpIHsKICAg
ICAgICAgICAgIFNjcm9sbE9mZnNldCBvbGRTY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQoKTsK
LSAgICAgICAgICAgIHNjcm9sbFRvT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpOwotICAgICAg
ICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXREaWZmZXJlbmNlID0gc2Nyb2xsT2Zmc2V0KCkgLSBv
bGRTY3JvbGxPZmZzZXQ7CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gKGJveC0+ZWxlbWVu
dCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCAqYm94LT5lbGVtZW50
KCkpKTsKKyAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gcm9tT2Zm
c2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1h
dGVkKTsKKyAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSA9IGNsYW1w
ZWRTY3JvbGxPZmZzZXQgLSBvbGRTY3JvbGxPZmZzZXQ7CiAgICAgICAgICAgICBsb2NhbEV4cG9z
ZVJlY3QubW92ZSgtc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSk7CiAgICAgICAgICAgICBuZXdSZWN0
ID0gTGF5b3V0UmVjdChib3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKEZsb2F0UmVj
dChsb2NhbEV4cG9zZVJlY3QpKSwgVXNlVHJhbnNmb3JtcykuYm91bmRpbmdCb3goKSk7CiAgICAg
ICAgIH0KQEAgLTI4MTMsMTAgKzI4NjgsMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVj
dFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAg
ICAgICAgICAgICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0gZnJhbWVWaWV3LnZpc2libGVDb250
ZW50UmVjdChMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsKICAgICAgICAgICAgICAgICBM
YXlvdXRSZWN0IGV4cG9zZVJlY3QgPSBnZXRSZWN0VG9FeHBvc2Uodmlld1JlY3QsIGFic29sdXRl
UmVjdCwgaW5zaWRlRml4ZWQsIG9wdGlvbnMuYWxpZ25YLCBvcHRpb25zLmFsaWduWSk7CiAKLSAg
ICAgICAgICAgICAgICBJbnRQb2ludCBzY3JvbGxPZmZzZXQocm91bmRlZEludFBvaW50KGV4cG9z
ZVJlY3QubG9jYXRpb24oKSkpOworICAgICAgICAgICAgICAgIEludFBvaW50IHNjcm9sbFBvc2l0
aW9uKHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkpKTsKICAgICAgICAgICAg
ICAgICAvLyBBZGp1c3Qgb2Zmc2V0cyBpZiB0aGV5J3JlIG91dHNpZGUgb2YgdGhlIGFsbG93YWJs
ZSByYW5nZS4KLSAgICAgICAgICAgICAgICBzY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQuY29u
c3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1lVmlldy5jb250ZW50c1Np
emUoKSkpOwotICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihzY3Jv
bGxPZmZzZXQpOworICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRp
b24uY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1lVmlldy5jb250
ZW50c1NpemUoKSkpOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGNv
bnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAgICAgLy8g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKKyAgICAg
ICAgICAgICAgICBib29sIGFuaW1hdGVkID0gb3duZXJFbGVtZW50LT5jb250ZW50RG9jdW1lbnQo
KSAmJiBvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSAm
JiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgKm93bmVyRWxlbWVudC0+Y29u
dGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBmcmFt
ZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGFuaW1hdGVkKTsKIAogICAg
ICAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcg
PT0gU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8IGZyYW1lVmlldy5zYWZl
VG9Qcm9wYWdhdGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHBhcmVu
dExheWVyID0gb3duZXJFbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOwpAQCAt
Mjg1NSw3ICsyOTEzLDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUo
Y29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgICAgICAv
LyBBdm9pZCBzY3JvbGxpbmcgdG8gdGhlIHJvdW5kZWQgdmFsdWUgb2YgcmV2ZWFsUmVjdC5sb2Nh
dGlvbigpIGlmIHdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdG8gc2Nyb2xsCiAgICAgICAgICAgICBp
ZiAocmV2ZWFsUmVjdCAhPSB2aWV3UmVjdCkgewogICAgICAgICAgICAgICAgIFNjcm9sbE9mZnNl
dCBjbGFtcGVkU2Nyb2xsUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQocmV2ZWFsUmVjdC5sb2Nh
dGlvbigpKS5jb25zdHJhaW5lZEJldHdlZW4obWluU2Nyb2xsUG9zaXRpb24sIG1heFNjcm9sbFBv
c2l0aW9uKTsKLSAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xh
bXBlZFNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdl
IHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAgICAgLy8g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKKyAgICAg
ICAgICAgICAgICBib29sIGFuaW1hdGVkID0gcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50
RWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCAqcmVuZGVy
ZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBmcmFt
ZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0aW9uLCBhbmltYXRlZCk7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVybW9zdCB2
aWV3IG9mIGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0aGlzIHZpZXcgd2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNmNhNDIyYjdiMi4uOGM5Nzc4Mzc0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTUwLDYgKzUwLDcg
QEAKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNs
dWRlICJSZW5kZXJQdHIuaCIKKyNpbmNsdWRlICJTY3JvbGxCZWhhdmlvci5oIgogI2luY2x1ZGUg
IlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CkBAIC0xMzQsNiArMTM1LDcgQEAgc3RydWN0IFNjcm9sbFJlY3RUb1Zpc2libGVPcHRp
b25zIHsKICAgICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCB7IFNjcm9sbEFsaWdubWVu
dDo6YWxpZ25DZW50ZXJJZk5lZWRlZCB9OwogICAgIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxp
Z25ZIHsgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkIH07CiAgICAgU2hvdWxk
QWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyBzaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5n
IHsgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfTsKKyAgICBTY3JvbGxCZWhh
dmlvciBiZWhhdmlvciB7IFNjcm9sbEJlaGF2aW9yOjpBdXRvIH07CiB9OwogCiBjbGFzcyBSZW5k
ZXJMYXllciBmaW5hbCA6IHB1YmxpYyBTY3JvbGxhYmxlQXJlYSB7CkBAIC00MzksOSArNDQxLDEz
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbEJ5UmVjdXJzaXZlbHkoY29uc3QgSW50U2l6ZSYg
ZGVsdGEsIFNjcm9sbGFibGVBcmVhKiogc2Nyb2xsZWRBcmVhID0gbnVsbHB0cik7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYsIFNj
cm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYsIFNjcm9sbFR5cGUgPSBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNs
YW1wZWQpOwogCi0gICAgdm9pZCBzY3JvbGxUb1hQb3NpdGlvbihpbnQgeCwgU2Nyb2xsVHlwZSwg
U2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7Ci0gICAgdm9pZCBzY3Jv
bGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCk7CisgICAgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUo
Y29uc3QgU2Nyb2xsUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2Nyb2xsVG9YUG9z
aXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0g
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24oaW50
IHksIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xh
bXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBTY3JvbGxQ
b3NpdGlvbiYsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCiAgICAgLy8gVGhlc2UgYXJlIG9ubHkgdXNlZCBieSBt
YXJxdWVlLgogICAgIHZvaWQgc2Nyb2xsVG9YT2Zmc2V0KGludCB4KSB7IHNjcm9sbFRvT2Zmc2V0
KFNjcm9sbE9mZnNldCh4LCBzY3JvbGxPZmZzZXQoKS55KCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFt
bWF0aWMsIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggMjVjZDJkMzNhNy4uYzMzZTkwNjBmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtNzQzLDcgKzc0
Myw3IEBAIGludCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxMZWZ0KCkgY29uc3QKICAgICByZXR1cm4g
MDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlw
ZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlckxpc3RCb3g6OnNldFNjcm9sbExlZnQoaW50
LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKIH0KIApAQCAtNzYwLDcgKzc2
MCw3IEBAIHN0YXRpYyB2b2lkIHNldHVwV2hlZWxFdmVudFRlc3RNb25pdG9yKFJlbmRlckxpc3RC
b3gmIHJlbmRlcmVyKQogICAgIHJlbmRlcmVyLnNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVu
dFRlc3RNb25pdG9yKHJlbmRlcmVyLnBhZ2UoKS53aGVlbEV2ZW50VGVzdE1vbml0b3IoKSk7CiB9
CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5
cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3AoaW50
IG5ld1RvcCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpCiB7CiAgICAgLy8gRGV0
ZXJtaW5lIGFuIGluZGV4IGFuZCBzY3JvbGwgdG8gaXQuICAgIAogICAgIGludCBpbmRleCA9IG5l
d1RvcCAvIGl0ZW1IZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5oCmluZGV4IDY1ZDkyMjZiM2EuLjI1YzkwNjUxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTA2LDggKzEwNiw4IEBAIHByaXZhdGU6CiAgICAgaW50
IHNjcm9sbFRvcCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2
b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGlu
Zykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9v
bCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwg
U2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBu
b2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBI
aXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBh
Y2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5j
cHAKaW5kZXggOWVlODg4ODY3MS4uNGRmN2QzMThkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTM3
NiwxMyArMzc2LDEzIEBAIGludCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNjcm9sbFRv
cCgpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2Nyb2xsVG9wKCk7CiB9CiAK
LXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGludCBuZXdM
ZWZ0LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBlLCBib29sLCBT
Y3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxlbWVudCgpKQogICAgICAgICBp
bm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbExlZnQobmV3TGVmdCk7CiB9CiAKLXZvaWQgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6
c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5n
KQogewogICAgIGlmIChpbm5lclRleHRFbGVtZW50KCkpCiAgICAgICAgIGlubmVyVGV4dEVsZW1l
bnQoKS0+c2V0U2Nyb2xsVG9wKG5ld1RvcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggM2Y1Nzg2ZGZlNC4u
NjY2YWEzMTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTcsOCArNTcsOCBAQCBwcml2YXRlOgogICAg
IGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsV2lkdGgoKSBj
b25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92
ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUs
IGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNjcm9sbFRvcChp
bnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKICAgICBib29s
IHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBs
aWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gbnVsbHB0ciwgUmVuZGVyQm94KiBzdGFy
dEJveCA9IG51bGxwdHIsIGNvbnN0IEludFBvaW50JiB3aGVlbEV2ZW50QWJzb2x1dGVQb2ludCA9
IEludFBvaW50KCkpIGZpbmFsOwogICAgIGJvb2wgbG9naWNhbFNjcm9sbChTY3JvbGxMb2dpY2Fs
RGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIEVsZW1l
bnQqKiBzdG9wRWxlbWVudCA9IDApIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDVkY2IyMWM2NDYuLjAwN2E0ZDEzOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03MzYsNiAr
NzM2LDggQEAgcHVibGljOgogICAgIGJvb2wgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIGNv
bnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxp
bmc7IH0KICNlbmRpZgogCisgICAgYm9vbCB1c2VTbW9vdGhTY3JvbGxpbmcoKSBjb25zdCB7IHJl
dHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT51c2VTbW9vdGhTY3JvbGxpbmc7IH0KKwogI2lm
IEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgVGV4dFNpemVBZGp1c3RtZW50IHRleHRTaXpl
QWRqdXN0KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFNpemVBZGp1
c3Q7IH0KICAgICBBdXRvc2l6ZVN0YXR1cyBhdXRvc2l6ZVN0YXR1cygpIGNvbnN0OwpAQCAtMTI2
Nyw2ICsxMjY5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlVG91Y2hPdmVyZmxvd1Njcm9s
bGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB1c2VUb3VjaE92ZXJm
bG93U2Nyb2xsaW5nLCB2KTsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHNldFVzZVNtb290aFNjcm9s
bGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCB1c2VTbW9vdGhT
Y3JvbGxpbmcsIHYpOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIHZvaWQg
c2V0VGV4dFNpemVBZGp1c3QoVGV4dFNpemVBZGp1c3RtZW50IGFkanVzdG1lbnQpIHsgU0VUX1ZB
UihtX3JhcmVJbmhlcml0ZWREYXRhLCB0ZXh0U2l6ZUFkanVzdCwgYWRqdXN0bWVudCk7IH0KICAg
ICB2b2lkIHNldEF1dG9zaXplU3RhdHVzKEF1dG9zaXplU3RhdHVzKTsKQEAgLTE3MDQsNiArMTcw
OCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNlVG91Y2hPdmVyZmxvd1Nj
cm9sbGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorICAgIHN0YXRpYyBib29sIGlu
aXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgc3RhdGlj
IGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIoKSB7IHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7IH0KICAgICBzdGF0aWMg
Y29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgaW5pdGlhbEFwcGxlQ29sb3JGaWx0ZXIoKSB7IHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGZiMzIwODIzMzcuLmQyYTUzMWZhMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBiYWNrZmFjZVZpc2li
aWxpdHkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQmFja2ZhY2VW
aXNpYmlsaXR5KCkpKQogICAgICwgdXNlckRyYWcoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRl
clN0eWxlOjppbml0aWFsVXNlckRyYWcoKSkpCiAgICAgLCB0ZXh0T3ZlcmZsb3coc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVGV4dE92ZXJmbG93KCkpKQorICAgICwg
dXNlU21vb3RoU2Nyb2xsaW5nKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5p
dGlhbFVzZVNtb290aFNjcm9sbGluZygpKSkKICAgICAsIG1hcmdpbkJlZm9yZUNvbGxhcHNlKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihNYXJnaW5Db2xsYXBzZTo6Q29sbGFwc2UpKQogICAgICwgbWFy
Z2luQWZ0ZXJDb2xsYXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTWFyZ2luQ29sbGFwc2U6OkNv
bGxhcHNlKSkKICAgICAsIGFwcGVhcmFuY2Uoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0
eWxlOjppbml0aWFsQXBwZWFyYW5jZSgpKSkKQEAgLTE4MCw2ICsxODEsNyBAQCBpbmxpbmUgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBT
dHlsZVJhcmVOb25JbgogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KG8uYmFja2ZhY2VWaXNpYmls
aXR5KQogICAgICwgdXNlckRyYWcoby51c2VyRHJhZykKICAgICAsIHRleHRPdmVyZmxvdyhvLnRl
eHRPdmVyZmxvdykKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhvLnVzZVNtb290aFNjcm9sbGlu
ZykKICAgICAsIG1hcmdpbkJlZm9yZUNvbGxhcHNlKG8ubWFyZ2luQmVmb3JlQ29sbGFwc2UpCiAg
ICAgLCBtYXJnaW5BZnRlckNvbGxhcHNlKG8ubWFyZ2luQWZ0ZXJDb2xsYXBzZSkKICAgICAsIGFw
cGVhcmFuY2Uoby5hcHBlYXJhbmNlKQpAQCAtMjc4LDYgKzI4MCw3IEBAIGJvb2wgU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhJiBvKSBjCiAgICAgICAgICYmIGJhY2tmYWNlVmlzaWJpbGl0eSA9PSBvLmJhY2tmYWNlVmlz
aWJpbGl0eQogICAgICAgICAmJiB1c2VyRHJhZyA9PSBvLnVzZXJEcmFnCiAgICAgICAgICYmIHRl
eHRPdmVyZmxvdyA9PSBvLnRleHRPdmVyZmxvdworICAgICAgICAmJiB1c2VTbW9vdGhTY3JvbGxp
bmcgPT0gby51c2VTbW9vdGhTY3JvbGxpbmcKICAgICAgICAgJiYgbWFyZ2luQmVmb3JlQ29sbGFw
c2UgPT0gby5tYXJnaW5CZWZvcmVDb2xsYXBzZQogICAgICAgICAmJiBtYXJnaW5BZnRlckNvbGxh
cHNlID09IG8ubWFyZ2luQWZ0ZXJDb2xsYXBzZQogICAgICAgICAmJiBhcHBlYXJhbmNlID09IG8u
YXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggMTljNTkxYjJkMS4uMTZhMjg1MTMy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xODEsNiArMTgxLDcgQEAgcHVibGljOgogCiAg
ICAgdW5zaWduZWQgdXNlckRyYWcgOiAyOyAvLyBVc2VyRHJhZwogICAgIHVuc2lnbmVkIHRleHRP
dmVyZmxvdyA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IGxpbmVzIHRoYXQgc3BpbGwgb3V0IHNob3Vs
ZCBiZSB0cnVuY2F0ZWQgd2l0aCAiLi4uIgorICAgIHVuc2lnbmVkIHVzZVNtb290aFNjcm9sbGlu
ZyA6IDE7IC8vIFNjcm9sbEJlaGF2aW9yCiAgICAgdW5zaWduZWQgbWFyZ2luQmVmb3JlQ29sbGFw
c2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIG1hcmdpbkFmdGVyQ29sbGFw
c2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIGFwcGVhcmFuY2UgOiA2OyAv
LyBFQXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWls
ZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0
ZXIuaAppbmRleCA3ZjNmMGNiYzRlLi5lMzgyMDRmNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTI5LDYgKzEyOSw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgYm9vbCBjb252ZXJ0T3ZlcmZsb3dTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwg
Y29uc3QgQ1NTVmFsdWUmKTsKICNlbmRpZgogICAgIHN0YXRpYyBGb250RmVhdHVyZVNldHRpbmdz
IGNvbnZlcnRGb250RmVhdHVyZVNldHRpbmdzKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVl
Jik7CisgICAgc3RhdGljIGJvb2wgY29udmVydFNtb290aFNjcm9sbGluZyhCdWlsZGVyU3RhdGUm
LCBjb25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBGb250U2VsZWN0aW9uVmFsdWUgY29udmVy
dEZvbnRXZWlnaHRGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgRm9udFNl
bGVjdGlvblZhbHVlIGNvbnZlcnRGb250U3RyZXRjaEZyb21WYWx1ZShjb25zdCBDU1NWYWx1ZSYp
OwogICAgIHN0YXRpYyBPcHRpb25hbDxGb250U2VsZWN0aW9uVmFsdWU+IGNvbnZlcnRGb250U3R5
bGVGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKQEAgLTE0MDMsNiArMTQwNCwxMSBAQCBpbmxp
bmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0T3ZlcmZsb3dTY3JvbGxpbmcoQnVpbGRl
clN0YXRlJiwgY29uc3QgQ1NTVgogfQogI2VuZGlmCiAKK2lubGluZSBib29sIEJ1aWxkZXJDb252
ZXJ0ZXI6OmNvbnZlcnRTbW9vdGhTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFs
dWUmIHZhbHVlKQoreworICAgIHJldHVybiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFs
dWUpLnZhbHVlSUQoKSA9PSBDU1NWYWx1ZVNtb290aDsKK30KKwogaW5saW5lIFNWR0xlbmd0aFZh
bHVlIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTVkdMZW5ndGhWYWx1ZShCdWlsZGVyU3RhdGUm
LCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIFNWR0xlbmd0aFZhbHVlOjpm
cm9tQ1NTUHJpbWl0aXZlVmFsdWUoZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTA3Nzc5NjJkNS4uNzI0MDA4
MTBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTc0Niw3ICsxNzQ2
LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjp1bmNvbnN0cmFpbmVkU2Nyb2xsVG8o
RWxlbWVudCYgZWxlbWVudCwgZG91YmxlIHgsIGQKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1
bWVudC0+dmlldygpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vy
cm9yIH07CiAKLSAgICBlbGVtZW50LnNjcm9sbFRvKHsgeCwgeSB9LCBTY3JvbGxDbGFtcGluZzo6
VW5jbGFtcGVkKTsKKyAgICBlbGVtZW50LnNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucyh4LCB5KSwg
U2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBlODQ1MmU3ZjkxLi5iMjhhYTRkMGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisy
MDE5LTEyLTExICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBuYXRpdmUgc2Nyb2xs
IGludGVyZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2Fu
Zy4KKworICAgICAgICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBlcmltZW50
YWwgZmVhdHVyZS4gT24gaW9zIHBsYXRmb3JtLCB1c2UgbmF0aXZlIGFuaW1hdGVkIHNjcm9sbGlu
ZworICAgICAgICBpbnRlcmZhY2VzIHRvIHBlcmZvcm1hbmNlIHNtb290aCBzY3JvbGwgYW5kIHNl
bmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisKKyAgICAgICAgKEFy
Z3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKToKKyAgICAg
ICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYktpdDo6ZHVtcCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW06CisgICAgICAgIChwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKTog
SGVscCBmdW5jdGlvbiB0byBjaGVjayBpZiB0d28gZmxvYXQgcG9pbnRzIGFyZSBub3QgZXF1YWwg
YnV0IGluIHRoZSBzYW1lIGRldmljZSBwaXhlbC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3Jv
bGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46YW5pbWF0ZWQ6XSk6IEFkZCBh
bmltYXRlZCBmbGFnIHRvIHN0YXJ0IGEgYW5pbWF0ZWQgc2Nyb2xsIGlmIG5lZWRlZC4KKyAgICAg
ICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246XSk6IFNl
bmQgc3JvbGwgZW5kIG1lc3NhZ2UgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoLVtXS1dl
YlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbE9yaWdpbjpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOiBQcm92aWRlIGludGVyZmFjZSBm
b3IgYW5pbWF0ZWQgc2Nyb2xsaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKTogQWRkIGFu
aW1hdGVkIGZsYWcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOiBTeW5j
IHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKTogQWRkIGFuaW1hdGVkIHNjcm9sbGluZyBpbmZvIHRvIG1fcmVxdWVzdGVkU2Ny
b2xsSW5mby4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Up
OiBTeW5jIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdU
cmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4g
SXQncyBzcGVjaWZpYyB0byB0aGUgcm9vdCBub2RlLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKTogQWRkIGFuaW1hdGVkIGluZm8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGlu
Z1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxpbmdO
b2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246
XSk6IFNlbmQgc2NvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2Vi
S2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFm
dGVyQ2hpbGRyZW4pOiBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBXZWIgcHJvY2VzcyBp
c24ndCBlcXVhbCB0byB0aGUgVUkgcHJvY2VzcywKKyAgICAgICAgdGhlIHNjcm9sbCBwb3NpdGlv
biBzaG91bGQgYmUgc3luY2hyb25pemVkLCBldmVuIHRoZXJlJ3Mgbm8gc2Nyb2xsaW5nIHBlcmZv
cm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycyk6IENhbGxp
bmcgdGhlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcgaW50ZXJmYWNlIGZvciBzbW9vdGggc2Ny
b2xsLgorICAgICAgICBJZiB0aGVyZSdzIGEgc2Nyb2xsIGFuaW1hdGlvbiBwZXJmb3JtaW5nLCBp
dCBzaG91bGQgYmUgc3RvcHBlZCBmaXJzdCwgdGhlbiBzdGFydCBhIG5ldyBzY3JvbGxpbmcuCisg
ICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNj
cm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24pOiBTeW5jIHNjcm9sbCBlbmQgaW5mbyB0
byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbCk6IFRvIGNhbGwg
ZGlmZmVyZW50IGZ1bmN0aW9ucyBmb3Igc21vb3RoIGFuZCBpbnN0YW50IHNjcm9sbC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xs
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGxXaXRoQW5p
bWF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKToKKworMjAx
OS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBBZGQgQ1NT
T00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4KKworICAgICAg
ICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBh
dGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sOgorCiAyMDE5LTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgW21hY09TXSBJc3N1ZSBsb2FkIHNvb25lciBvbiBzd2lwZSBiYWNrL2ZvcndhcmQg
bmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJh
bnNhY3Rpb24uY3BwCmluZGV4IGQ3YjFlMTkzNzIuLjg3N2QyOWEzMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKQEAgLTE1Miw2
ICsxNTIsOSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAgU0NST0xMSU5HX05PREVfRU5D
T0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMsIHNj
cm9sbGFibGVBcmVhUGFyYW1ldGVycykKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb24pCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhB
bmltYXRpb24pCisjZW5kaWYKIAogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkKICAgICAgICAg
ZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5v
ZGUuc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSk7CkBAIC0yNjAsNyArMjYzLDEyIEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgU2Nyb2xsCiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAg
bm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgICAgIGJvb2wgc2Nyb2xsV2l0aEFuaW1hdGlvbiA9
IGZhbHNlOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoc2Nyb2xsV2l0aEFuaW1hdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKKyAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3Np
dGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xsV2l0aEFuaW1hdGlvbik7
CiAgICAgfQogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjE2LDkg
QEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25s
eSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJl
cXVlc3RlZC1zY3JvbGwtcG9zaXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkp
OwogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMt
cHJvZ3JhbWF0aWMiLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dy
YW1tYXRpY1Njcm9sbCgpKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB0cy5k
dW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBu
b2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAg
IH0KIAogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFBy
b3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggMmU3YjRiNGZl
NC4uZmViMmMzZjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1s
CkBAIC0xMzI0LDYgKzEzMjQsMTMgQEAgQmxvY2tpbmdPZlNtYWxsUGx1Z2luc0VuYWJsZWQ6CiAg
IGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlN0b3AgcGx1Z2lucyBzbWFsbGVyIHRoYW4gYSBj
ZXJ0YWluIHRocmVzaG9sZCBmcm9tIGxvYWRpbmcuIgogICBjYXRlZ29yeTogaW50ZXJuYWwKIAor
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0
VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTT00gVmlldyBTbW9vdGggU2Ny
b2xsaW5nIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgRE9NIEFQSSBhbmQg
Q1NTIHByb3BlcnR5IGZvciAnc21vb3RoJyBzY3JvbGwgYmVoYXZpb3IiCisgIGNhdGVnb3J5OiBl
eHBlcmltZW50YWwKKwogV2ViQW5pbWF0aW9uc0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVm
YXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQppbmRleCAzMzU0YWM2ZWVjLi4xMDhlNGMwM2I3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTE2MTcsNiArMTYxNywx
MSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcG9pbnRzRXF1YWxJbkRldmljZVBpeGVscyhDR1BvaW50
IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2aWNlUwogICAgICAgICAmJiBmYWJzKGEueSAqIGRldmlj
ZVNjYWxlRmFjdG9yIC0gYi55ICogZGV2aWNlU2NhbGVGYWN0b3IpIDwgc3RkOjpudW1lcmljX2xp
bWl0czxmbG9hdD46OmVwc2lsb24oKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHBvaW50c0Vx
dWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yKQoreworICAgIHJldHVybiBDR1JvdW5kKGEueCAqIGRldmljZVNjYWxlRmFj
dG9yKSA9PSBDR1JvdW5kKGIueCAqIGRldmljZVNjYWxlRmFjdG9yKQorICAgICAgICAmJiBDR1Jv
dW5kKGEueSAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueSAqIGRldmljZVNjYWxl
RmFjdG9yKTsKK30KIHN0YXRpYyBDR1NpemUgcm91bmRTY3JvbGxWaWV3Q29udGVudFNpemUoY29u
c3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIENHU2l6ZSBjb250ZW50U2l6ZSkKIHsKICAg
ICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKTsKQEAg
LTIzNDEsOSArMjM0NiwxMCBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5D
b250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogICAgIHJldHVybiBj
b250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihXZWJDb3JlOjpGbG9hdFBvaW50KCksIFdl
YkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNvbnRlbnRPZmZzZXQpKTsKIH0KIAotLSAodm9pZClf
c2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xs
UG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4KKy0g
KHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50
KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3Jp
Z2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7Ci0gICAgaWYgKF9jb21taXREaWRSZXN0b3Jl
U2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpE
eW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykKKyAgICAvLyBBbmltYXRlZCBz
Y3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBwZWQuCisgICAgaWYgKCFhbmltYXRlZCAmJiAoX2Nv
bW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8fCBfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9k
ZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2Zmc2V0ID0g
V2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQ
b3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2luKSk7CkBAIC0yMzU3LDEzICsyMzYzLDIx
IEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2Vi
Q29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAKICAgICBbX3Njcm9sbFZpZXcgX3N0b3BTY3Jv
bGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CiAKLSAgICBpZiAoIUNHUG9pbnRFcXVhbFRvUG9p
bnQoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBbX3Njcm9sbFZpZXcgY29u
dGVudE9mZnNldF0pKQotICAgICAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudE9mZnNldDpjb250
ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXNdOworICAgIC8vIEl0J3MgcG9zc2libGUg
dGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwsIHNv
IF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4KKyAgICAvLyBXZSBuZWVkIHRvIGNhbGN1bGF0ZSB0
aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhlcmUuCisgICAgaWYgKCFwb2ludHNFcXVhbEluUm91
bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcywgW19z
Y3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBfcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSkpCisg
ICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXRJblNjcm9s
bFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDphbmltYXRlZF07CiAgICAgZWxzZSB7CiAgICAgICAg
IC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBhbnl0aGluZywgdGhlcmUgd291bGQgbm90IGJlIGFu
eSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRlIHNlbnQgdG8gdGhlIGNvbnRlbnQuCiAgICAgICAg
IC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtlZXAgdGhlIGludmFsaWQgY29udGVudE9mZnNldCBh
cyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAgICAgICAvLyBUbyBzeW5jaHJvbml6ZSB0aGUgV2Vi
UHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2NyZWVuLCB3ZSBzZW5kIHRoZSBWaXNpYmxlQ29udGVu
dFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdlLT5yZXNlbmRMYXN0VmlzaWJsZUNvbnRlbnRSZWN0
cygpOworICAgICAgICAvLyBJZiBfc2Nyb2xsVmlldyB3b24ndCBjaGFuZ2UsIHdlIHN0aWxsIG5l
ZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nlc3MgdGhhdCB0aGUgYW5pbWF0aW9uIHN0b3BwZWQuCisg
ICAgICAgIGlmIChhbmltYXRlZCkgeworICAgICAgICAgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5KCk7CisgICAgICAgICAgICBpZiAoY29vcmRpbmF0b3IpCisgICAgICAgICAgICAg
ICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTI4Nzks
NiArMjg5MywxMCBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50
T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogLSAodm9pZClzY3JvbGxWaWV3
RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiB7CiAg
ICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGluZ107CisKKyAgICBXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkoKTsKKyAgICBpZiAoY29vcmRpbmF0b3IpCisgICAgICAgIGNvb3JkaW5hdG9y
LT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFu
Z2UoZmFsc2UpOwogfQogCiAtICh2b2lkKV9zY3JvbGxWaWV3RGlkSW50ZXJydXB0RGVjZWxlcmF0
aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDQzNTA4MGYzMjQu
LjVjYjVmNTgxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC05Nyw3ICs5Nyw3IEBAIHN0cnVjdCBQcmludElu
Zm87CiAKIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3Q7
CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9h
dFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Ny
b2xsT3JpZ2luOworLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNv
cmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQ
b2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQ7CiAtIChCT09MKV9zY3Jv
bGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IG9yaWdpbjooV2ViQ29yZTo6
RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNjcm9sbERpc3RhbmNlOihmbG9hdCltaW5pbXVtU2Ny
b2xsRGlzdGFuY2U7CiAtIChkb3VibGUpX2luaXRpYWxTY2FsZUZhY3RvcjsKIC0gKGRvdWJsZSlf
Y29udGVudFpvb21TY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBl
ODQ4MjRmZDg1Li5kZTNkMzM2NzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CkBAIC0xODEsNiArMTgxLDggQEAgcHVibGljOgogICAgIC8vIFRlbGwgdGhlIHZpZXcgdG8gc2Ny
b2xsIHRvIHRoZSBnaXZlbiBwb3NpdGlvbiwgYW5kIHdoZXRoZXIgdGhpcyB3YXMgYSBwcm9ncmFt
bWF0aWMgc2Nyb2xsLgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
c2Nyb2xsT3JpZ2luKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhB
bmltYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIHsgfQorCiAgICAgLy8gUmV0dXJuIHRo
ZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiAobm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRo
ZSBXZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwgYmVjYXVzZSBvZiBzY2FsaW5nLCBpbnNldHMgZXRj
LikKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkg
PSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1t
CmluZGV4IDM4MGYxMjQ0NDMuLjBhNDJmOTQ0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0yMjQsOCArMjI0LDE0IEBAIHZvaWQgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90
ZUxheWVyVHJlZVRyYW5zCiAKICAgICAvLyBIYW5kbGUgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlv
biB1cGRhdGVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlIHRyYW5zYWN0aW9uIGFmdGVyIGRpZENv
bW1pdExheWVyVHJlZSgpCiAgICAgLy8gaGFzIHVwZGF0ZWQgdGhlIHZpZXcgc2l6ZSBiYXNlZCBv
biB0aGUgY29udGVudCBzaXplLgotICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3Rz
U2Nyb2xsUG9zaXRpb25VcGRhdGUpCi0gICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3Jv
bGwocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgbGF5ZXJUcmVl
VHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCkpOworICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZv
LnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpIHsKKyAgICAgICAgbV93ZWJQYWdlUHJveHku
cmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
CisgICAgICAgICAgICAsIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbE9yaWdpbigpCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgICAgICwgcmVxdWVzdGVkU2Nyb2xsSW5mby5y
ZXF1ZXN0V2l0aEFuaW1hdGlvbgorI2VuZGlmCisgICAgICAgICAgICApOworICAgIH0KICNlbmRp
ZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogCiAgICAgaWYgKG1fZGVidWdJbmRpY2F0b3JM
YXllclRyZWVIb3N0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5jcHAKaW5kZXggNDgyM2Y3NmE5Ny4uOGNmMWQ4NGExMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApAQCAtMjA4LDcgKzIwOCw3
IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y3VycmVudFNuYXBQb2lu
dEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6CiB9CiAKIC8vIFRoaXMgY29tZXMgZnJvbSB0aGUg
c2Nyb2xsaW5nIHRyZWUuCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNj
cm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwg
Y29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0
UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQg
c2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25z
dCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0
YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKIHsKICAgICAvLyBTY3JvbGwgdXBkYXRlcyBmb3Ig
dGhlIG1haW4gZnJhbWUgYXJlIHNlbnQgdmlhIFdlYlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJsZUNv
bnRlbnRSZWN0cygpCiAgICAgLy8gc28gZG9uJ3Qgc2VuZCB0aGVtIGhlcmUuCkBAIC0yMjIsMjEg
KzIyMiwzNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRAogICAgIG1fd2ViUGFnZVByb3h5LnNj
cm9sbGluZ05vZGVTY3JvbGxWaWV3RGlkU2Nyb2xsKCk7CiAjZW5kaWYKIAotICAgIGlmIChtX3Nj
cm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSkKKyAgICBpZiAobV9z
Y3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKCkgJiYgIWluc3RhbnRT
Y3JvbGxEaWRTdG9wQW5pbWF0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3dlYlBhZ2VQ
cm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6U2Nyb2xsUG9z
aXRpb25DaGFuZ2VkRm9yTm9kZShzY3JvbGxlZE5vZGVJRCwgbmV3U2Nyb2xsUG9zaXRpb24sIHNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPT0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
bjo6U3luYykpOwogfQogCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9k
ZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpz
Y3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5v
ZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQogewogICAgIGlmIChzY3JvbGxl
ZE5vZGVJRCA9PSByb290U2Nyb2xsaW5nTm9kZUlEKCkgJiYgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZv
KSB7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdHNTY3JvbGxQb3NpdGlv
blVwZGF0ZSA9IHRydWU7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdElz
UHJvZ3JhbW1hdGljU2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVl
c3RXaXRoQW5pbWF0aW9uID0gd2l0aEFuaW1hdGlvbjsKKyNlbmRpZgogICAgICAgICBtX3JlcXVl
c3RlZFNjcm9sbEluZm8tPnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247
CiAgICAgfQogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlE
LCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94
eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHNjcm9sbGVkTm9kZUlELCBpc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MpKTsKK30KKwordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2UoYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAgbV93ZWJQYWdl
UHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShyb290U2Nyb2xsaW5nTm9kZUlEKCksIGlz
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOworfQorI2VuZGlmCisKIFN0cmluZyBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkgY29uc3QKIHsK
ICAgICBpZiAobV9zY3JvbGxpbmdUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmgKaW5kZXggMWE3Njk0M2YyNC4uODExNWU0NzdjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01NSw5ICs1NSwx
NCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eShXZWJQYWdlUHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5KCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5n
VHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisgICAgdm9p
ZCBzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFu
Z2UoYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCisKICAgICAvLyBJ
bmZvcm0gdGhlIHdlYiBwcm9jZXNzIHRoYXQgdGhlIHNjcm9sbCBwb3NpdGlvbiBjaGFuZ2VkIChj
YWxsZWQgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUpCi0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9k
ZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBv
aW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24pOwotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJD
b3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIHZvaWQgc2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uLCBib29sIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9u
ID0gZmFsc2UpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJD
b3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFuaW1h
dGlvbiA9IGZhbHNlKTsKIAogICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSBldmVudFRyYWNraW5n
VHlwZUZvclBvaW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSwgV2ViQ29yZTo6SW50UG9p
bnQpIGNvbnN0OwogCkBAIC04MCw2ICs4NSw5IEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgUmVxdWVz
dGVkU2Nyb2xsSW5mbyB7CiAgICAgICAgIGJvb2wgcmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0
ZSB7IH07CiAgICAgICAgIGJvb2wgcmVxdWVzdElzUHJvZ3JhbW1hdGljU2Nyb2xsIHsgfTsKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBib29sIHJlcXVlc3RXaXRoQW5pbWF0aW9u
IHsgfTsKKyNlbmRpZgogICAgICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uOwogICAgIH07CiAgICAgdm9pZCBjb21taXRTY3JvbGxpbmdUcmVlU3RhdGUoY29u
c3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbiYsIFJlcXVlc3RlZFNjcm9s
bEluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAppbmRleCBhZmFiYmMxZWFlLi5k
NTczYTMxZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC0xMDQsMTIgKzEw
NCwxNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJgogICAgIGlmIChpczxTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKSkKICAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4g
PSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKS5sYXlvdXRW
aWV3cG9ydCgpLmxvY2F0aW9uKCk7CiAKLSAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5j
dXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb24pOworICAgIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRp
b24gPSBmYWxzZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGluc3RhbnRTY3JvbGxE
aWRTdG9wQW5pbWF0aW9uID0gbm9kZS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKCkg
JiYgIW5vZGUucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCk7CisjZW5kaWYKKyAgICBtX3Njcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxp
bmdOb2RlSUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRP
cmlnaW4sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGluc3RhbnRTY3JvbGxEaWRTdG9w
QW5pbWF0aW9uKTsKIH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVl
Tm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCit2
b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwo
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQog
ewotICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwpOworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwsIHdpdGhBbmltYXRpb24pOwogfQogCiBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+
IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05v
ZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpAQCAtMTQzLDYgKzE0Nywx
MyBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNj
cm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZAogICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4
ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3NEaWRDaGFuZ2Uobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQor
I2VuZGlmCisKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGlj
ZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwg
dW5zaWduZWQgdmVydGljYWwpCiB7CiAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmN1
cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKG5vZGVJRCwgaG9yaXpvbnRhbCwgdmVydGlj
YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggMjNiYWMwNmEzYi4uMGY5ZTA5NDk0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1MiwxMSBAQCBwdWJsaWM6
CiAgICAgY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYgc2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTsgfQogCiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb24gPSBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6
U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSkgb3ZlcnJp
ZGU7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5v
ZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykgb3ZlcnJpZGU7CisjZW5k
aWYKIAogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6
U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkg
b3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKaW5kZXggZTYzN2Q2MTUzMi4uMDBiNGRiY2QzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsRGlk
RW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpIGNv
bnN0OwogICAgIHZvaWQgc2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBzY3JvbGxPZmZzZXQsIGJvb2wgaW5Vc2VySW50ZXJhY3Rpb24pOworICAgIHZvaWQgc2Ny
b2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbigpOwogCiAgICAgdm9pZCBjdXJyZW50U25h
cFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0
aWNhbCkgY29uc3Q7CiAgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBt
X3Njcm9sbExheWVyLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggZTc2ODk4Mzc1OC4uODQ4
ODYzYTgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMTUyLDYgKzE1MiwxMSBAQAogICAgIH0KIH0K
IAorLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZp
ZXcgKilzY3JvbGxWaWV3Cit7CisgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9s
bFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKTsKK30KKwogI2lmIEVOQUJMRShQT0lOVEVS
X0VWRU5UUykKIC0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZp
ZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0IHRyYW5zbGF0aW9uOihD
R1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3RhcnQgbG9jYXRpb25JblZp
ZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9jaXR5Oihpbm91dCBkb3Vi
bGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2dgogewpAQCAtMzAwLDE1
ICszMDUsMzYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpj
b21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIAogICAgIGlmIChzY3JvbGxpbmdT
dGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CiAgICAgICAgIGF1dG8gc2Nyb2xsVHlwZSA9IHNj
cm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwoKSA/IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyA6IFNjcm9sbFR5cGU6OlVz
ZXI7Ci0gICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUu
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSk7CisgICAgICAgIGlmIChzY3Jv
bGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisg
ICAgICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKHRydWUp
OworICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9ucyBhcmUgbm90IHRoZSBzYW1lLCB0
aGVyZSdzIGEgcG9zc2liaWxpdHkgdGhhdCB0aGUgc2Nyb2xsIG9mZnNldCBmcm9tIHRoZSBXZWIg
cHJvY2VzcyBoYXMgYmVlbiBvdmVycmlkZGVuLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHRo
ZSBzY3JvbGwgcG9zaXRpb24gbmVlZCB0byBiZSBzZW50IHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAg
ICAgICAgYm9vbCBzaG91bGRTeW5jU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxpbmdTdGF0ZU5vZGUu
c2Nyb2xsUG9zaXRpb24oKSAhPSBzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbFBvc2l0aW9u
KCk7CisgICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUu
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFt
cDo6VG9Db250ZW50RWRnZXMsIHNob3VsZFN5bmNTY3JvbGxQb3NpdGlvbik7CiAgICAgfQogfQog
CiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25T
Y3JvbGxpbmdMYXllcnMoKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAg
IFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNj
cm9sbE9mZnNldCgpXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgYm9vbCBh
bmltYXRpb25JblByb2dyZXNzID0gc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MoKTsKKyAgICBib29sIG5lZWRUb1N0b3BBbmltYXRpb24gPSBzY3JvbGxpbmdOb2RlKCku
bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpOworICAgIGlmIChuZWVkVG9TdG9wQW5p
bWF0aW9uICYmIGFuaW1hdGlvbkluUHJvZ3Jlc3MpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3Jv
bGxWaWV3KCkuY29udGVudE9mZnNldCBhbmltYXRlZDpOT107CisgICAgICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKKyAgICB9CisKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZSgpLnJlcXVlc3RB
bmltYXRlZFNjcm9sbCgpKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwor
ICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1
cnJlbnRTY3JvbGxPZmZzZXQoKSBhbmltYXRlZDpZRVNdOworICAgICAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TCisKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3ModHJ1ZSk7CisgICAgfSBlbHNlIGlmICghYW5pbWF0aW9uSW5Qcm9ncmVzcyB8
fCBuZWVkVG9TdG9wQW5pbWF0aW9uKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9k
ZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKKyAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUzo6c2Nyb2xsV2lsbFN0YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICszNjEsMTUgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkU2Nyb2xs
KGNvbnN0IEZsb2F0UG9pbnQKICAgICBzY3JvbGxpbmdOb2RlKCkud2FzU2Nyb2xsZWRCeURlbGVn
YXRlZFNjcm9sbGluZyhzY3JvbGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJbnRlcmFjdGlvbiA/IFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMgOiBTY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uOjpTZXQpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKQoreworICAgIGF1dG8m
IG5vZGUgPSBzY3JvbGxpbmdOb2RlKCk7CisgICAgaWYgKCEobm9kZS5yZXF1ZXN0QW5pbWF0ZWRT
Y3JvbGwoKSAmJiBub2RlLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAgICAg
c2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzRGlkQ2hhbmdlKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgbm9k
ZS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludElu
ZGljZXNEaWRDaGFuZ2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNv
bnN0CiB7CiAgICAgaWYgKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZGIyY2UwNzljYS4uZDA5ZjYwN2FjZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzY3LDkgKzE3Njcs
MTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9u
JiByZWdpb24pCiAgICAgcGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
Y29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0aW9uKQog
ewotICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxP
cmlnaW4pOworICAgIGlmICh3aXRoQW5pbWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50KCkucmVx
dWVzdFNjcm9sbFdpdGhBbmltYXRpb24oc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7Cisg
ICAgZWxzZQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlv
biwgc2Nyb2xsT3JpZ2luKTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6
OnZpZXdTY3JvbGxQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGFlMzg1MjIyMWQuLmFmMDdlYTQ5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02MTMsNyArNjEzLDcgQEAgcHVibGljOgogICAgIFBhZ2VD
bGllbnQmIHBhZ2VDbGllbnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxh
eShjb25zdCBXZWJDb3JlOjpSZWdpb24mKTsKLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBzY3JvbGxPcmlnaW4pOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNj
cm9sbE9yaWdpbiwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogICAgIAogICAgIFdlYkNv
cmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggZDZjOGMzOGQ0
YS4uNTE5OGVmNDQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNz
UHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2Vi
Q29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5p
bWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpG
bG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6Oklu
dFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCmluZGV4IGRjOWY3NGM0OWEuLjJjMzBjNGJjMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTk1LDcgKzk1LDEy
IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9u
JikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKIHsKLSAgICBb
bV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBz
Y3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luXTsKKyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRl
bnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2lu
IGFuaW1hdGVkOk5PXTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbFdp
dGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBzY3JvbGxPcmlnaW4pCit7CisgICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Ny
b2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBhbmlt
YXRlZDpZRVNdOwogfQogCiBXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBsOjp2aWV3
U2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaAppbmRleCA4ZTY0OTM1NTQ1Li4zZDM0NWQ3NjhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNzMs
NiArNzMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5v
ZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgdm9pZCBjdXJyZW50
U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwg
dW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOwogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9y
Tm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKTsKKyNlbmRpZgorCiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
Lm1lc3NhZ2VzLmluCmluZGV4IDJjMDk4YTEwOTcuLjUzN2ZkMzRkNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVz
c2FnZXMuaW4KQEAgLTI1LDYgKzI1LDkgQEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yIHsKICAgICBTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5v
ZGVJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQ
b3NpdGlvbik7CiAgICAgQ3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZSh1aW50
NjRfdCBub2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKTsKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFu
Z2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQpp
bmRleCA4MzU0NDFkMzE5Li42ODlkNTU2MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDQsNiArMTA0LDEzIEBAIHZv
aWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hh
bmdlZEZvck5vZGUoU2Nyb2xsaW5nCiAgICAgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMobm9k
ZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAgIHNldFNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3Mobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBiOWRhZTJjZTEwLi5iY2Y1ZWI4
YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTkt
MTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIHJ1biB0aW1lIGZsYWcgZm9yIENTU09NVmlld1Nt
b290aFNjcm9sbGluZy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmg6IEhhbmRsZSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcgYnkuCisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKFtXZWJQcmVmZXJlbmNlcyBpbml0aWFs
aXplXSk6IERpc2FibGUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nIGJ5IGRlZmF1bHQuCisgICAg
ICAgICgtW1dlYlByZWZlcmVuY2VzIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRdKTog
R2V0dGVyLgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRDU1NPTVZpZXdTbW9vdGhTY3Jv
bGxpbmdFbmFibGVkOl0pOiBTZXR0ZXIuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dl
YlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOS0xMi0wOSAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgbWVkaWEgaW4gdGhl
IEdQVSBwcm9jZXNzIHByZWZlcmVuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDQ0MWI1YTg3
NzYuLmM2NzlmYmQ2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTg4LDYgKzE4OCw3IEBA
CiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3BvcnRB
UElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCIK
ICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgorI2RlZmluZSBXZWJLaXRDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1vZGVybk1lZGlhQ29udHJv
bHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVk
IgogI2RlZmluZSBXZWJLaXRSZW1vdGVQbGF5YmFja0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0UmVtb3RlUGxheWJhY2tFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTdWJ0bGVDcnlwdG9FbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWQiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA0N2Y3
Yzc1ZGRhLi5jZDIzNjc0NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY2Myw2ICs2NjMsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogICAgICAgICBAWUVTLCBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJl
ZmVyZW5jZUtleSwKKyAgICAgICAgQE5PLCBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQFlFUywgV2ViS2l0TmVlZHNTdG9yYWdlQWNj
ZXNzRnJvbUZpbGVVUkxzUXVpcmtLZXksCiAgICAgICAgIEBOTywgV2ViS2l0QWxsb3dDcm9zc09y
aWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHNLZXksCiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKQEAgLTMxODEsNiArMzE4MiwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJD
cmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJL
aXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJP
T0wpQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBf
Ym9vbFZhbHVlRm9yS2V5OldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVm
ZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5Oldl
YktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwog
LSAoQk9PTCl3ZWJBbmltYXRpb25zRW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBfYm9vbFZh
bHVlRm9yS2V5OldlYktpdFdlYkFuaW1hdGlvbnNFbmFibGVkUHJlZmVyZW5jZUtleV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaAppbmRleCA1OTc1OGUyMzM1Li4wOTExOTMxZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAg
LTYzMiw2ICs2MzIsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2Rl
bENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogCiBAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOworQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIGFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRNYXJrdXBFbmFibGVkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDQ3YWFlMzI4ZGIuLjY2
NzAzNTllMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
QEAgLTI5OTIsNiArMjk5Miw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9h
ZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW3By
ZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldFN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQoW3ByZWZlcmVuY2VzIHN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kc0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdB
UElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkXSk7Cisg
ICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbcHJlZmVyZW5j
ZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldE1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBtZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOwogCiAgICAgc3dpdGNoIChb
cHJlZmVyZW5jZXMgc3RvcmFnZUJsb2NraW5nUG9saWN5XSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IDQyMDE0ZDk5ZDUuLmU3Y2E2ZjcyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRo
aWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhh
dmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAg
ICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAq
IEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6IEhhbmRsZSBzbW9vdGggc2Ny
b2xsaW5nIG9wdGlvbi4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogRGl0
dG8uCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYlBy
ZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAgICAgICAgKFdlYlByZWZl
cmVuY2VzOjpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYlBy
ZWZlcmVuY2VzOjpzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKToKKyAgICAgICAg
KiBXZWJQcmVmZXJlbmNlcy5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJWaWV3LmNwcDogRGl0dG8u
CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorCiAyMDE5LTEy
LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUGFnZUNvbmZp
Z3VyYXRpb246OmRyYWdDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJp
dmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaWRsCmluZGV4IGE3MTc2MjIyMWIuLmNjZmY5ZjA1OTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmlkbApAQCAtMjIzLDYgKzIyMyw4IEBAIGludGVyZmFjZSBJV2ViUHJlZmVy
ZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1CiAgICAgSFJFU1VMVCBzZXRW
aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQg
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKICAgICBI
UkVTVUxUIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQp
OworICAgIEhSRVNVTFQgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbb3V0LCByZXR2
YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgZmV0Y2hBUElLZWVwQWxpdmVFbmFi
bGVkKFtvdXQsIHJldHZhbF0gQk9PTCogZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzZXRGZXRjaEFQ
SUtlZXBBbGl2ZUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgc3BhdGlh
bE5hdmlnYXRpb25FbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCAqZW5hYmxlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4
IDA5OTM3NDIwZTQuLjA4YzQ1NjcyN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yMDksNiArMjA5LDcgQEAKICNkZWZp
bmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFNlcnZlclRp
bWluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxl
ZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQiCisjZGVm
aW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJX
ZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIgogCiAjZGVmaW5lIFdlYktpdFJl
c2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFJlc2l6ZU9ic2VydmVyRW5h
YmxlZCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5j
ZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4
IDk1ZWJlYTI2OGMuLmM4ZTIyNWFhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQ
cmVmZXJlbmNlcy5jcHAKQEAgLTMzOSw2ICszMzksOCBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpp
bml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRl
ZmF1bHRzLCBDRlNUUihXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5KSwg
a0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBD
RlNUUihXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSks
IGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywg
Q0ZTVFIoV2ViS2l0Q29yZU1hdGhNTEVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZh
bHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRS
ZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2Up
OwpAQCAtMjI4Myw2ICsyMjg1LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldENvcmVN
YXRoTUxFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VM
VCBXZWJQcmVmZXJlbmNlczo6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChfT3V0XyBC
T09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIEVfUE9J
TlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisK
K0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNf
T0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFi
bGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggMWRhYWE3MzAyNS4uNjA2NmU0NjQz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0yNzEsNiAr
MjcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBz
ZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCop
OwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkKEJPT0wpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRfIEJPT0wqKTsKKyAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xs
aW5nRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
ZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKEJPT0wpOwog
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzcGF0aWFsTmF2aWdhdGlvbkVu
YWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBh
MDQ0OGJiMDEzLi5kMmIyMmYwNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApA
QCAtNTMxOCw2ICs1MzE4LDExIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXND
aGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0dXJuIGhy
OwogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoISFlbmFibGVk
KTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOwor
ICAgIHNldHRpbmdzLnNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoISFlbmFibGVk
KTsKKwogICAgIGhyID0gcHJlZmVyZW5jZXMtPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoJmVuYWJs
ZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDBkYWJlNzNmNC4uZTlh
MTI4YjAyNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBh
cnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBC
YXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoVGVzdE9wdGlvbnM6OlRlc3RPcHRp
b25zKTogUGFyc2UgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZC4KKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOiBBZGQgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZCwgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RP
cHRpb25zKTogU2V0IENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQgZnJvbSB0aGUgdGVz
dCBvcHRpb25zLgorCiAyMDE5LTEyLTEwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggQVBJIHRlc3QgZmFpbHVyZSBhZnRlciByMjUzMzUxCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggN2M5YWU1OTk0YS4uMjM3Yzk4ODc4ZiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtMTQyLDYgKzE0Miw4IEBAIFRl
c3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25z
dCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBhZENsaWNrQXR0cmlidXRpb25FbmFi
bGVkID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBp
ZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVzaXplT2JzZXJ2ZXJFbmFibGVkIikKICAgICAgICAg
ICAgIGVuYWJsZVJlc2l6ZU9ic2VydmVyID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZh
bHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZCIpCisgICAgICAgICAgICBlbmFibGVDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmcgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBl
bHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpDb3JlTWF0aE1MRW5hYmxlZCIpCiAgICAgICAg
ICAgICBlbmFibGVDb3JlTWF0aE1MID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVl
KTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVxdWVzdElkbGVDYWxs
YmFja0VuYWJsZWQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5kZXggZTUzMzVlODMx
MS4uZjdlOGQyOTExZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCkBAIC01MCw2ICs1
MCw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBlbmFibGVDU1NMb2dpY2FsIHsg
ZmFsc2UgfTsKICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgZW5hYmxlUmVzaXplT2JzZXJ2ZXIgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxl
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUNvcmVN
YXRoTUwgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlUmVxdWVzdElkbGVDYWxsYmFjayB7IGZh
bHNlIH07CiAgICAgYm9vbCBlbmFibGVBc3luY0NsaXBib2FyZEFQSSB7IGZhbHNlIH07CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggY2NmZmUwNTVkMy4u
NjdjYWVhNzE4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQpAQCAtMTAyOSw2ICsxMDI5LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JU
ZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBwcmVmZXJlbmNlcy5D
U1NMb2dpY2FsRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTTG9naWNhbDsKICAgICBwcmVmZXJl
bmNlcy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gb3B0aW9ucy5hZENsaWNrQXR0cmlidXRp
b25FbmFibGVkOwogICAgIHByZWZlcmVuY2VzLnJlc2l6ZU9ic2VydmVyRW5hYmxlZCA9IG9wdGlv
bnMuZW5hYmxlUmVzaXplT2JzZXJ2ZXI7CisgICAgcHJlZmVyZW5jZXMuQ1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
OwogICAgIHByZWZlcmVuY2VzLmNvcmVNYXRoTUxFbmFibGVkID0gb3B0aW9ucy5lbmFibGVDb3Jl
TWF0aE1MOwogICAgIHByZWZlcmVuY2VzLnJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrOwogICAgIHByZWZlcmVuY2VzLmFzeW5jQ2xp
cGJvYXJkQVBJRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQXN5bmNDbGlwYm9hcmRBUEk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385600</attachid>
            <date>2019-12-13 07:07:10 -0800</date>
            <delta_ts>2019-12-13 07:53:20 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_39.diff</filename>
            <type>text/plain</type>
            <size>302854</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjg4NDBmM2NmLi4zNWZhMzg0M2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0g
aXMgYmFzZWQgb24gQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5j
IHNjcm9sbCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJl
Zm9yZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0
byBmYXN0L3Njcm9sbGluZy9pb3MvLCB0aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAgICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAg
ICAod2FpdEZvclNjcm9sbEVuZCk6CisgICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNj
cm9sbFdpbmRvdyk6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sLgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNh
dGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJl
aGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4ODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUg
cGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
OiBTa2lwIHRoZXNlIHRlc3RzIG9uIFdLMSBhcyB0aGV5IGRvbid0IHdvcmsgZm9yIG5vdy4KKwor
MjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxOS0xMi0xMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgog
CiAgICAgICAgIENyZWF0ZSBhIFRlc3RFeHBlY3RhdGlvbnMgZmlsZSBmb3IgdGhlIEdQVSBwcm9j
ZXNzIHJlbGF0ZWQgd29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwLi4wYTA5NjhlMDI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKQEAg
LTAsMCArMSw4NyBAQAorZnVuY3Rpb24gb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgY2FsbGJh
Y2spIHsKKyAgaWYgKCFBcnJheS5pc0FycmF5KGVsZW1lbnRzKSkKKyAgICAgIGVsZW1lbnRzID0g
W2VsZW1lbnRzXTsKKyAgdmFyIGxhc3RDaGFuZ2VkRnJhbWUgPSAwOworICB2YXIgbGFzdExlZnQg
PSBuZXcgTWFwKCk7CisgIHZhciBsYXN0VG9wID0gbmV3IE1hcCgpOworICBlbGVtZW50cy5mb3JF
YWNoKChlbGVtZW50KSA9PiB7CisgICAgbGFzdExlZnQuc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Ny
b2xsTGVmdCk7CisgICAgbGFzdFRvcC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOwor
ICB9KTsKKyAgZnVuY3Rpb24gdGljayhmcmFtZXMpIHsKKyAgICAvLyBXZSByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgZWl0aGVyIGZvciA1MDAgZnJhbWVzIG9yIHVudGlsIDIwIGZyYW1lcyB3aXRoCisg
ICAgLy8gbm8gY2hhbmdlIGhhdmUgYmVlbiBvYnNlcnZlZC4KKyAgICBpZiAoZnJhbWVzID49IDUw
MCB8fCBmcmFtZXMgLSBsYXN0Q2hhbmdlZEZyYW1lID4gMjApIHsKKyAgICAgIGNhbGxiYWNrKHRy
dWUpOworICAgIH0gZWxzZSB7CisgICAgICB2YXIgc2Nyb2xsSGFwcGVuZWQgPSBlbGVtZW50cy5z
b21lKChlbGVtZW50KSA9PiB7CisgICAgICAgIHJldHVybiBlbGVtZW50LnNjcm9sbExlZnQgIT0g
bGFzdExlZnQuZ2V0KGVsZW1lbnQpIHx8IGVsZW1lbnQuc2Nyb2xsVG9wICE9IGxhc3RUb3AuZ2V0
KGVsZW1lbnQpOworICAgICAgfSk7CisgICAgICBpZiAoc2Nyb2xsSGFwcGVuZWQpIHsKKyAgICAg
ICAgbGFzdENoYW5nZWRGcmFtZSA9IGZyYW1lczsKKyAgICAgICAgZWxlbWVudHMuZm9yRWFjaCgo
ZWxlbWVudCkgPT4geworICAgICAgICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNj
cm9sbExlZnQpOworICAgICAgICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xs
VG9wKTsKKyAgICAgICAgfSk7CisgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsKKyAgICAgIH0KKyAg
ICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrLmJpbmQobnVsbCwgZnJhbWVzICsgMSkpOwor
ICAgIH0KKyAgfQorICB0aWNrKDApOworfQorCitmdW5jdGlvbiB3YWl0Rm9yU2Nyb2xsRW5kKGVs
ZW1lbnRzKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgIG9ic2Vy
dmVTY3JvbGxpbmcoZWxlbWVudHMsIChkb25lKSA9PiB7CisgICAgICBpZiAoZG9uZSkKKyAgICAg
ICAgcmVzb2x2ZSgpOworICAgIH0pOworICB9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCkgeworICAvLyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0
aGUgZWxlbWVudCBwb3NpdGlvbiBpcyByZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOwor
ICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImlu
c3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dp
bmRvdykgeworICAvLyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0aGUgZWxlbWVudCBw
b3NpdGlvbiBpcyByZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwgYmVoYXZpb3I6ICJpbnN0YW50In0pOworfQorCitmdW5j
dGlvbiBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCBjbGFzc05hbWUpIHsKKyAgc3R5
bGVkRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJhdXRvQmVoYXZpb3IiLCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgc3R5bGVkRWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7Cit9CisKK2Z1
bmN0aW9uIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2
aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFy
Z3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsK
KyAgc3dpdGNoIChzY3JvbGxGdW5jdGlvbikgeworICAgIGNhc2UgInNjcm9sbEludG9WaWV3IjoK
KyAgICAgIGFyZ3MuaW5saW5lID0gInN0YXJ0IjsKKyAgICAgIGFyZ3MuYmxvY2sgPSAic3RhcnQi
OworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbEludG9WaWV3KGFyZ3MpOworICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7
CisgICAgICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgICAgIHNjcm9sbGluZ0Vs
ZW1lbnRbc2Nyb2xsRnVuY3Rpb25dKGFyZ3MpOworICAgICAgYnJlYWs7CisgIH0KK30KKworZnVu
Y3Rpb24gc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2
aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFy
Z3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsK
KyAgYXJncy5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgYXJncy50b3AgPSBlbGVtZW50
VG9SZXZlYWxUb3A7CisgIHNjcm9sbGluZ1dpbmRvd1tzY3JvbGxGdW5jdGlvbl0oYXJncyk7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjhkNGNhNjQxNTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQt
Y3NzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBJbnN0YW50IHNjcm9sbGlu
ZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCitQQVNTIFNtb290
aCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uMzVjNjUwM2FiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMCww
ICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVy
aW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFz
eW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIGRl
ZmF1bHQgdmFsdWUgb2Ygc2Nyb2xsLWJlaGF2aW9yPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJp
YyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9s
bC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3Jv
bGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVp
Z2h0OiAyMDBweDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYg
aWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0
aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEz
NWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1l
bnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246
IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwv
c3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBzY3JvbGxpbmdFbGVtZW50
ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFy
IGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgdmFyIHNjcm9sbEZ1bmN0aW9uID0gInNjcm9s
bCI7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7Cisg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgfSwgIkluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQg
d2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIlNtb290
aCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjUzYTk2MWVmNTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKKworUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxl
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDM4
ZGZmZGVjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50
PC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsK
KyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuYXV0b0JlaGF2
aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9y
IHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUi
PgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3Vu
ZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48
L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1i
bG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Cisg
IHZhciBzY3JvbGxpbmdFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgc3R5bGVkRWxlbWVu
dCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZh
ciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisKKyAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAi
c2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4g
eworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVo
YXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rp
b24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRv
IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwg
YEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
YXV0byBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7Cisg
ICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bFRvcCIpOworICAgICAgfSk7CisgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgIH0p
OworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
ZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7Cisg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJv
b3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk3
Y2FlYTI3YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzNyBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5n
IAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4g
ZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDMy
NWI0YjllMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNjkgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAg
IG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6
IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBh
Z2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4K
KyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0g
YXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxl
ZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1
bmN0aW9uKCkgeworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAg
cGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiA1ICsg
InB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cuaW5uZXJI
ZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsgd2luZG93
LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQgPSBlbGVt
ZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUudG9wID0g
ZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNr
KCgpID0+IHsgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7IH0pOworCisgICAgWyJzY3Jv
bGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChz
Y3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29s
dmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAg
ICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNj
cm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwg
InNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0p
OworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBh
biBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJp
bnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21v
b3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5n
Iik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwLi4zODIzODVhYWI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyOSBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21v
b3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi45MDU3YjBjZDEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1s
CkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGlu
dGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5U
ZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogb24gdGhl
IHdpbmRvdyBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBj
b250ZW50PSJsb25nIi8+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLG1pbmltdW0tc2NhbGU9MSxpbml0aWFsLXNjYWxlPTEiPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVo
YXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZp
b3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBp
ZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwi
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2Pgor
PHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOwor
ICB2YXIgc2Nyb2xsaW5nV2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
cGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICBzY3JvbGxpbmdXaW5k
b3cgPSB3aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRo
KSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9ICgyMCArIHdpbmRv
dy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gKDEw
ICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZlYWxUb3AgPSAoMjAg
KyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUubGVm
dCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbC5zdHls
ZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRkX2NvbXBsZXRpb25f
Y2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbEZvcldpbmRvdyh3aW5kb3cpOyB9KTsKKworICAg
IFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rp
b24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93
LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAg
ICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAg
c2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50Iiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290
aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3Ag
LyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJpbnN0YW50IiwgMCwg
MCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAuLjQ0M2E4MjBlNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mgc2Nyb2xsSW50b1ZpZXcg
d2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJlaGF2aW9yIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40NWI1ZDhkN2M3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxp
bnRvdmlldy1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIHdpdGggc2Ny
b2xsSW50b1ZpZXcgZm9yIG5lc3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxlPgorPG1ldGEgbmFt
ZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJG
csOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3Bk
ZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
KyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIGhlaWdodDogMjAwcHg7
CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsK
KyAgfQorICAuZ3JhZGllbnQgeworICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVk
ZWcsIHJlZCwgZ3JlZW4pOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2Pgor
PGRpdj4KKyAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9Indp
ZHRoOiA0NTBweCI+CisgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIHNt
b290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KKyAgICAgIDxkaXYgY2xhc3M9Imdy
YWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAg
ICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDM1MHB4Ij4KKyAgICAgICAg
PGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAz
MDBweCI+CisgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDI1MHB4Ij4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6
IDIwMHB4Ij4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0
aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0i
ZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgYmFja2dy
b3VuZDogYmxhY2s7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQi
IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAg
IDwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDog
MTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg
ICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBw
eDsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICA8L2Rpdj4K
KyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDUwMHB4OyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0Pgor
ICAvLyBUaGUgQ1NTT00tVmlldyBzcGVjIGFuZCBpbXBsZW1lbnRhdGlvbnMgZm9sbG93IGRpZmZl
cmVudCBhbGdvcml0aG1zIChzY3JvbGxzIHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgYXMgaW5uZXIt
dG8tb3V0ZXIgc2VxdWVuY2Ugb3IgYXMgb3V0ZXItdG8taW5uZXIgc2VxdWVuY2UpLgorICAvLyBT
ZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzMxMjcKKyAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICB2YXIgZGl2cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ii5zY3JvbGxhYmxlIik7CisgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsYWJsZURpdik7CisgICAgICB9KTsKKyAgICAgIGVs
ZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyh7aW5saW5lOiAic3RhcnQiLCBibG9jazogInN0
YXJ0IiwgYmVoYXZpb3I6ICJhdXRvIn0pOworICAgICAgdmFyIHNjcm9sbFRvcCA9IG5ldyBNYXAo
KTsKKyAgICAgIHZhciBpc1Ntb290aCA9IG5ldyBNYXAoKTsKKyAgICAgIGRpdnMuZm9yRWFjaCgo
c2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9sbGFibGVEaXYs
IHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgaXNTbW9vdGguc2V0KHNjcm9sbGFi
bGVEaXYsIHNjcm9sbGFibGVEaXYuY2xhc3NMaXN0LmNvbnRhaW5zKCJzbW9vdGhCZWhhdmlvciIp
KTsKKyAgICAgICAgLy8gSWYgc2Nyb2xsIG9wZXJhdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgaW4g
cGFyYWxsZWwsIHNjcm9sbCBib3hlcyB3aXRoIGluc3RhbnQgYmVoYXZpb3IgbWlnaHQgYWxzbyBu
ZWVkIHRvIHdhaXQgZm9yIHRoZWlyIHByZWRlY2Vzc29ycy4KKyAgICAgICAgaWYgKGlzU21vb3Ro
LmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbFRv
cC5nZXQoc2Nyb2xsYWJsZURpdiksIDUwMCwgIkVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
c2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkiKTsKKyAgICAgIH0pOworCisgICAgICBvYnNl
cnZlU2Nyb2xsaW5nKEFycmF5LmZyb20oZGl2cyksIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAg
dHJ5IHsKKyAgICAgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2
KSwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIp
OworICAgICAgICAgICAgaWYgKCFpc1Ntb290aC5nZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAg
ICAgICAgIGFzc2VydF9hbnkoYXNzZXJ0X2VxdWFscywgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3As
IFswLCA1MDBdLCAiRWxlbWVudCB3aXRoIGluc3RhbnQgYmVoYXZpb3Igc2hvdWxkIGp1bXAgdG8g
dGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgNTAwLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9sbGFibGVE
aXYsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSBj
YXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChk
b25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAic2Ny
b2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJl
aGF2aW9yIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu
Ljg1NWE2YTYxMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjAgQEAKKworUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hl
biBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9s
bFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Ny
b2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUw
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9u
cyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9y
bWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcg
c2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290
aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkg
IAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgw
LCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3Np
dGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAo
NTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25z
IHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUw
MCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9s
bGluZyAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9s
bGluZyB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3Ro
LXBvc2l0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBh
NDFiOGIwOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbApAQCAtMCwwICsxLDE1MSBA
QAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJm
bG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGwgcG9z
aXRpb25zIHdoZW4gc2Nyb2xsaW5nIGFuIGVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3I8L3Rp
dGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAg
IHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHNjcm9sbC1iZWhhdmlvcjog
c21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0i
b3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAy
MDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVn
LCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRv
UmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1
cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFu
PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgLy8gRm9yIHNtb290aCBiZWhhdmlvciwg
ZXZvbHV0aW9uIG9mIHNjcm9sbCBwb3NpdGlvbnMgb3ZlciB0aW1lIGlzIG5vdCBzcGVjaWZpZWQg
YnkgQ1NTT00gVmlldy4KKyAgLy8gVGhpcyB0ZXN0IHJlbGllcyBvbiB0aGUgbWluaW1hbCBhc3N1
bXB0aW9uIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGZ1bmN0aW9ucyBhcmUgbW9ub3RvbmljLgorICBb
InNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVh
Y2goZnVuY3Rpb24oc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBbe2xlZnQ6MCwgdG9wOjB9LCB7bGVm
dDoxMDAwLCB0b3A6MH0sIHtsZWZ0OjAsIHRvcDo1MDB9LCB7bGVmdDoxMDAwLCB0b3A6NTAwfV0u
Zm9yRWFjaCgoaW5pdGlhbCkgPT4geworICAgICAgdmFyIGZpbmFsTGVmdCA9IDUwMDsKKyAgICAg
IHZhciBmaW5hbFRvcCA9IDI1MDsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgaW5pdGlhbC5s
ZWZ0LCBpbml0aWFsLnRvcCk7CisgICAgICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUu
c2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRv
cDsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIGluaXRpYWwubGVmdCwgIlNjcm9s
bExlZnQgc2hvdWxkIGJlIGF0IGluaXRpYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG9sZFRvcCwgaW5pdGlhbC50b3AsICJTY3JvbGxUb3Agc2hvdWxkIGJlIGF0IGluaXRp
YWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBpZiAoc2Nyb2xsRnVuY3Rpb24gPT09ICJzY3JvbGxC
eSIpCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgc2Nyb2xsRnVuY3Rpb24s
ICJzbW9vdGgiLCBmaW5hbExlZnQgLSBpbml0aWFsLmxlZnQsIGZpbmFsVG9wIC0gaW5pdGlhbC50
b3ApOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2Rl
LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCwgZmluYWxUb3ApOworICAgICAg
ICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25lKSB7CisgICAg
ICAgICAgICB0cnkgeworICAgICAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxMZWZ0OworICAgICAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bFRvcDsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChNYXRoLmh5cG90KGZp
bmFsTGVmdCAtIG5ld0xlZnQsIGZpbmFsVG9wIC0gbmV3VG9wKSwgTWF0aC5oeXBvdChmaW5hbExl
ZnQgLSBvbGRMZWZ0LCBmaW5hbFRvcCAtIG9sZFRvcCksICJTY3JvbGwgcG9zaXRpb24gc2hvdWxk
IG1vdmUgdG93YXJkcyB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgaWYgKGRv
bmUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIGZpbmFsTGVmdCwg
IlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIGZpbmFsVG9wLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFj
aCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIG9sZExl
ZnQgPSBuZXdMZWZ0OworICAgICAgICAgICAgICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZv
cm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgke2luaXRpYWwubGVmdH0sICR7aW5pdGlhbC50
b3B9KSB0byAoJHtmaW5hbExlZnR9LCAke2ZpbmFsVG9wfSkgdXNpbmcgJHtzY3JvbGxGdW5jdGlv
bn0oKSBgKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICByZXNl
dFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxTY3JvbGxBYm9ydGVkID0g
ZmFsc2U7CisgICAgICB2YXIgc2Nyb2xsRGlyZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOworICAgICAg
dmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZhciBvbGRUb3Ag
PSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUob3Zl
cmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAgICBvYnNlcnZl
U2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgewor
ICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAg
ICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgaWYgKGlu
aXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAgICAgICAgICBpZiAoc2Nyb2xsRGlyZWN0aW9uQ2hh
bmdlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9sZExlZnQs
IG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBrZWVw
cyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgc2Nyb2xs
RGlyZWN0aW9uQ2hhbmdlZCA9IG5ld0xlZnQgPD0gb2xkTGVmdCAmJiBuZXdUb3AgPD0gb2xkVG9w
OworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1
YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAg
ICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xs
VG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAw
ICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAgICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFs
IHNjcm9sbC4KKyAgICAgICAgICAgICAgICBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3Ro
IiwgNTAwLCAyNTApOworICAgICAgICAgICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Ny
b2xsTGVmdDsKKyAgICAgICAgICAgICAgICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9w
OworICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxk
IHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1Rv
cCwgMjUwLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAg
ICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3AgPSBu
ZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsK
KyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBz
Y3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5pdGlh
bFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsK
KyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKG9s
ZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9v
dGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1
bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05v
ZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmICghaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsKKyAg
ICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Ny
b2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIpOwor
ICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7CisgICAg
ICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAgICAg
IGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxOb2Rl
KG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgNTAwLCAyNTApOworICAgICAgICAg
ICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAg
ICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9z
aXRpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Ny
b2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRp
b24iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Ag
c2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICB9CisgICAgICAgICAg
b2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICB9
IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH0sICJT
Y3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4g
aW5zdGFudCBzY3JvbGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uMjc5OWZkY2MyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzNyBAQAorCitQQVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3Ro
IHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAor
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3
aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk2ZDExYWI5NjIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4K
Kzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9s
bCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4K
KzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12
aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+
Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2RlIiB3aWR0aD0i
NDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFET0NUWVBFPgorPGh0bWw+CisgIDxzdHls
ZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgLmF1dG9CZWhhdmlv
ciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgICAgfQorICAgIC5zbW9vdGhCZWhh
dmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgICB9CisgIDwvc3R5bGU+
CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4
OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsnPgorICAg
ICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWln
aHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0eWxlPSdkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48L3NwYW4+CisgICAgPC9kaXY+CisgIDwv
Ym9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2NyaXB0PgorICB2YXIgaWZyYW1lTG9hZFRl
c3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50
LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBlbGVtZW50VG9SZXZlYWxM
ZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICBpZnJhbWVOb2Rl
LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5zdGVwX2Z1bmNfZG9uZSgo
KSA9PiB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVu
dERvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50VG9SZXZlYWwgPSBpZnJhbWVO
b2RlLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudFRvUmV2ZWFsIik7CisK
KyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJd
LmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJh
dXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Jg
KTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3Jv
bGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICAgIH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
bnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAg
ICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxp
bmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNt
b290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsKKwor
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVt
ZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhh
dmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAy
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBz
Y3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9s
bChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50Iiwg
MCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDVlYjMyNzJmNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisK
K1BBU1MgaWZyYW1lIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13
aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zMzMzZDY0
Zjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFE
T0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Ny
b2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVt
ZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1l
PC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+
PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2Rl
IiB3aWR0aD0iNDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFET0NUWVBFPgorPGh0bWw+
CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgLmF1
dG9CZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgICAgfQorICAgIC5z
bW9vdGhCZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgICB9Cisg
IDwvc3R5bGU+CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdo
dDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVu
KTsnPgorICAgICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUw
MHB4OyBoZWlnaHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0
eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48L3NwYW4+CisgICAgPC9k
aXY+CisgIDwvYm9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2NyaXB0PgorICB2YXIgaWZy
YW1lTG9hZFRlc3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7CisgIHZhciBzY3JvbGxp
bmdXaW5kb3csIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAgdmFyIGVsZW1lbnRU
b1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlm
cmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVu
Y19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdXaW5kb3cgPSBpZnJhbWVOb2RlLmNvbnRlbnRX
aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50VG9SZXZlYWwgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudFRvUmV2ZWFsIik7CisKKyAgICBbInNjcm9s
bCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJl
c29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xs
aW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9u
LCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhz
Y3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cu
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7Cisg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9w
Iik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisK
KyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Ny
b2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIp
OworCisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
NDdmZDVlMWE1NC4uMzZmNTNiNjBhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVz
IG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgRW5hYmxlIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQgb24gc2Nyb2xsIGJlaGF2aW9yIHRlc3RzIGFuZCB1cGRhdGUgZXhwZWN0YXRpb25zLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJv
b3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Ny
b2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6CisKKzIwMTktMTItMTAgIENhdGhp
ZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJp
YyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFu
Y2UtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmUtc3luYyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLW9yaWdpbi1v
YmplY3RzLmh0bWwgZnJvbSB1c3B0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCAzYWMwYTM3Y2ZmLi44
NzVhNzI3Yzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBQcm9wZXJ0
eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogc2Ny
b2xsLWJlaGF2aW9yIGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVk
IHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhh
dmlvciBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byAK
K1BBU1MgUHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9yIGRvZXMgbm90IGluaGVyaXQgCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dAppbmRleCA5MDY4Yjc5NzU1Li44
ZDRjYTY0MTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQg
d2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKLUZBSUwgU21vb3RoIHNjcm9sbGluZyBvZiBh
biBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFNtb290aCBzY3JvbGxpbmcgb2YgYW4gZWxl
bWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1j
c3MuaHRtbAppbmRleCA2OTI1Y2YwOTJjLi5mZTQ3NWIwMzlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1
bHQtY3NzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1
ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBl
Y3RlZC50eHQKaW5kZXggMmI5MTI5YzFjZi4uNTNhOTYxZWY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTIsMzUgKzIsMzUgQEAKIFBBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAog
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVs
ZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxl
bWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1l
bnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAotRkFJTCBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0
byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1l
bGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKaW5kZXggM2NiZDcy
MmY3Mi4uNmMxNTkyOWM5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+
CiA8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3Jv
bGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwvdGl0bGU+CiA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKaW5kZXggZDkyMjI1OGFm
Mi4uOTdjYWVhMjdiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1y
b290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0CkBAIC0zLDM1ICszLDM1IEBAIFBBU1MgUGFnZSBsb2FkZWQKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290
IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBi
dXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBn
b3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAg
YnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50
b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
NDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9v
dGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAppbmRleCBmY2Y3NWFhMWRkLi42ZDliMjI0MmVhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
RE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
eHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxl
PgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4
dAppbmRleCBjNmJlOTY2NjFjLi4zODIzODVhYWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0zLDI3ICszLDI3IEBAIFBBU1Mg
UGFnZSBsb2FkZWQKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
Ci1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQg
Z290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1G
QUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290
IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2Vy
dF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0
ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
IFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5k
b3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKaW5kZXgg
OGM4OGVjNjg2MS4uYmYzODczMDQyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS13aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdp
bmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMn
IGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogb24gdGhlIHdpbmRvdyBvZiB0aGUgbWFpbiBm
cmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLG1pbmltdW0tc2Nh
bGU9MSxpbml0aWFsLXNjYWxlPTEiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Ny
b2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9s
bGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKaW5kZXggN2NlMTBjMDg5Ni4uNDQzYTgyMGU1
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHNjcm9sbEludG9WaWV3IHdpdGgg
bmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNob3VsZCBub3Qgc2Nyb2xsIGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1Mgc2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Ny
b2xsLWJlaGF2aW9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRv
dmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC5odG1sCmluZGV4IDNhODkwNjUzMmIuLjNmM2Q5YjcyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBF
IGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5U
ZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIHdpdGggc2Nyb2xsSW50b1ZpZXcgZm9yIG5l
c3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMuaHRtbAppbmRleCAwMDVkMmI2MDRkLi5lYWEwZmZmMDE5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5n
IHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRoIHNtb290aCBi
ZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3
YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUt
cm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVj
dGVkLnR4dAppbmRleCBiNmZhMWMyZWM4Li4yNzk5ZmRjYzI5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMywzNSArMywzNSBAQCBQQVNTIGlm
cmFtZSBsb2FkZWQKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1G
QUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVz
cyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
NTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5n
IGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290Lmh0bWwKaW5kZXggZTY0MWU1M2UzMy4uZThjY2I2NmJlNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBo
dG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50
YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+VGVz
dGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3Jv
bGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggY2M2NjVlYmRi
OC4uMDVlYjMyNzJmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2lu
ZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0CkBAIC0zLDI3ICszLDI3IEBAIFBBU1MgaWZyYW1lIGxvYWRlZAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290
aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3Qg
NTAwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190
aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVt
YmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUw
MCBidXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAw
Ci1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBn
b3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFi
b3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1z
dWJmcmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5o
dG1sCmluZGV4IGQ5MzFlMDAzZDQuLjkyNjg0ZDY3NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXdpbmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9w
dGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBv
biB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDQ5NmNmMmRjYi4uMDQxZjM2ZWJjZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NzQ4LDYgKzc0OCwxNSBAQCB3ZWJraXQub3JnL2IvMTg5NTk0IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmltYXRpb25zL3BlbmRpbmctcwogCiB3ZWJraXQub3JnL2Iv
MTg4MDcwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZXJy
b3ItcHJvcGFnYXRpb24tYmFja3dhcmQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKKyMgVGVzdHMg
Zm9yIHNtb290aCBzY3JvbGwgYmVoYXZpb3IgZG8gbm90IGFsbCB3b3JrIGFuZCB0aGV5IGFyZSBz
bG93LCBzbyBsZXQncyBqdXN0IHNraXAgdGhlbS4KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS1yb290Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS13aW5kb3cuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE5MTM1NyBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c3ViZnJhbWUtd2luZG93Lmh0bWwgWyBTa2lwIF0KKworIyBUaGlzIGlzIGZhaWxpbmcgb24gbWFj
LXdrMSwgdHJ5IHRvIGZpZ3VyZSBpdCBvdXQgaW4gdGhlIGZvbGxvdy11cCBidWcuCit3ZWJraXQu
b3JnL2IvMTkxMzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvaW5oZXJpdGFuY2UuaHRtbCBbIFNraXAgXQorCiB3ZWJraXQub3JnL2IvMTg5OTA4IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL3Jlc291cmNlX3RpbWlu
Zy53b3JrZXIuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTg5NzU2IFsgTW9qYXZl
KyBdIGNvbXBvc2l0aW5nL2ZpbHRlcnMvb3BhY2l0eS1jaGFuZ2Utb24tZmlsdGVyZWQtcGFpbnRz
LWludG8tYW5jZXN0b3IuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDUyMjA2ODczMWMuLjBlODE0YmJjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC05NjQsOCArOTY0LDEwIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAg
cGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbAogICAgIHBhZ2UvUmVzaXplT2JzZXJ2ZXJF
bnRyeS5pZGwKICAgICBwYWdlL1NjcmVlbi5pZGwKKyAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmlk
bAogICAgIHBhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAogICAgIHBhZ2UvU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uLmlkbAorICAgIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKICAgICBwYWdlL1Nj
cm9sbFRvT3B0aW9ucy5pZGwKICAgICBwYWdlL1NoYXJlRGF0YS5pZGwKICAgICBwYWdlL1VuZG9J
dGVtLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhMTZiNDQwYWQuLmE0ODExZmM4MDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNDAgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBp
Z2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVs
aWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggc3VwcG9ydCBuYXRp
dmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0uIEl0IHJlbGllcyBvbiBVSVNjcm9s
bFZpZXcncworICAgICAgICBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBwb3J0IGFuZCBpcyBl
eGVjdXRlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBUZXN0czogZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJm
cmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5p
bWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBieSBjYWxsaW5nIGFu
aW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKTog
QWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCBvciBu
b3QuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1
cyBmcm9tIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOiBBZGQgbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gdG8gaW5kaWNhdGUgaXQncyBhbmltYXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOiBEaXR0by4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25XaXRoQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBVcGRh
dGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhIGZsYWcgdG8g
aW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4pOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIHRoZSBzY3JvbGwgaXMgYW5pbWF0ZWQgb3Ig
bm90LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9s
bFRvKTogSWYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiBpcyB0cnVlLCBzZW5kIHRoZSBzY3JvbGwg
cG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLCBldmVuIGlmIHRoZSBzY3JvbGwgcG9zaXRpb24g
ZG9lc24ndCBjaGFuZ2UuCisgICAgICAgIE1haW50YWluIHRoZSBzdGF0dXMgb2YgbV9zdG9wU2Ny
b2xsQW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbC4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFu
Z2VkKTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlt
bWVkaWF0ZWx5LCBzbyBkb24ndCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZvIG5vdy4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0QW5pbWF0
ZWRTY3JvbGwpOiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlz
IGFuIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRlZFNjcm9sbCBjb25zdCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24p
OiBJZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHByZXZp
b3VzIHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRk
IFNjcm9sbEJlaGF2aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQgb3Igc21vb3RoIHNj
cm9sbC4KKyAgICAgICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGluZGljYXRlIHRoZSBz
dGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBVcGRhdGUg
U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSk6IEFk
ZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjdXJyZW50U2Ny
b2xsQmVoYXZpb3JUeXBlIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogU2VuZCBhIHF1ZXN0IG9m
IG5hdGl2ZSBzY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBi
eSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorCisyMDE5
LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24g
b2YgdGhlIFdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ4ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIHByb2dyYW1tYXRpYyBzbW9vdGggc2Nyb2xsaW5n
IGluIFdlYktpdCBmcm9tIHRoZSBDU1NPTSBWaWV3CisgICAgICAgIHNwZWNpZmljYXRpb24gWzFd
LiBUbyB1c2UgdGhpcyBlZmZlY3QsIHdlYiBkZXZlbG9wZXJzIGNhbiBwYXNzIGEgYmVoYXZpb3Ig
cGFyYW1ldGVyIChhdXRvLAorICAgICAgICBzbW9vdGgsIG9yIGluc3RhbnQpIHRvIEVsZW1lbnQu
c2Nyb2xsLCBFbGVtZW50LnNjcm9sbFRvLCBFbGVtZW50LnNjcm9sbEJ5LAorICAgICAgICBFbGVt
ZW50LnNjcm9sbEludG9WaWV3LCBXaW5kb3cuc2Nyb2xsLCBXaW5kb3cuc2Nyb2xsVG8gb3IgV2lu
ZG93LnNjcm9sbEJ5IFsyXS4gV2hlbiBiZWhhdmlvcgorICAgICAgICBpcyBhdXRvLCB0aGUgaW5z
dGFudC9zbW9vdGggY2hhcmFjdGVyaXN0aWMgaXMgYWN0dWFsbHkgdGFrZW4gZnJvbSB0aGUgdmFs
dWUgb2YgYSBuZXcgQ1NTCisgICAgICAgIHNjcm9sbC1iZWhhdmlvciBwcm9wZXJ0eSBbM10uIEJv
dGggdGhlIG5ldyBDU1MgYW5kIERPTSBiZWhhdmlvciBhcmUgcHJvdGVjdGVkIGJ5IGEgcnVudGlt
ZQorICAgICAgICBmbGFnLgorCisgICAgICAgIFsxXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldworICAgICAgICBbMl0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZp
ZXcvI2RpY3RkZWYtc2Nyb2xsb3B0aW9ucworICAgICAgICBbM10gaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yCisKKyAgICAgICAgVGVz
dHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQu
aHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAgICAgICAg
ICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgt
cG9zaXRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAor
ICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDogQnVpbGQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCBvbiBhbGwgcGxhdGZvcm1z
LgorICAgICAgICAqIFNvdXJjZXNHVEsudHh0OiBSZW1vdmUgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmNwcCBzaW5jZSBpdCBpcyBidWlsdCBvbiBhbGwgcGxhdGZvcm1zIG5vdy4KKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmll
dyk6IFBhc3Mgc2Nyb2xsIGJlaGF2aW9yLCBpZiBhbnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzY3JvbGxCeSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxUbyk6IEhh
bmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Ny
b2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNj
cm9sbFRvcCk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGgu
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpzY3JvbGxCeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9s
bFRvIGNvbnN0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290
aC4KKyAgICAgICAgVGhlIG9wdGltaXphdGlvbiBvZiBjYW5jZWwgKDAsIDApIHNjcm9sbGluZyBp
cyBza2lwcGVkIGlmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcy4KKyAgICAgICAg
T3RoZXJ3aXNlLCB0aGUgcHJldmlvdXMgc2Nyb2xsIHdvbid0IGJlIHN0b3BwZWQgYnkgYSBmb2xs
b3ctdXAgc2Nyb2xsLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBTdGFydCBhbiBhbmltYXRl
ZCBzY3JvbGwuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRpb246OnNjcm9sbCk6IEZ1bmN0aW9uIHRvIGFuaW1hdGUgc2Nyb2xsaW5n
IHRvIGEgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvblNtb290aC5jcHA6IEJ1aWxkIHRoaXMgZmlsZSBvbiBhbGwgcGxhdGZvcm1zLiBBZGQgYQor
ICAgICAgICBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgcGFyYW1ldGVyIHRvIHNs
b3cgZG93biB0aGUgc21vb3RoIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdGlvblNtb290aDo6c2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlv
blNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEpOiBTY2FsZSB0aGUgdGltZSBwYXJhbWV0ZXJzIG9m
IHRoZQorICAgICAgICBhbmltYXRpb24gc28gdGhhdCBpdCBsb29rcyBzbW9vdGhlci4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaDogRGVjbGFyZSB0aGUgY2xhc3Mg
b24gYWxsIHBsYXRmb3Jtcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IpOiBJbml0
aWFsaXplIGFuaW1hdGlvbiBtZW1iZXIgZm9yIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9PZmZzZXQpOiBBbmltYXRlIHNj
cm9sbGluZyB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMpOiBDb3B5IGxvZ2ljIGZyb20gU2Nyb2xsQW5p
bWF0aW9uU21vb3RoLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzZXJ2
aWNlU2Nyb2xsQW5pbWF0aW9ucyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3I6OndpbGxFbmRMaXZlUmVzaXplKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvcjo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaDogTmV3IGFuaW1hdGlvbiBtZW1i
ZXIgZm9yIHNtb290aCBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6c2Vy
dmljZVNjcm9sbEFuaW1hdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjp3aWxsRW5kTGl2ZVJlc2l6ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFkZFZl
cnRpY2FsU2Nyb2xsYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yOjpTY3JvbGxBbmltYXRvcjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yU3Rh
dHVzIHRvIGluZGljYXRlIHRoZSBzdGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Ny
b2xsUG9zaXRpb24pOiBGb2xsb3cgdGhlIENTU09NIFZpZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMg
aW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGludGVycnVwdCBpdCBhbmQgY29udGludWUgdGhlIHNj
cm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJlIGF0IHRoZSBmaW5hbCBwb3NpdGlvbikuCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09m
ZnNldFdpdGhBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNl
dFNjcm9sbE9mZnNldEZyb21JbnRlcm5hbHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24pOiBUbyBhdm9pZCBpdGVyYXRlIGNh
bGxpbmcsCisgICAgICAgIG1vdmUgdGhlIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShwb3Np
dGlvbikgY2hlY2tpbmcgb3V0IG9mIHNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24oKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyBjb25zdCk6IE1haW50YWlu
IGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFi
bGVBcmVhOjpzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyk6CisgICAgICAgICogcGxhdGZvcm0vZ2Vu
ZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JHZW5lcmljOjp1cGRhdGVQb3NpdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JN
YWM6OmNhbmNlbEFuaW1hdGlvbnMpOiBDYWxsIHBhcmVudCBtZW1iZXIgdG8gaGFuZGxlIHByb2dy
YW1tYXRpYyBzY3JvbGxpbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQpOiBBZGQgZmxhZyB0byBp
bmRpY2F0ZSBhbmltYXRlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNl
dFNjcm9sbFRvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRTY3Jv
bGxQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9YUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpzY3JvbGxUb1lQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnNjcm9sbFRvUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnNjcm9sbFRvT2Zmc2V0KTogRm9sbG93IHRoZSBDU1NPTSBWaWV3IHNwZWM6IElmIGEgc2Nyb2xs
IGlzIGluCisgICAgICAgIHByb2dyZXNzLCB3ZSBpbnRlcnJ1cHQgaXQgYW5kIGNvbnRpbnVlIHRo
ZSBzY3JvbGwgY2FsbCAoZXZlbiB3aGVuIHdlIGFyZSBhdCB0aGUgZmluYWwKKyAgICAgICAgcG9z
aXRpb24pLiBJdCdzIFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCBzY3JvbGwuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24p
OiBEaXR0by4gVGhpcyBpcyBzaW1pbGFyIHRvIHNjcm9sbFRvT2Zmc2V0CisgICAgICAgIGJ1dCBh
bmltYXRlcyB0aGUgc2Nyb2xsLiBJdCdzIFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoIHNjcm9s
bC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6IEFnYWluIGRvbid0IGRv
IGFuIGVhcmx5IHJldHVybiBpZiBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MuIFdlIGNh
bGwgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uIGluc3RlYWQgb2Ygc2Nyb2xsVG9PZmZzZXQg
d2hlbiBhcHByb3ByaWF0ZS4KKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gbWF5IG5v
dCB3b3JrIHdlbGwgZm9yIHNldmVyYWwgbmVzdGVkIHNjcm9sbCBib3hlcyB3aXRoIGF0IGxlYXN0
IG9uZQorICAgICAgICBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yLiBJdCB3aWxsIGhhbmRs
ZWQgaW4gYnVnIEZvbGxvdy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDogQWRk
IHNjcm9sbCBiZWhhdmlvciB0byBTY3JvbGxUZWN0VG9WaXNpYmxlT3B0aW9ucy4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
aXN0Qm94OjpzZXRTY3JvbGxMZWZ0KTogQWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3ApOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp1bmNvbnN0cmFpbmVkU2Nyb2xsVG8p
OgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5n
IHNjcm9sbC1iZWhhdmlvciBjc3MgcHJvcGVydHkgYW5kIFNjcm9sbE9wdGlvbnMuCisKKyAgICAg
ICAgVGVzdHM6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IEFkZCBJREwgZmlsZXMgZm9yIFNjcm9sbE9wdGlvbnMgYW5kIFNjcm9sbEJlaGF2aW9yLgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogSGVhZGVycy5jbWFrZTogQWRk
IGhlYWRlcnMgZm9yIFNjcm9sbEJlaGF2b3IgYW5kIFNjcm9sbE9wdGlvbnMuCisgICAgICAgICog
U291cmNlcy50eHQ6IEFkZCBTY3JvbGxCZWhhdm9yIGFuZCBTY3JvbGxPcHRpb25zIGltcGxlbWVu
dGF0aW9uLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRk
IGZpbGVzIHRvIHRoZSBidWlsZCBzeXN0ZW0uCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHA6IEhhbmRsZSBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChXZWJD
b3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZSk6Cisg
ICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjogQWRkIHNjcm9sbC1iZWhhdmlvci4KKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogQWRkIGtleXdvcmRzIGZvciBzY3JvbGwt
YmVoYXZpb3IuCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcDogQWRk
IHJ1bnRpbWUgY29uZmlnIGZvciBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHRIYXNoOjpoYXNoKToKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHA6IFJlbW92ZSBzY3JvbGwtYmVo
YXZpb3IgdGVtcGxhdGVzLiBJdCBpcyBoYW5kbGVkIGluIHRoZSBzbG93IHBhdGggc2luY2UgcHJv
cGVydHkgY2FuIGJlIGRpc2FibGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBh
dGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKToKKyAgICAgICAgKiBjc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVT
Y3JvbGxCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6cGFy
c2VTaW5nbGVWYWx1ZSk6IFBhcnNlIHNjcm9sbC1iZWhhdmlvciAob25seSBpZiBlbmFibGVkKS4K
KyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjp1c2VTbW9vdGhTY3JvbGxpbmcpOiBIZWxwZXIgZnVuY2l0b24gdG8gZGV0ZXJtaW5lIHRo
ZSBzY3JvbGwgYmVoYXZpb3IgdG8gYXBwbHkgdG8gYW4gZWxlbWVudCBmcm9tIHRoZSBDU1MgYW5k
IERPTSBiZWhhdmlvci4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmg6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOiBNYWtlIHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBT
Y3JvbGxPcHRpb24uIEFsc28gcmVtb3ZlIHVubmVjZXNzYXJ5IGZvcndhcmQgZGVjbGFyYXRpb24u
CisgICAgICAgICogcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xh
c3MgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb24uCisgICAgICAgICogcGFnZS9TY3JvbGxPcHRp
b25zLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmg6IE1ha2UgdGhpcyBzdHJ1Y3QgaW5oZXJp
dHMgZnJvbSBTY3JvbGxPcHRpb25zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVG9PcHRpb25z
OjpTY3JvbGxUb09wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6bm9ybWFsaXplTm9uRmluaXRl
Q29vcmRpbmF0ZXNPckZhbGxCYWNrVG8pOiBDb3B5IHRoZSBjdXJyZW50IFNjcm9sbFRvT3B0aW9u
cyBzbyB0aGF0IHRoZSBzY3JvbGwgYmVoYXZpb3IgaXMgcHJlc2VydmVkLgorICAgICAgICAqIHBh
Z2UvU2Nyb2xsVG9PcHRpb25zLmlkbDogTWFrZSB0aGlzIGNsYXNzIGluaGVyaXQgZnJvbSBTY3Jv
bGxPcHRpb25zLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDogTmV3IHNldHRpbmcgZm9y
IENTU09NIFZpZXcgc21vb3RoIHNjcm9sbGluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaDogSGFuZGxlICdzbW9vdGggc2Nyb2xsaW5nJyBib29sZWFuIGRhdGEuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dXNlU21vb3RoU2Nyb2xsaW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRVc2VTbW9vdGhTY3JvbGxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpj
b252ZXJ0U21vb3RoU2Nyb2xsaW5nKToKKwogMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRo
aWVjaGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4ZWQgUGF0dGVybi5oIGNvbXBpbGUgZXJy
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDBiZmFiZWNhNDMuLmU5NzE0Yzg1
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTE1LDggKzkxNSwxMCBAQCBK
U19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2Fs
bGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvUmVzaXplT2JzZXJ2ZXJFbnRyeS5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JlZW4uaWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2Uv
U2Nyb2xsQmVoYXZpb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5p
ZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TaGFy
ZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvVW5kb0l0ZW0uaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IGVlODllZTNmMGMuLjJmMTc3MjYwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtODE2LDggKzgxNiwxMCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgcGFnZS9SZW1vdGVGcmFtZS5oCiAgICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVs
ZXIuaAogICAgIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisgICAgcGFnZS9TY3JvbGxC
ZWhhdmlvci5oCiAgICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaAogICAgIHBhZ2UvU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmgKKyAgICBwYWdlL1Njcm9sbE9wdGlvbnMuaAogICAgIHBhZ2Uv
U2Nyb2xsVG9PcHRpb25zLmgKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luLmgKICAgICBwYWdlL1Nl
Y3VyaXR5T3JpZ2luRGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGJjYTczY2Y5ZTcuLjNlNjgwNDRm
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNjQ3LDYgKzE2NDcsNyBAQCBwYWdlL1Jlc291cmNlVXNh
Z2VPdmVybGF5LmNwcAogcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAogcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAogcGFnZS9TY3JlZW4uY3BwCitwYWdlL1Njcm9sbEJlaGF2aW9y
LmNwcAogcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNw
cAogcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKQEAgLTE3NTIsNiArMTc1Myw3IEBAIHBsYXRmb3Jt
L1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5jcHAKIHBsYXRmb3JtL1NTTEtleUdlbmVyYXRvci5jcHAKIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmNwcAorcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAKIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Ny
b2xsYmFyLmNwcApAQCAtMzM3Niw4ICszMzc4LDEwIEBAIEpTU1ZHWm9vbUFuZFBhbi5jcHAKIEpT
U1ZHWm9vbUV2ZW50LmNwcAogSlNTY3JlZW4uY3BwCiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
CitKU1Njcm9sbEJlaGF2aW9yLmNwcAogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwCiBKU1Nj
cm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAKK0pTU2Nyb2xsT3B0aW9ucy5jcHAKIEpTU2Nyb2xsVG9P
cHRpb25zLmNwcAogSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNwcAogSlNTZXJ2aWNl
V29ya2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRleCBjMmMyNzA5Yjg3Li41NGI1MzZlZDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzR1RLLnR4dApAQCAtNjMsNyArNjMsNiBAQCBwYWdlL3Njcm9sbGluZy9u
aWNvc2lhL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLmNwcAogcGFnZS9zY3JvbGxpbmcvZ2VuZXJp
Yy9TY3JvbGxpbmdUaHJlYWRHZW5lcmljLmNwcAogCiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25L
aW5ldGljLmNwcAotcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0v
VXNlckFnZW50UXVpcmtzLmNwcAogCiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2Vu
ZXJpYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAwM2U2ZjU0MzNiLi5iYzk5NzA2ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzk3LDYgKzIzOTcs
OCBAQAogCQk4MzQwN0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0MDdG
QzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVF
MDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhENCAvKiBK
U1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVF
QzEgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9s
bEludG9WaWV3T3B0aW9ucy5oICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyog
SlNTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNFOUIzMDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAq
LzsgfTsKKwkJODM0NDc2RUYxREE1QkM1RTAwMkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1
QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVC
QzVFMDAyQjZFRDIgLyogSlNTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Nj
cm9sbFRvT3B0aW9ucy5oICovOyB9OwogCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYgLyogQ2xh
c3NDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzQ4QkZBQTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggKi87IH07
CiAJCTgzNERGQUQwMUY3REFFNUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRERkFDQzFGN0RBRTU2
MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNDUxLDYgKzI0NTMsOCBAQAogCQk4M0M0NUI4RTFE
QzJCNjhBMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZh
bGlkYXRpb25CdWJibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUw
QzNFNzFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMw
MTAwNkY5Qzk3IC8qIFNjcm9sbEludG9WaWV3T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNj
cm9sbEludG9WaWV3T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMz
RTcxREE1OUI2MjAwMzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3
IC8qIFNjcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQx
REE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNj
cm9sbFRvT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTgzRDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICov
OyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmgg
Ki87IH07CkBAIC0xMDE2Nyw5ICsxMDE3MSwxNCBAQAogCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcy
NUIgLyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTaGFyZWRTdHJpbmdIYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8q
IFNjcm9sbEludG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY3JvbGxJbnRvVmlld09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQzNCAvKiBTY3JvbGxCZWhhdmlvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xs
T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYy
MDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcm9sbFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzUwQzNFODFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50
b1ZpZXdPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxJbnRvVmlld09w
dGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNj
cm9sbEJlaGF2aW9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTgx
REE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNjcm9sbE9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUw
QzNFODFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTY3JvbGxUb09wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzUyMEM3RDFBNzFCRkNDMDA2QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NGb250RmFtaWx5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNTY1N0M2MUVDQUIwRTgwMENERTcyRCAvKiBKU0RPTU1hdHJpeElu
aXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXRyaXhJ
bml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjkxLDkgKzEwMzAwLDEz
IEBACiAJCTgzRTk1OUUxMUI4QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1
QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxCZWhhdmlvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxPcHRpb25z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZF
OEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTU2Nyb2xsVG9PcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZG
RDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThFNSAvKiBK
U1Njcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3Jv
bGxPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1
MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1Njcm9sbFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4M0VFNTk4QjFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTk4QzFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JD
YWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDc2OCwxMCArMjA3
ODEsMTUgQEAKIAkJCQlCQ0VDMDFCQTBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmNwcCAqLywK
IAkJCQlCQ0VDMDFCQjBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmggKi8sCiAJCQkJQkNFQzAx
QkMwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2
MjAwMzU2NDM0IC8qIFNjcm9sbEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYy
MDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAz
NTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaWRsICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1
NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCAqLywKIAkJCQk4MzUwQzNFNzFE
QTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCiAJCQkJODM1MEMz
RTgxREE1OUI2MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgKi8sCisJCQkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAqLywKKwkJCQk4MzUw
QzNFODFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwgKi8sCiAJCQkJODM1MEMz
RTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5oICovLAogCQkJCTgzNTBDM0U4
MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMuaWRsICovLAogCQkJCUJDRDBFMEY3
MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgKi8sCkBAIC0yNTU2MywxMCAr
MjU1ODEsMTQgQEAKIAkJCQk1OEIyRkEwMjIyMzJENjBBMDA5MzhENjMgLyogSlNSZXNpemVPYnNl
cnZlckVudHJ5LmggKi8sCiAJCQkJQkNFQzAxQzAwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVu
LmNwcCAqLywKIAkJCQlCQ0VDMDFDMTBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCAqLywK
KwkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAgKi8s
CisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLywK
IAkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkQ4RTUgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMu
Y3BwICovLAogCQkJCTgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3
T3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExv
Z2ljYWxQb3NpdGlvbi5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpT
U2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCisJCQkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5jcHAgKi8sCisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThGNiAv
KiBKU1Njcm9sbFRvT3B0aW9ucy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2
IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi8sCiAJCQkJN0M3M0ZCMEYxOTFFRjZGNDAwN0RFMDYx
IC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLywKQEAgLTMwOTEyLDggKzMwOTM0LDEwIEBA
CiAJCQkJNUUyQzQzNkMxQkNGMDcxRTAwMDFFMkJDIC8qIEpTUlRDVHJhY2tFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNFQzAxQzMwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVDRTEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9j
ZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAg
LyogSlNTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYxREE1QkM1
RTAwMkI1RUMxIC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVDMSAvKiBKU1Njcm9sbE9w
dGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBK
U1Njcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VEMDZBRDExQzc3NzU0ODAw
RkRGQUYxIC8qIEpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE4MkMyNTYxRjMxNDNDRDAwNTlCQTdDIC8qIEpTU2VydmljZVdvcmtlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMjExNyw2ICszMjE0MSw3IEBACiAJCQkJNDRDOTkxODYwRjNEMUVCRTAw
NTg2NjcwIC8qIFNjcm9sbGJhclRoZW1lSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCODUz
RTBFN0M3RjExMDBBQjY5ODQgLyogU2Nyb2xsYmFyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTcxNDA2MTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suaCBpbiBI
ZWFkZXJzICovLAorCQkJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBODRGMDUxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9s
bENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjA1QUVEMTVGOTQ4NDgwMDRERjBD
MCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNjJFRTgx
NERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTMyMTUzLDYgKzMyMTc4LDcgQEAKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyog
U2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUFGRThEMDE5Q0I4
NjcyMDAwRjU2RDggLyogU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODNDNTc5NUQxREE1QzMwMTAwNkY5Qzg2IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUY0Nzg3NTU0MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ2NzI5MjgxRTBERTY4NTAw
QUNDM0Q4IC8qIFNjcm9sbFNuYXBPZmZzZXRzSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
NTc5NUQxREE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwCmluZGV4IDFjNGUzNmYxNDkuLmQ0YWJmMjNiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMzkzLDYgKzMzOTMs
MTAgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclBy
b3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwogICAgICAgICAg
ICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVUb3Vj
aCk7CiAjZW5kaWYKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2aW9yOgorICAg
ICAgICAgICAgaWYgKCFzdHlsZS51c2VTbW9vdGhTY3JvbGxpbmcoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8p
OworICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVTbW9vdGgpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGVyc3BlY3RpdmU6CiAg
ICAgICAgICAgICBpZiAoIXN0eWxlLmhhc1BlcnNwZWN0aXZlKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IDQxNTc4YTk0ZWQuLmY5ODJk
M2Y1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzU1Nyw2ICsz
NTU3LDE2IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIv
U1ZHL3NoYXBlcy5odG1sIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Ny
b2xsLWJlaGF2aW9yIjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAg
ICAiYXV0byIsCisgICAgICAgICAgICAgICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
Y3Nzb20tdmlldyIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9
CisgICAgICAgIH0sCiAgICAgICAgICJzaGFwZS1yZW5kZXJpbmciOiB7CiAgICAgICAgICAgICAi
aW5oZXJpdGVkIjogdHJ1ZSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCkBAIC02NDg5LDYgKzY0
OTksMjIgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9j
c3MtdWktNC8jcHJvcGRlZi11c2VyLXNlbGVjdCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwK
KyAgICAgICAgInNjcm9sbC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisg
ICAgICAgICAgICAgICAgImF1dG8iLAorICAgICAgICAgICAgICAgICJzbW9vdGgiCisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAg
ICAgICAiY29udmVydGVyIjogIlNtb290aFNjcm9sbGluZyIsCisgICAgICAgICAgICAgICAgIm5h
bWUtZm9yLW1ldGhvZHMiOiAiVXNlU21vb3RoU2Nyb2xsaW5nIgorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJleHBlcmlt
ZW50YWwiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7Cisg
ICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAg
ICAgICAgICJzY3JvbGwtcGFkZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRp
ZXMiOiB7CiAgICAgICAgICAgICAgICAgImVuYWJsZS1pZiI6ICJFTkFCTEVfQ1NTX1NDUk9MTF9T
TkFQIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggOGRmZTNhYmIy
MS4uZGE4MjY5ZTYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAg
LTEzODgsNiArMTM4OCwxMCBAQCBwYW4teQogcGluY2gtem9vbQogI2VuZGlmCiAKKy8vIHNjcm9s
bC1iZWhhdmlvcgorLy8gYXV0bworc21vb3RoCisKIC8vIGhhbmdpbmctcHVuY3R1YXRpb24KIGFs
bG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNv
bnRleHQuY3BwCmluZGV4IDc1MzcxODhjYjkuLjcxZjlhYTYyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcApAQCAtNzUsNiArNzUsNyBAQCBD
U1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgVVJMJiBzaGVldEJhcwogICAgIGF0dGFjaG1lbnRFbmFibGVkID0gUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQo
KTsKICNlbmRpZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRp
bmdzKCkuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CisgICAgc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
KCk7CiAgICAgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IGRvY3VtZW50LnBhZ2UoKSA/IGRvY3VtZW50
LnBhZ2UoKS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpIDogZmFsc2U7CiB9CiAKQEAgLTk5LDYgKzEw
MCw3IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBD
U1NQYXJzZXJDb250ZXh0JiBiKQogICAgICAgICAmJiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIu
YXR0YWNobWVudEVuYWJsZWQKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2Vy
RW5hYmxlZCA9PSBiLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAorICAgICAgICAmJiBhLnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCA9PSBiLnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBh
Lmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
CiAgICAgICAgICYmIGEudXNlU3lzdGVtQXBwZWFyYW5jZSA9PSBiLnVzZVN5c3RlbUFwcGVhcmFu
Y2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmlu
ZGV4IDg2NTI1ZmQ3MGMuLmM3NGRjOTRjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBib29s
IGF0dGFjaG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRD
U1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0
IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4g
eyBmYWxzZSB9OwpAQCAtMTE2LDcgKzExNyw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFz
aCB7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAgICAgICYga2V5LmF0
dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYKLSAg
ICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDEyCisgICAgICAgICAgICAmIGtleS5t
b2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0
aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJpdHMpOwogICAgICAgICBy
ZXR1cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckZhc3RQYXRocy5jcHAKaW5kZXggMzFkMTJhYjlhYi4uNDIxMjg4OWVkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtNjM2
LDEwICs2MzYsNiBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9w
ZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZAogICAgICAgICAgICAgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVN0aWNreSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0U3RpY2t5
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6IC8vIG5vbmUgfCBib3RoIHwgaG9yaXpvbnRh
bCB8IHZlcnRpY2FsIHwgYXV0bwogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5v
bmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJvdGggfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUhvcml6
b250YWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVZlcnRpY2FsIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvOwotICAgIC8vIEZJWE1FLU5FV1BBUlNFUjogSW52ZXN0aWdhdGUgdGhpcyBwcm9wZXJ0
eS4KLSAgICAvLyBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsQmVoYXZpb3I6IC8vIGF1dG8gfCBzbW9v
dGgKLSAgICAvLyAgICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmNzc29tU21vb3Ro
U2Nyb2xsRW5hYmxlZCgpKTsKLSAgICAvLyAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0
byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU21vb3RoOwogICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFw
ZVJlbmRlcmluZzoKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDcmlz
cGVkZ2VzIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVHZW9tZXRyaWNQcmVjaXNpb247CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVqb2luOgpAQCAtOTM5LDcgKzkzNSw2IEBAIGJvb2wgQ1NT
UGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJZCkKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5Rm9udEtlcm5pbmc6CiAgICAgLy8gY2FzZSBD
U1NQcm9wZXJ0eUh5cGhlbnM6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93QW5jaG9y
OgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKICAgICAvLyBjYXNlIENT
U1Byb3BlcnR5U2Nyb2xsU25hcFR5cGU6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGln
bkxhc3Q6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRDb21iaW5lVXByaWdodDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggZWJk
MGVhZjVmNi4uNjNmNWFiNTJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTIzMjcsNiArMjMyNywxNCBAQCBzdGF0aWMgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlKQogCiAjZW5kaWYKIAorc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29u
c3VtZVNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1
dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5pZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENTU1Zh
bHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlU21vb3RoKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3RhdGljIFJlZlB0
cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChyYW5n
ZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTM5MjcsNiArMzkz
NSwxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZh
bHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3Jv
bGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxTbmFwVHlwZShtX3Jhbmdl
KTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKKyAgICAgICAg
aWYgKCFtX2NvbnRleHQuc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVybiBjb25zdW1lQ2xpcCht
X3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDcwZDllMWIwYWUuLmJlNWE4NTI2YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTgzMiw3ICs4MzIsNiBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9W
aWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgog
ICAgIGJvb2wgaW5zaWRlRml4ZWQ7CiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJvdW5kcyA9IHJl
bmRlcmVyKCktPmFic29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwogCi0gICAgLy8gRklY
TUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCiAgICAgU2Ny
b2xsSW50b1ZpZXdPcHRpb25zIG9wdGlvbnM7CiAgICAgaWYgKGFyZykgewogICAgICAgICBhdXRv
IHZhbHVlID0gYXJnLnZhbHVlKCk7CkBAIC04NTEsNyArODUwLDggQEAgdm9pZCBFbGVtZW50Ojpz
Y3JvbGxJbnRvVmlldyhPcHRpb25hbDxWYXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9u
cz4+JiYgYXIKICAgICAgICAgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLAogICAgICAgICBp
c0hvcml6b250YWwgPyBhbGlnblggOiBhbGlnblksCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFs
aWduWSA6IGFsaWduWCwKLSAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6
Tm8KKyAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8sCisgICAgICAg
IG9wdGlvbnMuYmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0bykKICAgICB9Owog
ICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYWJzb2x1dGVCb3VuZHMsIGluc2lk
ZUZpeGVkLCB2aXNpYmxlT3B0aW9ucyk7CiB9CkBAIC05MTIsNyArOTEyLDcgQEAgdm9pZCBFbGVt
ZW50OjpzY3JvbGxCeShjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMpCiAKIHZvaWQgRWxl
bWVudDo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIHNjcm9sbEJ5KHsgeCwg
eSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMoeCwgeSkpOwogfQogCiB2b2lkIEVs
ZW1lbnQ6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpCkBAIC05NDgsMTMgKzk0OCwxNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9s
bFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBp
bmcpCiAgICAgICAgIGFkanVzdEZvckFic29sdXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsTGVmdCgp
LCAqcmVuZGVyZXIpLAogICAgICAgICBhZGp1c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVyZXItPnNj
cm9sbFRvcCgpLCAqcmVuZGVyZXIpCiAgICAgKTsKLSAgICByZW5kZXJlci0+c2V0U2Nyb2xsTGVm
dChjbGFtcFRvSW50ZWdlcihzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXIt
PnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFt
cGluZyk7Ci0gICAgcmVuZGVyZXItPnNldFNjcm9sbFRvcChjbGFtcFRvSW50ZWdlcihzY3JvbGxU
b09wdGlvbnMudG9wLnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKKyAgICBJbnRQb2ludCBzY3Jv
bGxQb3NpdGlvbigKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLmxlZnQu
dmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksCisgICAgICAgIGNs
YW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSkKKyAgICApOworICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9v
dGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZp
b3I6OkF1dG8pLCAqdGhpcyk7CisgICAgcmVuZGVyZXItPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkLCBjbGFtcGluZyk7
CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAg
IHNjcm9sbFRvKHsgeCwgeSB9KTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSkp
OwogfQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5VW5pdHMoaW50IHVuaXRzLCBTY3JvbGxHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKQEAgLTEyODgsMTMgKzEyOTIsMTkgQEAgdm9pZCBFbGVtZW50
OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0KQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxp
bmdFbGVtZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVu
dEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRT
Y3JvbGxQb3NpdGlvbihJbnRQb2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmll
dygpLT5zY3JvbGxZKCkpKTsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFt
ZVdpdGhOb25OdWxsVmlldygpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVz
ZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAvLyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQorICAgICAgICAgICAg
Ym9vbCBhbmltYXRlZCA9IGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3Ro
U2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1l
bnQoKSk7CisgICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQ
b2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAq
IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmlldygpLT5zY3JvbGxZKCkpLCBh
bmltYXRlZCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChh
dXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKSB7Ci0gICAgICAgIHJlbmRlcmVyLT5zZXRTY3Jv
bGxMZWZ0KHN0YXRpY19jYXN0PGludD4obmV3TGVmdCAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVj
dGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyk7CisgICAgICAgIGludCBjbGFt
cGVkTGVmdCA9IGNsYW1wVG9JbnRlZ2VyKG5ld0xlZnQgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZl
Y3RpdmVab29tKCkpOworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5n
KFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3Jv
bGxMZWZ0KGNsYW1wZWRMZWZ0LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkKTsK
ICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVyKCkpCiAg
ICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3Rh
dGUodHJ1ZSk7CiAgICAgfQpAQCAtMTMwNSwxMyArMTMxNSwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNl
dFNjcm9sbFRvcChpbnQgbmV3VG9wKQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVt
ZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1l
V2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQ
b3NpdGlvbihJbnRQb2ludChmcmFtZS0+dmlldygpLT5zY3JvbGxYKCksIHN0YXRpY19jYXN0PGlu
dD4obmV3VG9wICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZh
Y3RvcigpKSkpOworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5v
bk51bGxWaWV3KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3Vt
ZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICBib29sIGFu
aW1hdGVkID0gZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxp
bmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICpkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsK
KyAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZy
YW1lLT52aWV3KCktPnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKSwgYW5pbWF0ZWQp
OworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoYXV0byogcmVu
ZGVyZXIgPSByZW5kZXJCb3goKSkgewotICAgICAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKHN0
YXRpY19jYXN0PGludD4obmV3VG9wICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgp
KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKKyAgICAgICAgaW50IGNsYW1wZWRUb3AgPSBj
bGFtcFRvSW50ZWdlcihuZXdUb3AgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
OworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2
aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3AoY2xhbXBl
ZFRvcCwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7CiAgICAgICAgIGlmIChh
dXRvKiBzY3JvbGxhYmxlQXJlYSA9IHJlbmRlcmVyLT5sYXllcigpKQogICAgICAgICAgICAgc2Ny
b2xsYWJsZUFyZWEtPnNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKHRydWUpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAwNTY4YjA2OWRjLi4yOGI0NjVmMGRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNTk1LDcgKzE1OTUsNyBAQCBkb3Vi
bGUgRE9NV2luZG93OjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIAogdm9pZCBET01XaW5kb3c6
OnNjcm9sbEJ5KGRvdWJsZSB4LCBkb3VibGUgeSkgY29uc3QKIHsKLSAgICBzY3JvbGxCeSh7IHgs
IHkgfSk7CisgICAgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKHgsIHkpKTsKIH0KIAogdm9pZCBE
T01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QK
QEAgLTE2MTcsMTAgKzE2MTcsMTAgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNj
cm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QKIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbFRv
KGRvdWJsZSB4LCBkb3VibGUgeSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpIGNvbnN0CiB7Ci0g
ICAgc2Nyb2xsVG8oeyB4LCB5IH0sIGNsYW1waW5nKTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09w
dGlvbnMoeCwgeSksIGNsYW1waW5nKTsKIH0KIAotdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNv
bnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0Cit2b2lk
IERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3Jv
bGxDbGFtcGluZyBjbGFtcGluZykgY29uc3QKIHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxh
eWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNjMzLDEyICsxNjMzLDIyIEBAIHZv
aWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMsIFNj
cm9sbENsYW1waW5nKSBjb25zdAogICAgICAgICB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9u
KCkueCgpLCB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkueSgpCiAgICAgKTsKIAotICAg
IGlmICghc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Nyb2xsVG9PcHRpb25zLnRv
cC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKSA9PSBJbnRQb2ludCgw
LCAwKSkKKyAgICAvLyBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiBmb3IgdGhlIGNvbW1vbiBjYXNl
IG9mIHNjcm9sbGluZyB0byAoMCwgMCkgd2hlbiB0aGUgc2Nyb2xsZXIgaXMgYWxyZWFkeSBhdCB0
aGUgb3JpZ2luLgorICAgIC8vIElmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcywg
dGhpcyBvcHRpbWl6YXRpb24gaXMgc2tpcHBlZCB0byBlbnN1cmUgdGhhdCB0aGUgYW5pbWF0ZWQg
c2Nyb2xsIGlzIHJlYWxseSBzdG9wcGVkLgorICAgIGlmICh2aWV3LT5jdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYg
IXNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkgJiYgIXNjcm9sbFRvT3B0aW9ucy50b3AudmFs
dWUoKSAmJiB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkgPT0gSW50UG9pbnQoMCwgMCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgSW50UG9pbnQgbGF5b3V0UG9zKHZpZXctPm1hcEZy
b21DU1NUb0xheW91dFVuaXRzKHNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkpLCB2aWV3LT5t
YXBGcm9tQ1NTVG9MYXlvdXRVbml0cyhzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkpKTsKKwor
ICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQo
KT8KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTA1OQorICAgIGlmIChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhT
Y3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6
OkF1dG8pLCAqZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkpKSB7CisgICAgICAgIHZpZXct
PnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihsYXlvdXRQb3MsIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYywgY2xhbXBpbmcpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgdmlldy0+
c2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihsYXlvdXRQb3MpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggMDQwMTJmOWVmZi4uNzMxZTMyMjk5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMjI3OSw3ICsyMjc5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9s
bEVsZW1lbnRUb1JlY3QoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKICAgICBzZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChib3VuZHMueCgpIC0gY2VudGVyaW5n
T2Zmc2V0WCAtIHJlY3QueCgpLCBib3VuZHMueSgpIC0gY2VudGVyaW5nT2Zmc2V0WSAtIHJlY3Qu
eSgpKSk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sIGFuaW1hdGVk
KQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRnJhbWVWaWV3
OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uIDw8ICIgLCBjbGVhcmluZyBh
bmNob3IiKTsKIApAQCAtMjI5Miw3ICsyMjkyLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAgICAgUGFn
ZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwogICAgIGlmIChwYWdlICYmIHBhZ2UtPmlzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKCkpCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVu
dFRlc3RNb25pdG9yKHBhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKLSAgICBTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgaWYgKGFuaW1hdGVk
KQorICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBv
c2l0aW9uKHNjcm9sbFBvc2l0aW9uKSwgY3VycmVudFNjcm9sbFR5cGUoKSk7CisgICAgZWxzZQor
ICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CiAK
ICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShvbGRTY3JvbGxUeXBlKTsKIH0KQEAgLTM2NjAsNiAr
MzY2MywyNiBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24m
IG5ld1Bvc2l0aW9uKQogICAgIGRpZENoYW5nZVNjcm9sbE9mZnNldCgpOwogfQogCit2b2lkIEZy
YW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYg
b2Zmc2V0LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQoreworICAgIGF1
dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAg
c2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygp
ID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAg
c2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CisgICAgaWYgKG9mZnNldCAhPSB0
aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zm
c2V0V2l0aEFuaW1hdGlvbihvZmZzZXQpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZp
b3VzU2Nyb2xsVHlwZSk7Cit9CisKIGZsb2F0IEZyYW1lVmlldzo6YWRqdXN0U2Nyb2xsU3RlcEZv
ckZpeGVkQ29udGVudChmbG9hdCBzdGVwLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKGdyYW51bGFyaXR5
ICE9IFNjcm9sbEJ5UGFnZSB8fCBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggZTM2Zjk5NjgwNC4uYjM3ZjA2MGUzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0yMjMsNyArMjIzLDcgQEAgcHVibGljOgogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpeGVkVmlz
aWJsZUNvbnRlbnRSZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICNlbmRpZgotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBm
aW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNj
cm9sbFBvc2l0aW9uJiwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIHJl
c3RvcmVTY3JvbGxiYXIoKTsKICAgICB2b2lkIHNjaGVkdWxlU2Nyb2xsVG9Gb2N1c2VkRWxlbWVu
dChTZWxlY3Rpb25SZXZlYWxNb2RlKTsKICAgICB2b2lkIHNjcm9sbFRvRm9jdXNlZEVsZW1lbnRJ
bW1lZGlhdGVseUlmTmVlZGVkKCk7CkBAIC02NTksNiArNjU5LDggQEAgcHVibGljOgogCiAgICAg
dm9pZCByZW5kZXJMYXllckRpZFNjcm9sbChjb25zdCBSZW5kZXJMYXllciYpOwogCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xs
T2Zmc2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xh
bXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisKIHByb3RlY3RlZDoKICAgICBib29s
IHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwog
ICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNGVkMjljYjQyYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEJlaGF2aW9yLmgiCisKKyNpbmNsdWRlICJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29s
IHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvciBiZWhhdmlvciwgRWxlbWVudCYgYXNz
b2NpYXRlZEVsZW1lbnQpCit7CisgICAgaWYgKCFhc3NvY2lhdGVkRWxlbWVudC5kb2N1bWVudCgp
LnNldHRpbmdzKCkuQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCgpIHx8ICFhc3NvY2lh
dGVkRWxlbWVudC5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nCisgICAgc3dpdGNo
IChiZWhhdmlvcikgeworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OkF1dG86CisgICAgICAgIHJl
dHVybiBhc3NvY2lhdGVkRWxlbWVudC5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZVNtb290aFNjcm9s
bGluZygpOworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQ6CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBjYXNlIFNjcm9sbEJlaGF2aW9yOjpTbW9vdGg6CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVo
YXZpb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xYmFlZjg4MWU4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5o
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxl
bWVudDsKKworZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIEF1dG8g
PSAwLAorICAgIEluc3RhbnQsCisgICAgU21vb3RoCit9OworCitib29sIHVzZVNtb290aFNjcm9s
bGluZyhTY3JvbGxCZWhhdmlvciwgRWxlbWVudCYgYXNzb2NpYXRlZEVsZW1lbnQpOworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9s
bEJlaGF2aW9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjg5NzFhZTkzN2EKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmlkbApAQCAtMCww
ICsxLDI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K2VudW0gU2Nyb2xsQmVoYXZpb3IgeyAiYXV0byIsICJpbnN0YW50IiwgInNtb290aCIgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oCmluZGV4IDkzOWNkNzM0
MjUuLmYyNzVmMmZiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50
b1ZpZXdPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09w
dGlvbnMuaApAQCAtMjAsMTIgKzIwLDExIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNj
cm9sbExvZ2ljYWxQb3NpdGlvbi5oIgorI2luY2x1ZGUgIlNjcm9sbE9wdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBFbGVtZW50OwotCi1zdHJ1Y3QgU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zIHsKK3N0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnMgOiBTY3JvbGxPcHRpb25z
IHsKICAgICBPcHRpb25hbDxTY3JvbGxMb2dpY2FsUG9zaXRpb24+IGJsb2NrUG9zaXRpb24geyBT
Y3JvbGxMb2dpY2FsUG9zaXRpb246OlN0YXJ0IH07CiAgICAgT3B0aW9uYWw8U2Nyb2xsTG9naWNh
bFBvc2l0aW9uPiBpbmxpbmVQb3NpdGlvbiB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6TmVhcmVz
dCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlk
bAppbmRleCBjZjlkMWZkNzY3Li4xYjI0YzY4NmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsCkBAIC0xNyw4ICsxNyw3IEBACiAgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQz
KTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRp
b25zIHsKK2RpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7
CiAgICAgW0ltcGxlbWVudGVkQXM9YmxvY2tQb3NpdGlvbl0gU2Nyb2xsTG9naWNhbFBvc2l0aW9u
IGJsb2NrID0gInN0YXJ0IjsKICAgICBbSW1wbGVtZW50ZWRBcz1pbmxpbmVQb3NpdGlvbl0gU2Ny
b2xsTG9naWNhbFBvc2l0aW9uIGlubGluZSA9ICJuZWFyZXN0IjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2Nyb2xsT3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmUx
ODY3YzYwMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9w
dGlvbnMuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU2Nyb2xsT3B0aW9ucyB7CisgICAg
T3B0aW9uYWw8U2Nyb2xsQmVoYXZpb3I+IGJlaGF2aW9yIHsgU2Nyb2xsQmVoYXZpb3I6OkF1dG8g
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9w
dGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMyOWQ2ZmYx
MDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMu
aWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworZGljdGlvbmFyeSBTY3JvbGxPcHRpb25zIHsKKyAgICBTY3JvbGxCZWhhdmlv
ciBiZWhhdmlvciA9ICJhdXRvIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Njcm9sbFRvT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMu
aAppbmRleCBjZTFjYmExYzdjLi5mNTc3NGQ0NGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xs
VG9PcHRpb25zLmgKQEAgLTI4LDE0ICsyOCwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIlNjcm9sbE9wdGlvbnMuaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgU2Nyb2xsVG9PcHRpb25z
IHsKK3N0cnVjdCBTY3JvbGxUb09wdGlvbnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBPcHRpb25h
bDxkb3VibGU+IGxlZnQ7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiB0b3A7CisKKyAgICBTY3JvbGxU
b09wdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAgU2Nyb2xsVG9PcHRpb25zKGRvdWJsZSB4LCBkb3Vi
bGUgeSkKKyAgICAgICAgOiBsZWZ0KHgpCisgICAgICAgICwgdG9wKHkpCisgICAgeyB9CiB9Owog
CiBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlv
bmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZSBmYWxsYmFja1ZhbHVlKQpAQCAtNDcsNyArNTQsNyBA
QCBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlv
bmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZQogLy8gRklYTUUoaHR0cHM6Ly93ZWJraXQub3JnL2Iv
ODgzMzkpOiBDb25zaWRlciB1c2luZyBGbG9hdFBvaW50IG9yIERvdWJsZVBvaW50IGZvciBmYWxs
YmFjayBhbmQgcmV0dXJuIHZhbHVlcy4KIGlubGluZSBTY3JvbGxUb09wdGlvbnMgbm9ybWFsaXpl
Tm9uRmluaXRlQ29vcmRpbmF0ZXNPckZhbGxCYWNrVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiB2
YWx1ZSwgZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25z
OworICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zID0gdmFsdWU7CiAgICAgb3B0aW9ucy5sZWZ0
ID0gbm9ybWFsaXplTm9uRmluaXRlVmFsdWVPckZhbGxCYWNrVG8odmFsdWUubGVmdCwgeCk7CiAg
ICAgb3B0aW9ucy50b3AgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tUbyh2YWx1
ZS50b3AsIHkpOwogICAgIHJldHVybiBvcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxU
b09wdGlvbnMuaWRsCmluZGV4IDUxMGJjMDcxYTYuLjJiOWI1NTQxMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKQEAgLTI2LDggKzI2LDcgQEAKICAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotLy8gRklYTUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVo
YXZpb3IuCi1kaWN0aW9uYXJ5IFNjcm9sbFRvT3B0aW9ucyB7CitkaWN0aW9uYXJ5IFNjcm9sbFRv
T3B0aW9ucyA6IFNjcm9sbE9wdGlvbnMgewogICAgIHVucmVzdHJpY3RlZCBkb3VibGUgbGVmdDsK
ICAgICB1bnJlc3RyaWN0ZWQgZG91YmxlIHRvcDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlh
bWwKaW5kZXggYjMyOWYxMjQ3OS4uMWQ3OWY0NTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbApAQCAtNjIyLDYgKzYyMiw5IEBAIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6
CiBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCitDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBpbnB1dEV2
ZW50c0VuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRl
eCA0MjllZWU5YTk2Li4wMmQ1ODk3NTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4
LDcgKzI0OCwxNiBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tG
b3J3YXJkQ2FjaGUgPSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRD
YWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29s
IGluUHJvZ3JhbW1hdGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUo
KSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Ny
b2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRp
b24gPSBpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisKKyAgICBi
b29sIGFuaW1hdGVkID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhbmlt
YXRlZCA9IHNjcm9sbGFibGVBcmVhLmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSA9PSBTY3Jv
bGxCZWhhdmlvclR5cGU6OlNtb290aDsKKyAgICAvLyBUaGUgc2Nyb2xsIHBvc2l0aW9uIG9mIGFu
aW1hdGVkIHNjcm9sbGluZyB3aWxsIGJlIHNldCBieSB0aGUgVUkgcHJvY2Vzcy4gU28gc2hvdWxk
bid0IHNldCBpdCBub3cuCisgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSAhYW5pbWF0ZWQgJiYg
dXBkYXRlU2Nyb2xsUG9zaXRpb247CisjZW5kaWYKKyAgICBpZiAodXBkYXRlU2Nyb2xsUG9zaXRp
b24pCiAgICAgICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3JvbGxp
bmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCB7IH0sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIAogICAgIC8vIElmIHRoaXMgZnJh
bWUgdmlldydzIGRvY3VtZW50IGlzIGJlaW5nIHB1dCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUsIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIG91cgpAQCAtMjYwLDcgKzI2OSwxMiBAQCBib29s
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShT
Y3JvbGxhYmxlQXJlYSYgc2NybwogICAgIGlmICghc3RhdGVOb2RlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBhdXRvIHN0YXR1cyA9IGFuaW1hdGVkID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Oklu
TmF0aXZlQW5pbWF0aW9uIDogU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOwor
ICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKHN0YXR1cyk7CisjZW5k
aWYKKworICAgIHN0YXRlTm9kZS0+c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9z
aXRpb24sIGluUHJvZ3JhbW1hdGljU2Nyb2xsLCBhbmltYXRlZCk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTI5MSw2ICszMDUsMzIgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBt
X3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29s
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGZy
YW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZy
YW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXct
PnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhT
Y3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9s
bGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQobm9k
ZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAg
ICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhh
dmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5ub2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBk
YXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9y
dE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRl
TGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4u
M2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3lu
Y1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25h
bDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhT
Y3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWxJbmRleCwgdW5zaWduZWQgdmVydGlj
YWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3MTdiZmMyYTU1Li40ZTQw
MTRlOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29u
c3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
V2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0
aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2Rl
LmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0yMTksMTAgKzIyMiwxNSBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0
IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFt
cyk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwg
Ym9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlvbikKIHsKICAgICBtX3JlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgbV9yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gPSByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0ocmVxdWVzdGVkV2l0aEFuaW1hdGlvbik7CisjZW5kaWYKICAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQogCkBAIC0z
MTQsNiArMzIyLDExIEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJv
cGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUCiAgICAgaWYgKG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogICAgICAgICB0
cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gcmVwcmVzZW50cyBwcm9n
cmFtbWF0aWMgc2Nyb2xsIiwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisgICAgICAgIHRzLmR1bXBQcm9w
ZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB3aXRoIGFuaW1hdGlvbiIsIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3Bh
cmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICB0cy5kdW1wUHJv
cGVydHkoInBhcmVudCByZWxhdGl2ZSBzY3JvbGxhYmxlIHJlY3QiLCBtX3BhcmVudFJlbGF0aXZl
U2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDQ5NjdhNmNlODEu
LjZjNjkyYzFkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xMTEsNyArMTExLDEwIEBA
IHB1YmxpYzoKIAogICAgIGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsgfQogICAgIGJvb2wg
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgY29u
c3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGw7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHJlcXVlc3RlZFdpdGhBbmltYXRpb24pOwogCiAg
ICAgYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faXNNb25p
dG9yaW5nV2hlZWxFdmVudHM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKGJvb2wpOwpAQCAtMTcxLDYgKzE3NCw5IEBAIHByaXZhdGU6CiAgICAg
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogCiAg
ICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCB7IGZhbHNlIH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgogICAg
IGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggMTUxYWMyOWY4
YS4uN2FkZGZlZjRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaApAQCAtODIsOCArODIsMTMgQEAgcHVibGljOgogICAgIC8vIFVwZGF0ZXMgRnJh
bWVWaWV3L1JlbmRlckxheWVyIHNjcm9sbGluZyBzdGF0ZSBhbmQgR3JhcGhpY3NMYXllcnMuCiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlJiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb246OlN5bmMpID0gMDsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgLy8gQ2FsbGVkIGZvciBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cyB1cGRhdGVzLgorICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgLyppc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MqLykgeyB9CisjZW5kaWYKKwogICAgIC8vIENhbGxlZCBmb3IgcmVxdWVz
dGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzLgotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
LypzY3JvbGxQb3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCov
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChT
Y3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9zaXRpb24qLywgYm9v
bCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLywgYm9vbCAvKndpdGhBbmltYXRpb24q
LyA9IGZhbHNlKSB7IH0KIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxpbmcvem9vbWluZyBoYXMg
Y2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2aWV3cG9ydC1jb25zdHJh
aW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5GcmFtZVZpZXdwb3J0Q2hh
bmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwgZG91YmxlIHNjYWxl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYxLi4xN2M3ZjJhOGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3LDEyIEBAIHZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Ny
b2xsaW5nU3RhdGVOCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCiB7CiAg
ICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3JvbGxpbmdTdGF0ZU5vZGUg
PSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CisgICAg
Ym9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICB3aXRoQW5pbWF0aW9uID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uV2l0aEFuaW1hdGlvbigpOworI2VuZGlmCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbikpCi0gICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyAgICAgICAgc2Nyb2xs
aW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlE
KCksIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxp
bmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsKCksIHdpdGhBbmltYXRpb24pOwogCiAgICAgbV9pc0ZpcnN0Q29tbWl0ID0gZmFsc2U7
CiB9CkBAIC0xNTcsMjEgKzE2MSw0MSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBTY3JvbGxQb3NpdGlvbgogICAgIHNj
cm9sbFRvKGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpICsgZGVsdGEsIFNjcm9sbFR5cGU6OlVzZXIs
IGNsYW1wKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8o
Y29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
UG9zaXRpb25DbGFtcCBjbGFtcCkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNj
cm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUs
IFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXAsIGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbikK
IHsKLSAgICBpZiAocG9zaXRpb24gPT0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24pCisgICAgaWYg
KHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSB7CisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAgICAgLy8gU2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIg
cHJvY2Vzcy4KKyAgICAgICAgaWYgKHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpICYmIG5lZWRTeW5j
U2Nyb2xsUG9zaXRpb24pCisgICAgICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwoKnRoaXMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMp
OworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uoc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAg
ICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGZhbHNlKTsKKyNlbHNlCisgICAgICAgIFVOVVNF
RF9QQVJBTShuZWVkU3luY1Njcm9sbFBvc2l0aW9uKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47
CisgICAgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBJZiBkdXJpbmcgYSBz
Y3JvbGwgYW5pbWF0aW9uLCBuZWVkIHRvIHN0b3AgaXQgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9u
ZS4KKyAgICBpZiAoc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpKQorICAgICAgICBzZXROZWVk
c1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKHRydWUpOworI2VuZGlmCiAgICAgc2Nyb2xsaW5n
VHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Nyb2xsVHlwZSA9PSBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMpOwotICAgIAorCiAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRp
b24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7Ci0gICAgCisKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBzY3JvbGxUbyAiIDw8IHBvc2l0
aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFzdCBjb21taXR0ZWQgcG9zaXRpb24gIiA8PCAobV9sYXN0
Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gLSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgPDwgIiki
KTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CiAgICAg
Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNl
dElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOworCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGZhbHNlKTsK
KyAgICBzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoZmFsc2UpOworI2VuZGlmCiB9CiAKIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQo
KQpAQCAtMTc5LDYgKzIwMywxMCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpj
dXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKICAgICByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5
ZXJzKCk7CiAgICAgcmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKTsKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgaWYgKCFyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSkKKyAgICAgICAgcmV0
dXJuOworI2VuZGlmCiAgICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlmeVJlbGF0ZWROb2Rlc0FmdGVy
U2Nyb2xsUG9zaXRpb25DaGFuZ2UoKnRoaXMpOwogICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcyk7CiB9CkBAIC0yNjYsNiArMjk0LDM3IEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRz
LCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAgdHMuZHVtcFByb3BlcnR5KCJzY3JvbGxhYmxlIGFyZWEg
cGFyYW1ldGVycyIsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKTsKIH0KIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1
ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCBhbmltYXRlZCkKK3sKKyAgICBtX3JlcXVlc3RBbmltYXRl
ZFNjcm9sbCA9IGFuaW1hdGVkOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3RB
bmltYXRlZFNjcm9sbDsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sIGluUHJvZ3Jlc3MpCit7CisgICAgbV9zY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzID0gaW5Qcm9ncmVzczsKK30KKworYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzczsKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihi
b29sIHN0b3ApCit7CisgICAgbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uID0gc3Rv
cDsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbjsKK30KKyNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4
IDRjYmY0ZDFhZjAuLmY5ZjMxMGRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNjAsNyAr
NjAsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gLSBtX2xhc3RDb21taXR0
ZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8gVGhlc2UgYXJlIGltcGVyYXRpdmU7IHRoZXkg
YWRqdXN0IHRoZSBzY3JvbGxpbmcgbGF5ZXJzLgotICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxv
YXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlvbkNs
YW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOworICAgIHZvaWQgc2Ny
b2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBT
Y3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMs
IGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiA9IGZhbHNlKTsKICAgICB2b2lkIHNjcm9sbEJ5
KGNvbnN0IEZsb2F0U2l6ZSYsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNs
YW1wOjpUb0NvbnRlbnRFZGdlcyk7CiAKICAgICB2b2lkIHdhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRT
Y3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UmVjdD4g
b3ZlcnJpZGVMYXlvdXRWaWV3cG9ydCA9IHsgfSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpOwpAQCAtOTEsNiArOTEsMTUg
QEAgcHVibGljOgogICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbENvbnRhaW5l
ckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxDb250YWluZXJMYXllcjsgfQogICAgIGNv
bnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbGVkQ29udGVudHNMYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIHZvaWQgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wpOworICAgIGJvb2wg
cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKGJvb2wpOworICAgIGJvb2wgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygp
IGNvbnN0OworICAgIHZvaWQgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29s
KTsKKyAgICBib29sIG5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUoU2Nyb2xs
aW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCkBAIC0xNDgs
NiArMTU3LDEyIEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogICAgIGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9
OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVxdWVzdEFuaW1hdGVk
U2Nyb2xsIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB7
IGZhbHNlIH07CisgICAgYm9vbCBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24geyBm
YWxzZSB9OworI2VuZGlmCisKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsQ29udGFp
bmVyTGF5ZXI7CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbGVkQ29udGVudHNMYXll
cjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCmluZGV4IGI3
YzFkMjRlYjQuLjUyM2E3N2YzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdGlvbi5oCkBAIC0zMiwxMiArMzIsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGbG9hdFBvaW50OwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CitlbnVtIGNsYXNzIFNjcm9sbENs
YW1waW5nIDogdWludDhfdDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0aW9uIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TY3JvbGxBbmltYXRpb24o
KSB7IH07CiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHksIGZsb2F0IC8qIHN0ZXAgKi8sIGZsb2F0IC8qIG11bHRpcGxpZXIgKi8p
IHsgcmV0dXJuIHRydWU7IH07CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBGbG9hdFBv
aW50JikgeyB9OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVu
dFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAppbmRleCBkMDY0ZTY5Mzc5Li4yY2E1
NzhhMzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b25TbW9vdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlv
blNtb290aC5jcHAKQEAgLTI4LDggKzI4LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJTY3JvbGxBbmltYXRpb25TbW9vdGguaCIKIAotI2lmIEVOQUJMRShTTU9PVEhfU0NST0xM
SU5HKQotCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVh
LmgiCiAKQEAgLTM4LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0
IGRvdWJsZSBmcmFtZVJhdGUgPSA2MDsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIHRpY2tUaW1lID0g
MV9zIC8gZnJhbWVSYXRlOwogc3RhdGljIGNvbnN0IFNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2
YWwgeyAxX21zIH07CitzdGF0aWMgY29uc3QgZG91YmxlIHNtb290aEZhY3RvckZvclByb2dyYW1t
YXRpY1Njcm9sbCA9IDU7CiAKIFNjcm9sbEFuaW1hdGlvblNtb290aDo6U2Nyb2xsQW5pbWF0aW9u
U21vb3RoKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgRmxvYXRQb2ludCYg
cG9zaXRpb24sIFdURjo6RnVuY3Rpb248dm9pZCAoRmxvYXRQb2ludCYmKT4mJiBub3RpZnlQb3Np
dGlvbkNoYW5nZWRGdW5jdGlvbikKICAgICA6IFNjcm9sbEFuaW1hdGlvbihzY3JvbGxhYmxlQXJl
YSkKQEAgLTY3LDkgKzY2LDIyIEBAIGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51CiAgICAgcmV0dXJu
IG5lZWRUb1Njcm9sbDsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNjcm9sbChj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3sKKyAgICBTY3JvbGxHcmFudWxhcml0eSBncmFu
dWxhcml0eSA9IFNjcm9sbEJ5UGFnZTsKKyAgICBib29sIG5lZWRUb1Njcm9sbCA9IHVwZGF0ZVBl
ckF4aXNEYXRhKG1faG9yaXpvbnRhbERhdGEsIGdyYW51bGFyaXR5LCBwb3NpdGlvbi54KCkgLSBt
X2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVt
U2Nyb2xsUG9zaXRpb24oKS54KCksIG1fc2Nyb2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0
aW9uKCkueCgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG5lZWRU
b1Njcm9sbCB8PQorICAgICAgICB1cGRhdGVQZXJBeGlzRGF0YShtX3ZlcnRpY2FsRGF0YSwgZ3Jh
bnVsYXJpdHksIHBvc2l0aW9uLnkoKSAtIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwg
bV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKS55KCksIG1fc2Nyb2xsYWJs
ZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueSgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFt
bWF0aWNTY3JvbGwpOworICAgIGlmIChuZWVkVG9TY3JvbGwgJiYgIWFuaW1hdGlvblRpbWVyQWN0
aXZlKCkpIHsKKyAgICAgICAgbV9zdGFydFRpbWUgPSBtX2hvcml6b250YWxEYXRhLnN0YXJ0VGlt
ZTsKKyAgICAgICAgYW5pbWF0aW9uVGltZXJGaXJlZCgpOworICAgIH0KK307CisKIHZvaWQgU2Ny
b2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKCkKIHsKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3Ao
KTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0aW9u
U21vb3RoOjp1cGRhdGVWaXNpYmxlTGVuZ3RocygpCkBAIC0yNDcsNyArMjU5LDcgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGdldEFuaW1hdGlvblBhcmFtZXRlcnNGb3JHcmFudWxhcml0eShTY3JvbGxH
cmFudWxhcml0eSBncmFudWwKICAgICB9CiB9CiAKLWJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
Ojp1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0YSYgZGF0YSwgU2Nyb2xsR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3JvbGxQb3NpdGlvbiwgZmxvYXQg
bWF4U2Nyb2xsUG9zaXRpb24pCitib29sIFNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlUGVy
QXhpc0RhdGEoUGVyQXhpc0RhdGEmIGRhdGEsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBv
c2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yKQogewogICAgIGlmICghZGF0YS5zdGFydFRpbWUg
fHwgIWRlbHRhIHx8IChkZWx0YSA8IDApICE9IChkYXRhLmRlc2lyZWRQb3NpdGlvbiAtIGRhdGEu
Y3VycmVudFBvc2l0aW9uIDwgMCkpIHsKICAgICAgICAgZGF0YS5kZXNpcmVkUG9zaXRpb24gPSBk
YXRhLmN1cnJlbnRQb3NpdGlvbjsKQEAgLTI2NCw2ICsyNzYsMTIgQEAgYm9vbCBTY3JvbGxBbmlt
YXRpb25TbW9vdGg6OnVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiBkYXRhLCBTY3JvbGxH
cmFudWxhcmkKICAgICBDdXJ2ZSBjb2FzdFRpbWVDdXJ2ZTsKICAgICBnZXRBbmltYXRpb25QYXJh
bWV0ZXJzRm9yR3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHksIGFuaW1hdGlvblRpbWUsIHJlcGVhdE1p
bmltdW1TdXN0YWluVGltZSwgYXR0YWNrVGltZSwgcmVsZWFzZVRpbWUsIGNvYXN0VGltZUN1cnZl
LCBtYXhpbXVtQ29hc3RUaW1lKTsKIAorICAgIGFuaW1hdGlvblRpbWUgKj0gc21vb3RoRmFjdG9y
OworICAgIHJlcGVhdE1pbmltdW1TdXN0YWluVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgYXR0
YWNrVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgcmVsZWFzZVRpbWUgKj0gc21vb3RoRmFjdG9y
OworICAgIG1heGltdW1Db2FzdFRpbWUgKj0gc21vb3RoRmFjdG9yOworCiAgICAgZGF0YS5kZXNp
cmVkUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsKICAgICBpZiAoIWRhdGEuc3RhcnRUaW1lKQogICAg
ICAgICBkYXRhLmF0dGFja1RpbWUgPSBhdHRhY2tUaW1lOwpAQCAtMzkyLDYgKzQxMCw4IEBAIHZv
aWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckZpcmVkKCkKIAogICAgIGlm
IChjb250aW51ZUFuaW1hdGlvbikKICAgICAgICAgc3RhcnROZXh0VGltZXIoc3RkOjptYXgobWlu
aW11bVRpbWVySW50ZXJ2YWwsIGRlbHRhVG9OZXh0RnJhbWUpKTsKKyAgICBlbHNlCisgICAgICAg
IG1fc2Nyb2xsYWJsZUFyZWEuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIAogICAgIG1fbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVu
Y3Rpb24oRmxvYXRQb2ludChtX2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV92ZXJ0
aWNhbERhdGEuY3VycmVudFBvc2l0aW9uKSk7CiB9CkBAIC00MDcsNSArNDI3LDMgQEAgYm9vbCBT
Y3JvbGxBbmltYXRpb25TbW9vdGg6OmFuaW1hdGlvblRpbWVyQWN0aXZlKCkgY29uc3QKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5o
CmluZGV4IDAyY2M0ZWUyYmQuLjgxNzNmYTdlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCkBAIC0yNywxNCArMjcsMTMgQEAKIAogI2lu
Y2x1ZGUgIlNjcm9sbEFuaW1hdGlvbi5oIgogCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
Ci0KICNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZs
b2F0UG9pbnQ7CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKK2VudW0gY2xhc3MgU2Nyb2xsQ2xhbXBp
bmcgOiB1aW50OF90OwogCiBjbGFzcyBTY3JvbGxBbmltYXRpb25TbW9vdGggZmluYWw6IHB1Ymxp
YyBTY3JvbGxBbmltYXRpb24gewogcHVibGljOgpAQCAtNTEsNiArNTAsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdy
YW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNjcm9sbChjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKQEAg
LTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaW50IHZpc2libGVMZW5ndGggeyAwIH07
CiAgICAgfTsKIAotICAgIGJvb2wgdXBkYXRlUGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmLCBTY3Jv
bGxHcmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9h
dCBtYXhTY3JvbGxQb3NpdGlvbik7CisgICAgYm9vbCB1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlz
RGF0YSYsIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9z
aXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yID0gMSk7
CiAgICAgYm9vbCBhbmltYXRlU2Nyb2xsKFBlckF4aXNEYXRhJiwgTW9ub3RvbmljVGltZSBjdXJy
ZW50VGltZSk7CiAKICAgICB2b2lkIHJlcXVlc3RBbmltYXRpb25UaW1lckZpcmVkKCk7CkBAIC0x
MDgsNCArMTA4LDMgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5jcHAKaW5kZXggYTYxMTg2ODM3ZC4uNGQ1OThjNzVhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAK
QEAgLTUyLDYgKzUzLDE4IEBAIFNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcihTY3JvbGxh
YmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgICwgbV9zY3JvbGxDb250cm9sbGVyKCp0aGlzKQog
I2VuZGlmCisgICAgLCBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbChtYWtlVW5pcXVlPFNj
cm9sbEFuaW1hdGlvblNtb290aD4oc2Nyb2xsYWJsZUFyZWEsIG1fY3VycmVudFBvc2l0aW9uLCBb
dGhpc10oRmxvYXRQb2ludCYmIHBvc2l0aW9uKSB7CisgICAgICAgIGF1dG8gcHJldmlvdXNTY3Jv
bGxUeXBlID0gbV9zY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsVHlwZSgpOworICAgICAgICBt
X3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKFNjcm9sbFR5cGU6OlByb2dyYW1t
YXRpYyk7CisgICAgICAgIGJvb2wgdXBkYXRlZCA9IG1fc2Nyb2xsYWJsZUFyZWEucmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpOworICAgICAgICBt
X3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7
CisgICAgICAgIGlmICh1cGRhdGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEZs
b2F0U2l6ZSBkZWx0YSA9IHBvc2l0aW9uIC0gbV9jdXJyZW50UG9zaXRpb247CisgICAgICAgIG1f
Y3VycmVudFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7CisgICAgICAgIG5vdGlmeVBvc2l0
aW9uQ2hhbmdlZChkZWx0YSk7CisgICAgfSkpCiB7CiB9CiAKQEAgLTc1LDYgKzg4LDE0IEBAIGJv
b2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHksCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCkKK3sKKyAg
ICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3Vy
cmVudFBvc2l0aW9uKTsKKyAgICBhdXRvIG5ld1Bvc2l0aW9uID0gU2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQsIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJsZUFy
ZWEuc2Nyb2xsT3JpZ2luKCkpKTsKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+
c2Nyb2xsKG5ld1Bvc2l0aW9uKTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbik7Cit9
CisKIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQogewogICAgIEZsb2F0UG9p
bnQgbmV3UG9zaXRvbiA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQo
b2Zmc2V0LCB0b0Zsb2F0U2l6ZShtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CkBA
IC0yNDUsNCArMjY2LDMzIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnJlbW92ZVdoZWVsRXZlbnRU
ZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdoZWVsRXZlbnRUCiB9CiAjZW5kaWYKIAor
dm9pZCBTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucygpCit7CisjaWYgIVVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Nj
cm9sbC0+c3RvcCgpOworI2VuZGlmCit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VT
Y3JvbGxBbmltYXRpb25zKCkKK3sKKyNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJ
TUVSKQorICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT5zZXJ2aWNlQW5pbWF0aW9u
KCk7CisjZW5kaWYKK30KKwordm9pZCBTY3JvbGxBbmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUo
KQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVu
Z3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJh
cihTY3JvbGxiYXIqKQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRh
dGVWaXNpYmxlTGVuZ3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jp
em9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopCit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0
aWNTY3JvbGwtPnVwZGF0ZVZpc2libGVMZW5ndGhzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IGE1YzY5
YzUzYjcuLjliN2MwOWI2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0
UG9pbnQ7CiBjbGFzcyBQbGF0Zm9ybVRvdWNoRXZlbnQ7CitjbGFzcyBTY3JvbGxBbmltYXRpb247
CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKIGNsYXNzIFNjcm9sbGJhcjsKIGNsYXNzIFdoZWVsRXZl
bnRUZXN0TW9uaXRvcjsKQEAgLTY4LDYgKzY5LDcgQEAgcHVibGljOgogICAgIC8vIFRoZSBiYXNl
IGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0ZWx5LCBuZXZlciBh
bmltYXRlcy4KICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBT
Y3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAKKyAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxD
bGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAogICAgIFNjcm9sbGFibGVBcmVh
JiBzY3JvbGxhYmxlQXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWE7IH0KQEAg
LTg1LDggKzg3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmKTsKICAgICBjb25zdCBGbG9hdFBvaW50JiBjdXJyZW50UG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2N1cnJlbnRQb3NpdGlvbjsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNh
bmNlbEFuaW1hdGlvbnMoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1h
dGlvbnMoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsQW5pbWF0aW9ucygpOworICAgIHZp
cnR1YWwgdm9pZCBzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpOwogCiAgICAgdmlydHVhbCB2b2lk
IGNvbnRlbnRBcmVhV2lsbFBhaW50KCkgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNl
RW50ZXJlZENvbnRlbnRBcmVhKCkgeyB9CkBAIC05NywxNiArOTksMTYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBtb3VzZUlzRG93bkluU2Nyb2xsYmFyKFNjcm9sbGJhciosIGJvb2wpIGNv
bnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRMaXZlUmVzaXplKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGNvbnRlbnRzUmVzaXplZCgpIGNvbnN0IHsgfQotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJl
c2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50QXJlYURpZFNob3coKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgY29udGVudEFyZWFEaWRIaWRlKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
bG9ja092ZXJsYXlTY3JvbGxiYXJTdGF0ZVRvSGlkZGVuKGJvb2wpIHsgfQogICAgIHZpcnR1YWwg
Ym9vbCBzY3JvbGxiYXJzQ2FuQmVBY3RpdmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAg
IHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikg
eyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFy
Kik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9s
bGJhciopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJQYXJ0TGF5
ZXJzKFNjcm9sbGJhciopIHsgfQpAQCAtMTUxLDYgKzE1Myw4IEBAIHByb3RlY3RlZDoKICAgICBT
Y3JvbGxDb250cm9sbGVyIG1fc2Nyb2xsQ29udHJvbGxlcjsKICNlbmRpZgogICAgIEZsb2F0UG9p
bnQgbV9jdXJyZW50UG9zaXRpb247CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQW5pbWF0
aW9uPiBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDg5MTE0OTEw
M2QuLmY2ZDM1NjY1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAt
NTQsNiArNTQsMjEgQEAgZW51bSBjbGFzcyBTY3JvbGxQb3NpdGlvbkNsYW1wIDogdWludDhfdCB7
CiAgICAgVG9Db250ZW50RWRnZXMsCiB9OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKK2VudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JUeXBlIDog
dWludDhfdCB7CisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgsCit9OworI2VuZGlmCisKK2VudW0g
Y2xhc3MgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgOiB1aW50OF90IHsKKyAgICBOb3RJbkFuaW1hdGlv
biwKKyAgICBJbk5vbk5hdGl2ZUFuaW1hdGlvbiwKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEluTmF0aXZlQW5pbWF0aW9uLAorI2VuZGlm
Cit9OworCiBpbmxpbmUgU2Nyb2xsRGlyZWN0aW9uIGxvZ2ljYWxUb1BoeXNpY2FsKFNjcm9sbExv
Z2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGlzVmVydGljYWwsIGJvb2wgaXNGbGlwcGVk
KQogewogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCmluZGV4IGIxMjZhOWMyYjcuLjFkMmMzMmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00NjEsMTAgKzQ2MSwxNCBAQCB2b2lkIFNjcm9sbFZp
ZXc6OmNvbXBsZXRlVXBkYXRlc0FmdGVyU2Nyb2xsVG8oY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpCiAgICAgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpOwogfQogCi12
b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBz
Y3JvbGxQb3NpdGlvbikKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sLyogYW5pbWF0ZWQqLykKIHsKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNj
cm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlm
IChwcm9oaWJpdHNTY3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00NzUsMTMgKzQ3
OSwxNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKIAogICAgIFNjcm9sbFBvc2l0aW9uIG5ld1Njcm9sbFBv
c2l0aW9uID0gIWRlbGVnYXRlc1Njcm9sbGluZygpID8gYWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRo
aW5SYW5nZShzY3JvbGxQb3NpdGlvbikgOiBzY3JvbGxQb3NpdGlvbjsKIAotICAgIGlmICgoIWRl
bGVnYXRlc1Njcm9sbGluZygpIHx8IGN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6
VXNlcikgJiYgbmV3U2Nyb2xsUG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKKyAg
ICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNj
cm9sbFR5cGU6OlVzZXIpICYmIGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9s
bEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiAmJiBuZXdTY3JvbGxQb3NpdGlvbiA9PSB0
aGlzLT5zY3JvbGxQb3NpdGlvbigpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoY3VycmVu
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0
aXZlQW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMo
KTsKKwogICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUobmV3U2Nyb2xsUG9zaXRp
b24pKQogICAgICAgICByZXR1cm47CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBv
c2l0aW9uKTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1
czo6Tm90SW5BbmltYXRpb24pOwogfQogCiBib29sIFNjcm9sbFZpZXc6OnNjcm9sbChTY3JvbGxE
aXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTUz
OCw3ICs1NDYsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Ny
b2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICAKICAgICBpZiAoIW1hbmFnZXNTY3Jv
bGxiYXJzKCkpIHsKICAgICAgICAgaWYgKHNjcm9sbE9yaWdpbkNoYW5nZWQoKSkgewotICAgICAg
ICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3Jv
bGxPZmZzZXRGcm9tUG9zaXRpb24oZGVzaXJlZFBvc2l0aW9uKSk7CisgICAgICAgICAgICBpZiAo
IXJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShkZXNpcmVkUG9zaXRpb24pKQorICAgICAgICAg
ICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oc2Ny
b2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOwogICAgICAgICAgICAgcmVz
ZXRTY3JvbGxPcmlnaW5DaGFuZ2VkKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDQzMDE2MGQ2YWUuLjUzOTgxMDgzOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTI2MCw3ICsyNjAsNyBAQCBw
dWJsaWM6CiAgICAgU2Nyb2xsUG9zaXRpb24gY2FjaGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX2NhY2hlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBGdW5jdGlvbnMgZm9y
IHNjcm9sbGluZyB0aGUgdmlldy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24o
Y29uc3QgU2Nyb2xsUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRp
b24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2UpOwogICAgIHZv
aWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYgcykgeyByZXR1cm4gc2V0U2Nyb2xsUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb24oKSArIHMpOyB9CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNjcm9sbHMg
YnkgbGluZXMsIHBhZ2VzIG9yIHBpeGVscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcAppbmRleCA5NmQwZjMwMGIzLi4xNTA3MDRjMmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC03MSw2ICs3MSw5IEBAIFNjcm9s
bGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSgpCiAgICAgLCBtX3Njcm9sbE9yaWdpbkNoYW5nZWQo
ZmFsc2UpCiAgICAgLCBtX2N1cnJlbnRTY3JvbGxUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihT
Y3JvbGxUeXBlOjpVc2VyKSkKICAgICAsIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUo
ZmFsc2UpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykKKyAgICAsIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KSkKKyNlbmRpZgogewogfQogCkBAIC0xNDIs
NiArMTQ1LDEyIEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhCiAgICAgcmV0dXJuIHNjcm9sbEFu
aW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGll
cik7CiB9CiAKK3ZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQoreworICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlz
IDw8ICIgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKKyAgICBzY3Jv
bGxBbmltYXRvcigpLnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7Cit9CisKIHZvaWQgU2Nyb2xsYWJs
ZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBv
ZmZzZXQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Nyb2xs
VG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKQEAgLTIyMSwxNiArMjMwLDE1
IEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1U
b3VjaEV2ZW50JiB0b3VjaEV2ZW50KQogLy8gTk9URTogT25seSBjYWxsZWQgZnJvbSBJbnRlcm5h
bHMgZm9yIHRlc3RpbmcuCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9t
SW50ZXJuYWxzKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogeworICAgIGlmIChyZXF1ZXN0
U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKQor
ICAgICAgICByZXR1cm47CisKICAgICBzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9uKG9mZnNl
dCk7CiB9CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRp
b24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQpCiB7Ci0gICAgU2Nyb2xsUG9zaXRpb24gcG9z
aXRpb24gPSBzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KTsKLSAgICBpZiAocmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9uKTsKKyAgICBzY3JvbGxQb3NpdGlvbkNoYW5n
ZWQoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpOwogfQogCiB2b2lkIFNjcm9sbGFi
bGVBcmVhOjp3aWxsU3RhcnRMaXZlUmVzaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCmluZGV4IGQ3NDM4YzE1Y2QuLjU1NjcyZjgxZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNjIsNyArNjIsMTEgQEAgaW5saW5lIGlu
dCBvZmZzZXRGb3JPcmllbnRhdGlvbihTY3JvbGxPZmZzZXQgb2Zmc2V0LCBTY3JvbGxiYXJPcmll
bnRhdGlvbiBvcmllbnQKIAogY2xhc3MgU2Nyb2xsYWJsZUFyZWEgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U2Nyb2xsYWJsZUFyZWE+IHsKIHB1YmxpYzoKKyAgICBTY3JvbGxCZWhhdmlvclN0YXR1
cyBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSB7IHJldHVybiBtX2N1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1czsgfQorICAgIHZvaWQgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xs
QmVoYXZpb3JTdGF0dXMgc3RhdHVzKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzID0g
c3RhdHVzOyB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rp
b24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2lu
dCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwg
ZmxvYXQgb2Zmc2V0KTsKIApAQCAtMjQyLDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xs
VHlwZSBjdXJyZW50U2Nyb2xsVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9s
bFR5cGU+KG1fY3VycmVudFNjcm9sbFR5cGUpOyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xs
VHlwZShTY3JvbGxUeXBlIHNjcm9sbFR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihzY3JvbGxUeXBlKTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3Vy
cmVudFNjcm9sbEJlaGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9s
bEJlaGF2aW9yVHlwZT4obV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQg
c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVo
YXZpb3JUeXBlKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihzY3JvbGxCZWhhdmlvclR5cGUpOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xs
U2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENs
ZWFyTGF0Y2hlZFN0YXRlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRT
dGF0ZShib29sIHNob3VsZENsZWFyKSB7IG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUg
PSBzaG91bGRDbGVhcjsgfQogCkBAIC0zNzgsNiArMzg3LDggQEAgcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX2N1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4IHsgMCB9OwogI2VuZGlmCiAKKyAg
ICBTY3JvbGxCZWhhdmlvclN0YXR1cyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyB7IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiB9OworCiAgICAgLy8gVGhlcmUgYXJl
IDggcG9zc2libGUgY29tYmluYXRpb25zIG9mIHdyaXRpbmcgbW9kZSBhbmQgZGlyZWN0aW9uLiBT
Y3JvbGwgb3JpZ2luIHdpbGwgYmUgbm9uLXplcm8gaW4gdGhlIHggb3IgeSBheGlzCiAgICAgLy8g
aWYgdGhlcmUgaXMgYW55IHJldmVyc2VkIGRpcmVjdGlvbiBvciB3cml0aW5nLW1vZGUuIFRoZSBj
b21iaW5hdGlvbnMgYXJlOgogICAgIC8vIHdyaXRpbmctbW9kZSAvIGRpcmVjdGlvbiAgICAgc2Ny
b2xsT3JpZ2luLngoKSBzZXQgICAgc2Nyb2xsT3JpZ2luLnkoKSBzZXQKQEAgLTQwMyw2ICs0MTQs
OSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZCA6IDE7CiAg
ICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9sbFR5cGUKICAgICB1
bnNpZ25lZCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHVuc2lnbmVkIG1f
Y3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMv
U2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVy
aWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcAppbmRleCAyMDhhZjdiODQ3Li5hZDMzMmMzMjgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1h
dG9yR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3Jv
bGxBbmltYXRvckdlbmVyaWMuY3BwCkBAIC0xNjIsNiArMTYyLDggQEAgdm9pZCBTY3JvbGxBbmlt
YXRvckdlbmVyaWM6OndpbGxFbmRMaXZlUmVzaXplKCkKIAogdm9pZCBTY3JvbGxBbmltYXRvckdl
bmVyaWM6OnVwZGF0ZVBvc2l0aW9uKEZsb2F0UG9pbnQmJiBwb3NpdGlvbikKIHsKKyAgICBpZiAo
bV9zY3JvbGxhYmxlQXJlYS5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocm91bmRlZEludFBv
aW50KHBvc2l0aW9uKSkpCisgICAgICAgIHJldHVybjsKICAgICBGbG9hdFNpemUgZGVsdGEgPSBw
b3NpdGlvbiAtIG1fY3VycmVudFBvc2l0aW9uOwogICAgIG1fY3VycmVudFBvc2l0aW9uID0gV1RG
TW92ZShwb3NpdGlvbik7CiAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGRlbHRhKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBm
NTkxNzY3MmVlLi42Mzc1M2FkMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC0xMTU1LDYgKzExNTUsNyBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpub3RpZnlDb250ZW50QXJlYVNjcm9sbGVkKGNvbnN0IEZsb2F0U2l6ZSYg
ZGVsdGEpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNhbmNlbEFuaW1hdGlvbnMoKQogewor
ICAgIFNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKCk7CiAgICAgbV9oYXZlU2Nyb2xs
ZWRTaW5jZVBhZ2VMb2FkID0gZmFsc2U7CiAKICAgICBpZiAoc2Nyb2xsYmFyUGFpbnRUaW1lcklz
QWN0aXZlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuaAppbmRleCA3YzFkYzAzZjliLi5mNWNh
NDJlOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmgKQEAgLTIzLDE3ICsyMywyNiBAQAog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCisjcHJhZ21hIG9uY2UKKwogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgiCiAj
aW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVjdXJzaXZl
TG9ja0FkYXB0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorbmFtZXNw
YWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2U7CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKIAogY2xhc3MgQmFzZUF1ZGlvU2hhcmVkVW5p
dCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGY4
ZDNhNDkyNWEuLjZkMWY4NTdjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCkBAIC01ODEsMjAgKzU4MSwyOCBAQCBzdGF0aWMgdm9pZCBzZXR1cFdoZWVsRXZlbnRNb25p
dG9yKFJlbmRlckxheWVyJiBsYXllcikKICAgICBsYXllci5zY3JvbGxBbmltYXRvcigpLnNldFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcihwYWdlLndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAot
dm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Ny
b2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Ny
b2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVk
LCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgp
IHx8ICFsYXllcigpKQogICAgICAgICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRv
cigqbGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Nyb2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Ny
b2xsVHlwZSwgY2xhbXBpbmcpOworICAgIGxheWVyKCktPnNjcm9sbFRvWFBvc2l0aW9uKG5ld0xl
ZnQsIHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyQm94
OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxD
bGFtcGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1Rv
cCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBj
bGFtcGluZykKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAg
ICAgICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAg
bGF5ZXIoKS0+c2Nyb2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7
CisgICAgbGF5ZXIoKS0+c2Nyb2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBhbmlt
YXRlZCwgY2xhbXBpbmcpOworfQorCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsUG9zaXRpb24o
Y29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJv
b2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGlmICghaGFzT3Zl
cmZsb3dDbGlwKCkgfHwgIWxheWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBzZXR1cFdoZWVs
RXZlbnRNb25pdG9yKCpsYXllcigpKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1Bvc2l0aW9uKHBv
c2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCiB2b2lkIFJlbmRl
ckJveDo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQ
b2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmgKaW5kZXggNDk1NDgxNDA1NC4uMjIxOTI4MDU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaApAQCAtMjQ3LDggKzI0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGlu
dCBzY3JvbGxUb3AoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNj
cm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAg
IHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRl
ZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRl
ZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAg
ICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlw
ZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5n
OjpDbGFtcGVkKTsKIAogICAgIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9tYXJnaW5Cb3gudG9wKCk7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRv
bSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94LmJvdHRvbSgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBkODRhZDFhMWRhLi42MTNh
NmFmYTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI1
NzUsMTYgKzI1NzUsMjQgQEAgdm9pZCBSZW5kZXJMYXllcjo6YXBwbHlQb3N0TGF5b3V0U2Nyb2xs
UG9zaXRpb25JZk5lZWRlZCgpCiAgICAgbV9wb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb24gPSBXVEY6
Om51bGxvcHQ7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4
LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBS
ZW5kZXJMYXllcjo6c2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUgc2Nyb2xsVHlw
ZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgU2Nyb2xs
UG9zaXRpb24gcG9zaXRpb24oeCwgbV9zY3JvbGxQb3NpdGlvbi55KCkpOwotICAgIHNjcm9sbFRv
T2Zmc2V0KHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNs
YW1waW5nKTsKKyAgICBzY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmlt
YXRlZCwgY2xhbXBpbmcpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlv
bihpbnQgeSwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykK
K3ZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlIHNj
cm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAg
IFNjcm9sbFBvc2l0aW9uIHBvc2l0aW9uKG1fc2Nyb2xsUG9zaXRpb24ueCgpLCB5KTsKLSAgICBz
Y3JvbGxUb09mZnNldChzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxU
eXBlLCBjbGFtcGluZyk7CisgICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlw
ZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9Q
b3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgaWYg
KGFuaW1hdGVkKQorICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zm
c2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIGVs
c2UKKyAgICAgICAgc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0
aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOwogfQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5
ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBj
b25zdApAQCAtMjU5NCwyMiArMjYwMiw2OCBAQCBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNs
YW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjbwogCiB2
b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9s
bE9mZnNldCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykK
IHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQor
ICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0
YW50KTsKKyNlbmRpZgorCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09
IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Ny
b2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CisKICAgICBTY3JvbGxPZmZzZXQgY2xh
bXBlZFNjcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8g
Y2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9sbE9mZnNldDsKLSAgICBpZiAo
Y2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICBpZiAoY2xh
bXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkgeworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgICAgIC8vIElmIFVJ
U2Nyb2xsVmlldyBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHNjcm9sbCBv
ZmZzZXQgb2YgdGhlIFdlYiBwcm9jZXNzIG1pZ2h0IGJlIG92ZXJyaWRkZW4uCisgICAgICAgIC8v
IFNvIHdlIG5lZWQgdG8gY2FsbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUgaGVyZSBhbmQg
bGV0IGl0IGJlIGNoZWNrZWQgb24gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIC8vIElmIHRoZSBz
Y3JvbGwgb2Zmc2V0IG9uIHRoZSBVSSBwcm9jZXNzIGlzIGRpZmZlcmVudCwgdGhlIGNvcnJlY3Qg
c2Nyb2xsIG9mZnNldCBuZWVkcyB0byBzeW5jIGJhY2sgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAg
ICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6OkluTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICAgICAgcmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7
CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8gcHJldmlvdXNTY3Jv
bGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShz
Y3JvbGxUeXBlKTsKIAogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogI2lmIEVOQUJMRShBU1lO
Q19TQ1JPTExJTkcpCi0gICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29y
ZGluYXRvciA9IHBhZ2UoKS5zY3JvbGxpbmdDb29yZGluYXRvcigpKQotICAgICAgICBoYW5kbGVk
ID0gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhp
cywgc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpKTsKKyAgICBo
YW5kbGVkID0gcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9m
ZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CiAjZW5kaWYKIAotICAgIGlmICghaGFuZGxlZCkK
KyAgICBpZiAoIWhhbmRsZWQpIHsKICAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0
aW9uKGNsYW1wZWRTY3JvbGxPZmZzZXQsIGNsYW1waW5nKTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAgICB9
CisKKyAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworfQorCiti
b29sIFJlbmRlckxheWVyOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xs
UG9zaXRpb24mIHBvc2l0aW9uKQoreworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAg
aWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5z
Y3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0
b3ItPnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgcG9zaXRpb24pOworI2VuZGlm
CisgICAgcmV0dXJuIGZhbHNlOworfQogCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNl
dFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Ny
b2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Nj
cm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBl
KHNjcm9sbFR5cGUpOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2
aW9yVHlwZTo6U21vb3RoKTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNj
cm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Ny
b2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2Vu
ZGlmCisKKyAgICBTY3JvbGxPZmZzZXQgbmV3U2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNjcm9sbE9mZnNldChvZmZzZXQpIDogb2Zmc2V0
OworICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlv
clN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pCisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCku
Y2FuY2VsQW5pbWF0aW9ucygpOworICAgIGlmIChuZXdTY3JvbGxPZmZzZXQgIT0gdGhpcy0+c2Ny
b2xsT2Zmc2V0KCkpCisgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhB
bmltYXRpb24obmV3U2Nyb2xsT2Zmc2V0KTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2
aW91c1Njcm9sbFR5cGUpOwogfQogCkBAIC0yNjQ1LDcgKzI2OTksNyBAQCB2b2lkIFJlbmRlckxh
eWVyOjpzY3JvbGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCiAjZW5kaWYKICAg
ICB9CiAgICAgCi0gICAgaWYgKG1fc2Nyb2xsUG9zaXRpb24gPT0gbmV3UG9zaXRpb24pIHsKKyAg
ICBpZiAobV9zY3JvbGxQb3NpdGlvbiA9PSBuZXdQb3NpdGlvbiAmJiBjdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pIHsK
ICAgICAgICAgLy8gRklYTUU6IE5vdGhpbmcgZ3VhcmFudGVlcyB3ZSBnZXQgYSBzY3JvbGxUbygp
IHdpdGggYW4gdW5jaGFuZ2VkIHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgYSB1c2VyIGdlc3R1cmUu
CiAgICAgICAgIC8vIFRoZSBTY3JvbGxpbmdDb29yZGluYXRvciBwcm9iYWJseSBuZWVkcyB0byBt
ZXNzYWdlIHRoZSBtYWluIHRocmVhZCB3aGVuIGEgZ2VzdHVyZSBlbmRzLgogICAgICAgICBpZiAo
cmVxdWlyZXNTY3JvbGxQb3NpdGlvblJlY29uY2lsaWF0aW9uKCkpIHsKQEAgLTI3OTAsMTAgKzI4
NDQsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlv
dXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgTGF5b3V0UmVjdCByZXZl
YWxSZWN0ID0gZ2V0UmVjdFRvRXhwb3NlKGxheWVyQm91bmRzLCBsb2NhbEV4cG9zZVJlY3QsIGlu
c2lkZUZpeGVkLCBvcHRpb25zLmFsaWduWCwgb3B0aW9ucy5hbGlnblkpOwogCiAgICAgICAgIFNj
cm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xs
T2Zmc2V0KCkgKyB0b0ludFNpemUocm91bmRlZEludFJlY3QocmV2ZWFsUmVjdCkubG9jYXRpb24o
KSkpOwotICAgICAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCAhPSBzY3JvbGxPZmZzZXQoKSkg
eworICAgICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgIT0gU2Nyb2xsQmVo
YXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uIHx8IGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Ny
b2xsT2Zmc2V0KCkpIHsKICAgICAgICAgICAgIFNjcm9sbE9mZnNldCBvbGRTY3JvbGxPZmZzZXQg
PSBzY3JvbGxPZmZzZXQoKTsKLSAgICAgICAgICAgIHNjcm9sbFRvT2Zmc2V0KGNsYW1wZWRTY3Jv
bGxPZmZzZXQpOwotICAgICAgICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXREaWZmZXJlbmNlID0g
c2Nyb2xsT2Zmc2V0KCkgLSBvbGRTY3JvbGxPZmZzZXQ7CisgICAgICAgICAgICBib29sIGFuaW1h
dGVkID0gKGJveC0+ZWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2
aW9yLCAqYm94LT5lbGVtZW50KCkpKTsKKyAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb24oc2Ny
b2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBTY3JvbGxUeXBlOjpQ
cm9ncmFtbWF0aWMsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0
RGlmZmVyZW5jZSA9IGNsYW1wZWRTY3JvbGxPZmZzZXQgLSBvbGRTY3JvbGxPZmZzZXQ7CiAgICAg
ICAgICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZSgtc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSk7CiAg
ICAgICAgICAgICBuZXdSZWN0ID0gTGF5b3V0UmVjdChib3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQo
RmxvYXRRdWFkKEZsb2F0UmVjdChsb2NhbEV4cG9zZVJlY3QpKSwgVXNlVHJhbnNmb3JtcykuYm91
bmRpbmdCb3goKSk7CiAgICAgICAgIH0KQEAgLTI4MTMsMTAgKzI4NjgsMTMgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJl
Y3QsIGJvb2wgaW5zaWQKICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0gZnJh
bWVWaWV3LnZpc2libGVDb250ZW50UmVjdChMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsK
ICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IGV4cG9zZVJlY3QgPSBnZXRSZWN0VG9FeHBvc2Uo
dmlld1JlY3QsIGFic29sdXRlUmVjdCwgaW5zaWRlRml4ZWQsIG9wdGlvbnMuYWxpZ25YLCBvcHRp
b25zLmFsaWduWSk7CiAKLSAgICAgICAgICAgICAgICBJbnRQb2ludCBzY3JvbGxPZmZzZXQocm91
bmRlZEludFBvaW50KGV4cG9zZVJlY3QubG9jYXRpb24oKSkpOworICAgICAgICAgICAgICAgIElu
dFBvaW50IHNjcm9sbFBvc2l0aW9uKHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9u
KCkpKTsKICAgICAgICAgICAgICAgICAvLyBBZGp1c3Qgb2Zmc2V0cyBpZiB0aGV5J3JlIG91dHNp
ZGUgb2YgdGhlIGFsbG93YWJsZSByYW5nZS4KLSAgICAgICAgICAgICAgICBzY3JvbGxPZmZzZXQg
PSBzY3JvbGxPZmZzZXQuY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZy
YW1lVmlldy5jb250ZW50c1NpemUoKSkpOwotICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRT
Y3JvbGxQb3NpdGlvbihzY3JvbGxPZmZzZXQpOworICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0
aW9uID0gc2Nyb2xsUG9zaXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBv
aW50KGZyYW1lVmlldy5jb250ZW50c1NpemUoKSkpOworICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBTaG91bGQgd2UgdXNlIGNvbnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/Cisg
ICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUwNTkKKyAgICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gb3duZXJFbGVtZW50
LT5jb250ZW50RG9jdW1lbnQoKSAmJiBvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5k
b2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwg
Km93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKTsKKyAg
ICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24s
IGFuaW1hdGVkKTsKIAogICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jv
c3NPcmlnaW5TY3JvbGxpbmcgPT0gU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVz
IHx8IGZyYW1lVmlldy5zYWZlVG9Qcm9wYWdhdGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIHBhcmVudExheWVyID0gb3duZXJFbGVtZW50LT5yZW5kZXJlcigpLT5lbmNs
b3NpbmdMYXllcigpOwpAQCAtMjg1NSw3ICsyOTEzLDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNj
cm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGlu
c2lkCiAgICAgICAgICAgICAvLyBBdm9pZCBzY3JvbGxpbmcgdG8gdGhlIHJvdW5kZWQgdmFsdWUg
b2YgcmV2ZWFsUmVjdC5sb2NhdGlvbigpIGlmIHdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdG8gc2Ny
b2xsCiAgICAgICAgICAgICBpZiAocmV2ZWFsUmVjdCAhPSB2aWV3UmVjdCkgewogICAgICAgICAg
ICAgICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsUG9zaXRpb24gPSByb3VuZGVkSW50UG9p
bnQocmV2ZWFsUmVjdC5sb2NhdGlvbigpKS5jb25zdHJhaW5lZEJldHdlZW4obWluU2Nyb2xsUG9z
aXRpb24sIG1heFNjcm9sbFBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0
U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAv
LyBGSVhNRTogU2hvdWxkIHdlIHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/Cisg
ICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUwNTkKKyAgICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gcmVuZGVyZXIoKS5k
b2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25z
LmJlaGF2aW9yLCAqcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAg
ICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBv
c2l0aW9uLCBhbmltYXRlZCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMg
aXMgdGhlIG91dGVybW9zdCB2aWV3IG9mIGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0
aGlzIHZpZXcgd2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNmNh
NDIyYjdiMi4uOGM5Nzc4Mzc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJS
ZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKKyNpbmNsdWRlICJTY3JvbGxCZWhh
dmlvci5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8bWVtb3J5Pgog
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC0xMzQsNiArMTM1LDcgQEAgc3RydWN0IFNjcm9s
bFJlY3RUb1Zpc2libGVPcHRpb25zIHsKICAgICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWdu
WCB7IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCB9OwogICAgIGNvbnN0IFNj
cm9sbEFsaWdubWVudCYgYWxpZ25ZIHsgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVl
ZGVkIH07CiAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyBzaG91bGRBbGxvd0Ny
b3NzT3JpZ2luU2Nyb2xsaW5nIHsgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8g
fTsKKyAgICBTY3JvbGxCZWhhdmlvciBiZWhhdmlvciB7IFNjcm9sbEJlaGF2aW9yOjpBdXRvIH07
CiB9OwogCiBjbGFzcyBSZW5kZXJMYXllciBmaW5hbCA6IHB1YmxpYyBTY3JvbGxhYmxlQXJlYSB7
CkBAIC00MzksOSArNDQxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbEJ5UmVjdXJzaXZl
bHkoY29uc3QgSW50U2l6ZSYgZGVsdGEsIFNjcm9sbGFibGVBcmVhKiogc2Nyb2xsZWRBcmVhID0g
bnVsbHB0cik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0
IFNjcm9sbE9mZnNldCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNj
cm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYs
IFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0g
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCi0gICAgdm9pZCBzY3JvbGxUb1hQb3NpdGlvbihp
bnQgeCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCk7Ci0gICAgdm9pZCBzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgYm9vbCByZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAg
IHZvaWQgc2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQs
IFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Ny
b2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENs
YW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9Qb3Np
dGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNj
cm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCiAgICAgLy8gVGhlc2Ug
YXJlIG9ubHkgdXNlZCBieSBtYXJxdWVlLgogICAgIHZvaWQgc2Nyb2xsVG9YT2Zmc2V0KGludCB4
KSB7IHNjcm9sbFRvT2Zmc2V0KFNjcm9sbE9mZnNldCh4LCBzY3JvbGxPZmZzZXQoKS55KCkpLCBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggMjVjZDJkMzNh
Ny4uYzMzZTkwNjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcApAQCAtNzQzLDcgKzc0Myw3IEBAIGludCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxMZWZ0KCkg
Y29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxM
ZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlckxpc3RCb3g6
OnNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsK
IH0KIApAQCAtNzYwLDcgKzc2MCw3IEBAIHN0YXRpYyB2b2lkIHNldHVwV2hlZWxFdmVudFRlc3RN
b25pdG9yKFJlbmRlckxpc3RCb3gmIHJlbmRlcmVyKQogICAgIHJlbmRlcmVyLnNjcm9sbEFuaW1h
dG9yKCkuc2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKHJlbmRlcmVyLnBhZ2UoKS53aGVlbEV2ZW50
VGVzdE1vbml0b3IoKSk7CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGlu
dCBuZXdUb3AsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW5kZXJMaXN0Qm94
OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBp
bmcpCiB7CiAgICAgLy8gRGV0ZXJtaW5lIGFuIGluZGV4IGFuZCBzY3JvbGwgdG8gaXQuICAgIAog
ICAgIGludCBpbmRleCA9IG5ld1RvcCAvIGl0ZW1IZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDY1ZDkyMjZiM2EuLjI1YzkwNjUxZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTA2LDggKzEwNiw4IEBA
IHByaXZhdGU6CiAgICAgaW50IHNjcm9sbFRvcCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBz
Y3JvbGxXaWR0aCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxIZWlnaHQoKSBjb25z
dCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3Jv
bGxDbGFtcGluZykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxU
eXBlLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGlu
dCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQg
c2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJy
aWRlOwogCiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRl
c3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNv
bnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJp
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggOWVlODg4ODY3MS4uNGRmN2QzMThkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHAKQEAgLTM3NiwxMyArMzc2LDEzIEBAIGludCBSZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmU6OnNjcm9sbFRvcCgpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6
c2Nyb2xsVG9wKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRT
Y3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBT
Y3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxl
bWVudCgpKQogICAgICAgICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbExlZnQobmV3TGVm
dCk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3Ao
aW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJv
b2wsIFNjcm9sbENsYW1waW5nKQogewogICAgIGlmIChpbm5lclRleHRFbGVtZW50KCkpCiAgICAg
ICAgIGlubmVyVGV4dEVsZW1lbnQoKS0+c2V0U2Nyb2xsVG9wKG5ld1RvcCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgK
aW5kZXggM2Y1Nzg2ZGZlNC4uNjY2YWEzMTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTcsOCArNTcs
OCBAQCBwcml2YXRlOgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlkZTsKICAgICBp
bnQgc2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0KCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwg
U2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Ny
b2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsTGVm
dChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBv
dmVycmlkZTsKICAgICBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFy
aXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gbnVsbHB0
ciwgUmVuZGVyQm94KiBzdGFydEJveCA9IG51bGxwdHIsIGNvbnN0IEludFBvaW50JiB3aGVlbEV2
ZW50QWJzb2x1dGVQb2ludCA9IEludFBvaW50KCkpIGZpbmFsOwogICAgIGJvb2wgbG9naWNhbFNj
cm9sbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVs
dGlwbGllciA9IDEsIEVsZW1lbnQqKiBzdG9wRWxlbWVudCA9IDApIGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDVkY2IyMWM2NDYu
LjAwN2E0ZDEzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCkBAIC03MzYsNiArNzM2LDggQEAgcHVibGljOgogICAgIGJvb2wgdXNlVG91Y2hPdmVy
Zmxvd1Njcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnVzZVRv
dWNoT3ZlcmZsb3dTY3JvbGxpbmc7IH0KICNlbmRpZgogCisgICAgYm9vbCB1c2VTbW9vdGhTY3Jv
bGxpbmcoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT51c2VTbW9vdGhT
Y3JvbGxpbmc7IH0KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgVGV4dFNpemVB
ZGp1c3RtZW50IHRleHRTaXplQWRqdXN0KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlSW5oZXJpdGVk
RGF0YS0+dGV4dFNpemVBZGp1c3Q7IH0KICAgICBBdXRvc2l6ZVN0YXR1cyBhdXRvc2l6ZVN0YXR1
cygpIGNvbnN0OwpAQCAtMTI2Nyw2ICsxMjY5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNl
VG91Y2hPdmVyZmxvd1Njcm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWRE
YXRhLCB1c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nLCB2KTsgfQogI2VuZGlmCiAKKyAgICB2b2lk
IHNldFVzZVNtb290aFNjcm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0
ZWREYXRhLCB1c2VTbW9vdGhTY3JvbGxpbmcsIHYpOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRP
U0laSU5HKQogICAgIHZvaWQgc2V0VGV4dFNpemVBZGp1c3QoVGV4dFNpemVBZGp1c3RtZW50IGFk
anVzdG1lbnQpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB0ZXh0U2l6ZUFkanVzdCwg
YWRqdXN0bWVudCk7IH0KICAgICB2b2lkIHNldEF1dG9zaXplU3RhdHVzKEF1dG9zaXplU3RhdHVz
KTsKQEAgLTE3MDQsNiArMTcwOCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpbml0aWFs
VXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAor
ICAgIHN0YXRpYyBib29sIGluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxz
ZTsgfQorCiAgICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIo
KSB7IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBv
cHM7IH0KICAgICBzdGF0aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgaW5pdGlhbEFwcGxlQ29s
b3JGaWx0ZXIoKSB7IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7
IHJldHVybiBvcHM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGZiMzIwODIzMzcu
LmQyYTUzMWZhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAg
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAg
ICAgLCBiYWNrZmFjZVZpc2liaWxpdHkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxl
Ojppbml0aWFsQmFja2ZhY2VWaXNpYmlsaXR5KCkpKQogICAgICwgdXNlckRyYWcoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVXNlckRyYWcoKSkpCiAgICAgLCB0ZXh0
T3ZlcmZsb3coc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVGV4dE92
ZXJmbG93KCkpKQorICAgICwgdXNlU21vb3RoU2Nyb2xsaW5nKHN0YXRpY19jYXN0PHVuc2lnbmVk
PihSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZVNtb290aFNjcm9sbGluZygpKSkKICAgICAsIG1hcmdp
bkJlZm9yZUNvbGxhcHNlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihNYXJnaW5Db2xsYXBzZTo6Q29s
bGFwc2UpKQogICAgICwgbWFyZ2luQWZ0ZXJDb2xsYXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
TWFyZ2luQ29sbGFwc2U6OkNvbGxhcHNlKSkKICAgICAsIGFwcGVhcmFuY2Uoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQXBwZWFyYW5jZSgpKSkKQEAgLTE4MCw2ICsx
ODEsNyBAQCBpbmxpbmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5
KG8uYmFja2ZhY2VWaXNpYmlsaXR5KQogICAgICwgdXNlckRyYWcoby51c2VyRHJhZykKICAgICAs
IHRleHRPdmVyZmxvdyhvLnRleHRPdmVyZmxvdykKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhv
LnVzZVNtb290aFNjcm9sbGluZykKICAgICAsIG1hcmdpbkJlZm9yZUNvbGxhcHNlKG8ubWFyZ2lu
QmVmb3JlQ29sbGFwc2UpCiAgICAgLCBtYXJnaW5BZnRlckNvbGxhcHNlKG8ubWFyZ2luQWZ0ZXJD
b2xsYXBzZSkKICAgICAsIGFwcGVhcmFuY2Uoby5hcHBlYXJhbmNlKQpAQCAtMjc4LDYgKzI4MCw3
IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIGJhY2tmYWNlVmlzaWJpbGl0
eSA9PSBvLmJhY2tmYWNlVmlzaWJpbGl0eQogICAgICAgICAmJiB1c2VyRHJhZyA9PSBvLnVzZXJE
cmFnCiAgICAgICAgICYmIHRleHRPdmVyZmxvdyA9PSBvLnRleHRPdmVyZmxvdworICAgICAgICAm
JiB1c2VTbW9vdGhTY3JvbGxpbmcgPT0gby51c2VTbW9vdGhTY3JvbGxpbmcKICAgICAgICAgJiYg
bWFyZ2luQmVmb3JlQ29sbGFwc2UgPT0gby5tYXJnaW5CZWZvcmVDb2xsYXBzZQogICAgICAgICAm
JiBtYXJnaW5BZnRlckNvbGxhcHNlID09IG8ubWFyZ2luQWZ0ZXJDb2xsYXBzZQogICAgICAgICAm
JiBhcHBlYXJhbmNlID09IG8uYXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggMTlj
NTkxYjJkMS4uMTZhMjg1MTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xODEsNiArMTgx
LDcgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgdXNlckRyYWcgOiAyOyAvLyBVc2VyRHJhZwog
ICAgIHVuc2lnbmVkIHRleHRPdmVyZmxvdyA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IGxpbmVzIHRo
YXQgc3BpbGwgb3V0IHNob3VsZCBiZSB0cnVuY2F0ZWQgd2l0aCAiLi4uIgorICAgIHVuc2lnbmVk
IHVzZVNtb290aFNjcm9sbGluZyA6IDE7IC8vIFNjcm9sbEJlaGF2aW9yCiAgICAgdW5zaWduZWQg
bWFyZ2luQmVmb3JlQ29sbGFwc2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVk
IG1hcmdpbkFmdGVyQ29sbGFwc2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVk
IGFwcGVhcmFuY2UgOiA2OyAvLyBFQXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAppbmRleCA3ZjNmMGNiYzRlLi5lMzgyMDRmNjgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTI5LDYg
KzEyOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBjb252ZXJ0T3ZlcmZsb3dTY3JvbGxp
bmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKICNlbmRpZgogICAgIHN0YXRpYyBG
b250RmVhdHVyZVNldHRpbmdzIGNvbnZlcnRGb250RmVhdHVyZVNldHRpbmdzKEJ1aWxkZXJTdGF0
ZSYsIGNvbnN0IENTU1ZhbHVlJik7CisgICAgc3RhdGljIGJvb2wgY29udmVydFNtb290aFNjcm9s
bGluZyhCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBGb250U2Vs
ZWN0aW9uVmFsdWUgY29udmVydEZvbnRXZWlnaHRGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsK
ICAgICBzdGF0aWMgRm9udFNlbGVjdGlvblZhbHVlIGNvbnZlcnRGb250U3RyZXRjaEZyb21WYWx1
ZShjb25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBPcHRpb25hbDxGb250U2VsZWN0aW9uVmFs
dWU+IGNvbnZlcnRGb250U3R5bGVGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKQEAgLTE0MDMs
NiArMTQwNCwxMSBAQCBpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0T3ZlcmZs
b3dTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVgogfQogI2VuZGlmCiAKK2lubGlu
ZSBib29sIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTbW9vdGhTY3JvbGxpbmcoQnVpbGRlclN0
YXRlJiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQoreworICAgIHJldHVybiBkb3duY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZT4odmFsdWUpLnZhbHVlSUQoKSA9PSBDU1NWYWx1ZVNtb290aDsKK30KKwog
aW5saW5lIFNWR0xlbmd0aFZhbHVlIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTVkdMZW5ndGhW
YWx1ZShCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCiB7CiAgICAgcmV0dXJu
IFNWR0xlbmd0aFZhbHVlOjpmcm9tQ1NTUHJpbWl0aXZlVmFsdWUoZG93bmNhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWU+KHZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXgg
ZTA3Nzc5NjJkNS4uNzI0MDA4MTBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtMTc0Niw3ICsxNzQ2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjp1bmNv
bnN0cmFpbmVkU2Nyb2xsVG8oRWxlbWVudCYgZWxlbWVudCwgZG91YmxlIHgsIGQKICAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+dmlldygpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CiAKLSAgICBlbGVtZW50LnNjcm9sbFRvKHsgeCwgeSB9
LCBTY3JvbGxDbGFtcGluZzo6VW5jbGFtcGVkKTsKKyAgICBlbGVtZW50LnNjcm9sbFRvKFNjcm9s
bFRvT3B0aW9ucyh4LCB5KSwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CiAgICAgcmV0dXJu
IHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBlODQ1MmU3ZjkxLi5iMjhhYTRkMGNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDcyIEBACisyMDE5LTEyLTExICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdh
bGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGll
cyBvbiBuYXRpdmUgc2Nyb2xsIGludGVyZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNo
IGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGlu
ZyBhcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4gT24gaW9zIHBsYXRmb3JtLCB1c2UgbmF0aXZl
IGFuaW1hdGVkIHNjcm9sbGluZworICAgICAgICBpbnRlcmZhY2VzIHRvIHBlcmZvcm1hbmNlIHNt
b290aCBzY3JvbGwgYW5kIHNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nl
c3MuCisKKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
Pjo6ZW5jb2RlKToKKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlPjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChwb2ludHNFcXVhbEluUm91
bmRUb0RldmljZVBpeGVsKTogSGVscCBmdW5jdGlvbiB0byBjaGVjayBpZiB0d28gZmxvYXQgcG9p
bnRzIGFyZSBub3QgZXF1YWwgYnV0IGluIHRoZSBzYW1lIGRldmljZSBwaXhlbC4KKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46
YW5pbWF0ZWQ6XSk6IEFkZCBhbmltYXRlZCBmbGFnIHRvIHN0YXJ0IGEgYW5pbWF0ZWQgc2Nyb2xs
IGlmIG5lZWRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxp
bmdBbmltYXRpb246XSk6IFNlbmQgc3JvbGwgZW5kIG1lc3NhZ2UgdG8gdGhlIFdlYiBwcm9jZXNz
LgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNj
cm9sbE9yaWdpbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOiBQ
cm92aWRlIGludGVyZmFjZSBmb3IgYW5pbWF0ZWQgc2Nyb2xsaW5nLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0
TGF5ZXJUcmVlKTogQWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5v
ZGVEaWRTY3JvbGwpOiBTeW5jIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNz
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3Jv
bGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogQWRkIGFuaW1hdGVkIHNjcm9sbGluZyBpbmZv
IHRvIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NEaWRDaGFuZ2UpOiBTeW5jIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgdG8gdGhl
IFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NE
aWRDaGFuZ2UpOiBEaXR0by4gSXQncyBzcGVjaWZpYyB0byB0aGUgcm9vdCBub2RlLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKTogQWRkIGFuaW1hdGVkIGluZm8uCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5n
VHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbToKKyAgICAg
ICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmRT
Y3JvbGxpbmdBbmltYXRpb246XSk6IFNlbmQgc2NvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9j
ZXNzLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4pOiBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9m
IHRoZSBXZWIgcHJvY2VzcyBpc24ndCBlcXVhbCB0byB0aGUgVUkgcHJvY2VzcywKKyAgICAgICAg
dGhlIHNjcm9sbCBwb3NpdGlvbiBzaG91bGQgYmUgc3luY2hyb25pemVkLCBldmVuIHRoZXJlJ3Mg
bm8gc2Nyb2xsaW5nIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktp
dDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9s
bGluZ0xheWVycyk6IENhbGxpbmcgdGhlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcgaW50ZXJm
YWNlIGZvciBzbW9vdGggc2Nyb2xsLgorICAgICAgICBJZiB0aGVyZSdzIGEgc2Nyb2xsIGFuaW1h
dGlvbiBwZXJmb3JtaW5nLCBpdCBzaG91bGQgYmUgc3RvcHBlZCBmaXJzdCwgdGhlbiBzdGFydCBh
IG5ldyBzY3JvbGxpbmcuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24pOiBTeW5j
IHNjcm9sbCBlbmQgaW5mbyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVz
dFNjcm9sbCk6IFRvIGNhbGwgZGlmZmVyZW50IGZ1bmN0aW9ucyBmb3Igc21vb3RoIGFuZCBpbnN0
YW50IHNjcm9sbC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpyZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJl
cXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5n
ZWRGb3JOb2RlKToKKworMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkK
KworICAgICAgICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBlcmltZW50YWwg
ZmVhdHVyZS4KKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAg
ICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorCiAyMDE5LTEyLTEwICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBJc3N1ZSBsb2FkIHNvb25lciBvbiBz
d2lwZSBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IGQ3YjFlMTkzNzIuLjg3N2QyOWEz
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2Fj
dGlvbi5jcHAKQEAgLTE1Miw2ICsxNTIsOSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAg
U0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xs
YWJsZUFyZWFQYXJhbXMsIHNjcm9sbGFibGVBcmVhUGFyYW1ldGVycykKICAgICBTQ1JPTExJTkdf
Tk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pCiAgICAgU0NST0xMSU5HX05PREVfRU5D
T0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24s
IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisjZW5kaWYKIAogICAgIGlmIChub2RlLmhhc0No
YW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5l
ckxheWVyKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQ
bGF0Zm9ybUxheWVySUQ+KG5vZGUuc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSk7CkBAIC0yNjAsNyAr
MjYzLDEyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsCiAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQ
b3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgICAgIGJvb2wgc2Ny
b2xsV2l0aEFuaW1hdGlvbiA9IGZhbHNlOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Nyb2xsV2l0aEFuaW1hdGlvbikpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgc2Ny
b2xsV2l0aEFuaW1hdGlvbik7CiAgICAgfQogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7
CkBAIC02MDgsNiArNjE2LDkgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29u
c3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAgICBpZiAoIWNo
YW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICB0
cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24iLCBub2RlLnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1z
Y3JvbGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0aWMiLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24t
d2l0aC1hbmltYXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlv
bigpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8
IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Ny
b2xsQ29udGFpbmVyTGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlh
bWwKaW5kZXggMmU3YjRiNGZlNC4uZmViMmMzZjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzI0LDYgKzEzMjQsMTMgQEAgQmxvY2tpbmdPZlNtYWxs
UGx1Z2luc0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlN0b3AgcGx1Z2lu
cyBzbWFsbGVyIHRoYW4gYSBjZXJ0YWluIHRocmVzaG9sZCBmcm9tIGxvYWRpbmcuIgogICBjYXRl
Z29yeTogaW50ZXJuYWwKIAorQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDoKKyAgdHlw
ZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NT
T00gVmlldyBTbW9vdGggU2Nyb2xsaW5nIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJF
bmFibGUgRE9NIEFQSSBhbmQgQ1NTIHByb3BlcnR5IGZvciAnc21vb3RoJyBzY3JvbGwgYmVoYXZp
b3IiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogV2ViQW5pbWF0aW9uc0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzMzU0YWM2ZWVjLi4xMDhlNGMwM2I3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
QEAgLTE2MTcsNiArMTYxNywxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcG9pbnRzRXF1YWxJbkRl
dmljZVBpeGVscyhDR1BvaW50IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2aWNlUwogICAgICAgICAm
JiBmYWJzKGEueSAqIGRldmljZVNjYWxlRmFjdG9yIC0gYi55ICogZGV2aWNlU2NhbGVGYWN0b3Ip
IDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKIH0KIAorc3RhdGljIGlu
bGluZSBib29sIHBvaW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoQ0dQb2ludCBhLCBDR1Bv
aW50IGIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIHJldHVybiBDR1JvdW5kKGEu
eCAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueCAqIGRldmljZVNjYWxlRmFjdG9y
KQorICAgICAgICAmJiBDR1JvdW5kKGEueSAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5k
KGIueSAqIGRldmljZVNjYWxlRmFjdG9yKTsKK30KIHN0YXRpYyBDR1NpemUgcm91bmRTY3JvbGxW
aWV3Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIENHU2l6ZSBj
b250ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IHBhZ2UuZGV2aWNl
U2NhbGVGYWN0b3IoKTsKQEAgLTIzNDEsOSArMjM0NiwxMCBAQCBzdGF0aWMgV2ViQ29yZTo6Rmxv
YXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVu
dE9mZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihXZWJDb3Jl
OjpGbG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNvbnRlbnRPZmZzZXQp
KTsKIH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6
OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2lu
dClzY3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihX
ZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6
SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7Ci0gICAgaWYg
KF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0
ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykK
KyAgICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBwZWQuCisgICAgaWYg
KCFhbmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8fCBfZHluYW1p
Y1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6
Ok5vdFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6RmxvYXRQb2lu
dCBjb250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZy
b21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2luKSk7CkBA
IC0yMzU3LDEzICsyMzYzLDIxIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFp
bkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAKICAgICBbX3Nj
cm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CiAKLSAgICBpZiAo
IUNHUG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
LCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Njcm9sbFZpZXcgc2V0
Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXNdOworICAg
IC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1dCBpbiB0aGUgc2Ft
ZSBkZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4KKyAgICAvLyBXZSBu
ZWVkIHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhlcmUuCisgICAgaWYg
KCFwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZzZXRJblNjcm9sbFZp
ZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBfcGFnZS0+ZGV2aWNl
U2NhbGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OmNv
bnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDphbmltYXRlZF07CiAg
ICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBhbnl0aGluZywgdGhl
cmUgd291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRlIHNlbnQgdG8gdGhl
IGNvbnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtlZXAgdGhlIGludmFs
aWQgY29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAgICAgICAvLyBUbyBz
eW5jaHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2NyZWVuLCB3ZSBzZW5k
IHRoZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdlLT5yZXNlbmRMYXN0
VmlzaWJsZUNvbnRlbnRSZWN0cygpOworICAgICAgICAvLyBJZiBfc2Nyb2xsVmlldyB3b24ndCBj
aGFuZ2UsIHdlIHN0aWxsIG5lZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nlc3MgdGhhdCB0aGUgYW5p
bWF0aW9uIHN0b3BwZWQuCisgICAgICAgIGlmIChhbmltYXRlZCkgeworICAgICAgICAgICAgV2Vi
S2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9wYWdl
LT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgICAgICAgICBpZiAoY29vcmRpbmF0
b3IpCisgICAgICAgICAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290Tm9kZUlz
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CisgICAgICAgIH0KICAg
ICB9CiB9CiAKQEAgLTI4NzksNiArMjg5MywxMCBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2lu
dCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgog
LSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcg
KilzY3JvbGxWaWV3CiB7CiAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGluZ107CisKKyAgICBX
ZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9yID0gX3Bh
Z2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICBpZiAoY29vcmRpbmF0b3IpCisg
ICAgICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOwogfQogCiAtICh2b2lkKV9zY3JvbGxWaWV3RGlk
SW50ZXJydXB0RGVjZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5o
CmluZGV4IDQzNTA4MGYzMjQuLjVjYjVmNTgxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC05Nyw3ICs5Nyw3
IEBAIHN0cnVjdCBQcmludEluZm87CiAKIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4p
X3Rha2VWaWV3U25hcHNob3Q7CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0
aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2Vi
Q29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luOworLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Ny
b2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3Jp
Z2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0
ZWQ7CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0
IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNjcm9sbERpc3RhbmNl
OihmbG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFuY2U7CiAtIChkb3VibGUpX2luaXRpYWxTY2FsZUZh
Y3RvcjsKIC0gKGRvdWJsZSlfY29udGVudFpvb21TY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAppbmRleCBlODQ4MjRmZDg1Li5kZTNkMzM2NzlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDggQEAgcHVibGljOgogICAgIC8vIFRl
bGwgdGhlIHZpZXcgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBwb3NpdGlvbiwgYW5kIHdoZXRoZXIg
dGhpcyB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIHsgfQor
CiAgICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiAobm90IG5lY2Vzc2Fy
aWx5IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwgYmVjYXVzZSBvZiBz
Y2FsaW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmll
d1Njcm9sbFBvc2l0aW9uKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDM4MGYxMjQ0NDMuLjBhNDJmOTQ0OTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0yMjQsOCAr
MjI0LDE0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5
ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAKICAgICAvLyBIYW5kbGUgcmVxdWVz
dGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlIHRyYW5z
YWN0aW9uIGFmdGVyIGRpZENvbW1pdExheWVyVHJlZSgpCiAgICAgLy8gaGFzIHVwZGF0ZWQgdGhl
IHZpZXcgc2l6ZSBiYXNlZCBvbiB0aGUgY29udGVudCBzaXplLgotICAgIGlmIChyZXF1ZXN0ZWRT
Y3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpCi0gICAgICAgIG1fd2ViUGFn
ZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCkpOworICAgIGlmIChy
ZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpIHsKKyAgICAg
ICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAsIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNj
cm9sbE9yaWdpbigpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgICAgICwgcmVx
dWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0V2l0aEFuaW1hdGlvbgorI2VuZGlmCisgICAgICAgICAg
ICApOworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogCiAgICAgaWYg
KG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggNDgyM2Y3NmE5Ny4uOGNmMWQ4NGEx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNw
cApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6CiB9CiAKIC8vIFRo
aXMgY29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUuCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJ
RCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNv
bnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKQordm9pZCBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9s
bChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Nj
cm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRP
cmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bkFjdGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKIHsKICAgICAvLyBT
Y3JvbGwgdXBkYXRlcyBmb3IgdGhlIG1haW4gZnJhbWUgYXJlIHNlbnQgdmlhIFdlYlBhZ2VQcm94
eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cygpCiAgICAgLy8gc28gZG9uJ3Qgc2VuZCB0aGVt
IGhlcmUuCkBAIC0yMjIsMjEgKzIyMiwzNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRAogICAg
IG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVTY3JvbGxWaWV3RGlkU2Nyb2xsKCk7CiAjZW5k
aWYKIAotICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3Jv
bGwoKSkKKyAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Ny
b2xsKCkgJiYgIWluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKQogICAgICAgICByZXR1cm47
CiAKICAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvcjo6U2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShzY3JvbGxlZE5vZGVJRCwgbmV3
U2Nyb2xsUG9zaXRpb24sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPT0gU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykpOwogfQogCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5n
Tm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
Ym9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGlu
Z05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQog
ewogICAgIGlmIChzY3JvbGxlZE5vZGVJRCA9PSByb290U2Nyb2xsaW5nTm9kZUlEKCkgJiYgbV9y
ZXF1ZXN0ZWRTY3JvbGxJbmZvKSB7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVx
dWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSA9IHRydWU7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Ny
b2xsSW5mby0+cmVxdWVzdElzUHJvZ3JhbW1hdGljU2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbDsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBtX3JlcXVlc3Rl
ZFNjcm9sbEluZm8tPnJlcXVlc3RXaXRoQW5pbWF0aW9uID0gd2l0aEFuaW1hdGlvbjsKKyNlbmRp
ZgogICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
ID0gc2Nyb2xsUG9zaXRpb247CiAgICAgfQogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
K3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJ
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlEIHNjcm9sbGVkTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sK
KyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHNjcm9sbGVkTm9k
ZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsKK30KKwordm9pZCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mp
Cit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShyb290U2Ny
b2xsaW5nTm9kZUlEKCksIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOworfQorI2VuZGlm
CisKIFN0cmluZyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVl
QXNUZXh0KCkgY29uc3QKIHsKICAgICBpZiAobV9zY3JvbGxpbmdUcmVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggMWE3Njk0M2YyNC4uODEx
NWU0NzdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5oCkBAIC01NSw5ICs1NSwxNCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eShXZWJQYWdlUHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzcyk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NEaWRDaGFuZ2UoYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOwor
I2VuZGlmCisKICAgICAvLyBJbmZvcm0gdGhlIHdlYiBwcm9jZXNzIHRoYXQgdGhlIHNjcm9sbCBw
b3NpdGlvbiBjaGFuZ2VkIChjYWxsZWQgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUpCi0gICAgdm9p
ZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFdlYkNvcmU6OlNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVS
ZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwg
Y29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2lu
LCBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBib29sIGluc3RhbnRTY3Jv
bGxEaWRTdG9wQW5pbWF0aW9uID0gZmFsc2UpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVS
ZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwsIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKIAogICAgIFdlYkNvcmU6OlRyYWNraW5n
VHlwZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFt
ZSwgV2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0OwogCkBAIC04MCw2ICs4NSw5IEBAIHB1YmxpYzoK
ICAgICBzdHJ1Y3QgUmVxdWVzdGVkU2Nyb2xsSW5mbyB7CiAgICAgICAgIGJvb2wgcmVxdWVzdHNT
Y3JvbGxQb3NpdGlvblVwZGF0ZSB7IH07CiAgICAgICAgIGJvb2wgcmVxdWVzdElzUHJvZ3JhbW1h
dGljU2Nyb2xsIHsgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBib29sIHJl
cXVlc3RXaXRoQW5pbWF0aW9uIHsgfTsKKyNlbmRpZgogICAgICAgICBXZWJDb3JlOjpGbG9hdFBv
aW50IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOwogICAgIH07CiAgICAgdm9pZCBjb21taXRTY3Jv
bGxpbmdUcmVlU3RhdGUoY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
biYsIFJlcXVlc3RlZFNjcm9sbEluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcApp
bmRleCBhZmFiYmMxZWFlLi5kNTczYTMxZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
Y3BwCkBAIC0xMDQsMTIgKzEwNCwxNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJgogICAgIGlm
IChpczxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKSkKICAgICAgICAgbGF5
b3V0Vmlld3BvcnRPcmlnaW4gPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlPihub2RlKS5sYXlvdXRWaWV3cG9ydCgpLmxvY2F0aW9uKCk7CiAKLSAgICBtX3Njcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxp
bmdOb2RlSUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRP
cmlnaW4sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworICAgIGJvb2wgaW5zdGFudFNj
cm9sbERpZFN0b3BBbmltYXRpb24gPSBmYWxzZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uID0gbm9kZS5uZWVkc1N0b3BDdXJyZW50
U2Nyb2xsQW5pbWF0aW9uKCkgJiYgIW5vZGUucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCk7CisjZW5k
aWYKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRT
Y3JvbGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24o
KSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGlu
c3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKTsKIH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdU
cmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpCit2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVO
b2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2lu
dCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9v
bCB3aXRoQW5pbWF0aW9uKQogewotICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3Jv
bGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24s
IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIHdpdGhBbmltYXRpb24pOwogfQogCiBSZWY8
U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1Ry
ZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
KQpAQCAtMTQzLDYgKzE0NywxMyBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9s
bGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZAogICAgIHJldHVy
biBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxp
bmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykK
K3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Nj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3Vy
cmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5z
aWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpCiB7CiAgICAgbV9zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKG5vZGVJRCwg
aG9yaXpvbnRhbCwgdmVydGljYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggMjNi
YWMwNmEzYi4uMGY5ZTA5NDk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC01Miw3
ICs1MiwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eSYgc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eTsgfQogCiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNj
cm9sbChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFdlYkNvcmU6OlNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVz
dHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3Np
dGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRp
b24gPSBmYWxzZSkgb3ZlcnJpZGU7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uo
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cykgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNE
aWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1
bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKaW5kZXggZTYzN2Q2MTUz
Mi4uMDBiNGRiY2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxWaWV3V2lsbFN0
YXJ0UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsVmlld0RpZFNjcm9sbChjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPZmZzZXQsIGJvb2wgaW5Vc2VySW50ZXJhY3Rp
b24pOworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbigpOwogCiAg
ICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25lZCBob3Jpem9u
dGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7CiAgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5k
ZXggZTc2ODk4Mzc1OC4uODQ4ODYzYTgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMTUyLDYgKzE1
MiwxMSBAQAogICAgIH0KIH0KIAorLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5p
bWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgX3Njcm9sbGluZ1RyZWVO
b2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKTsKK30KKwog
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Ny
b2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zm
c2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQp
c3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZl
bG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUg
Kil2dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIAog
ICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CiAgICAgICAgIGF1
dG8gc2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
blJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSA/IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRp
YyA6IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhz
Y3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSk7
CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25X
aXRoQW5pbWF0aW9uKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2V0UmVxdWVzdEFu
aW1hdGVkU2Nyb2xsKHRydWUpOworICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9ucyBh
cmUgbm90IHRoZSBzYW1lLCB0aGVyZSdzIGEgcG9zc2liaWxpdHkgdGhhdCB0aGUgc2Nyb2xsIG9m
ZnNldCBmcm9tIHRoZSBXZWIgcHJvY2VzcyBoYXMgYmVlbiBvdmVycmlkZGVuLgorICAgICAgICAv
LyBJbiB0aGlzIGNhc2UsIHRoZSBzY3JvbGwgcG9zaXRpb24gbmVlZCB0byBiZSBzZW50IHRvIHRo
ZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgYm9vbCBzaG91bGRTeW5jU2Nyb2xsUG9zaXRpb24gPSBz
Y3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsUG9zaXRpb24oKSAhPSBzY3JvbGxpbmdOb2RlKCkuY3Vy
cmVudFNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhz
Y3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSwg
U2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMsIHNob3VsZFN5bmNTY3JvbGxQb3Np
dGlvbik7CiAgICAgfQogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKQogewotICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwotICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxp
bmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCisgICAgYm9vbCBhbmltYXRpb25JblByb2dyZXNzID0gc2Nyb2xsaW5nTm9kZSgpLnNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKTsKKyAgICBib29sIG5lZWRUb1N0b3BBbmltYXRpb24g
PSBzY3JvbGxpbmdOb2RlKCkubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpOworICAg
IGlmIChuZWVkVG9TdG9wQW5pbWF0aW9uICYmIGFuaW1hdGlvbkluUHJvZ3Jlc3MpIHsKKyAgICAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0
Q29udGVudE9mZnNldDpzY3JvbGxWaWV3KCkuY29udGVudE9mZnNldCBhbmltYXRlZDpOT107Cisg
ICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CisKKyAgICBpZiAoc2Nyb2xs
aW5nTm9kZSgpLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKSB7CisgICAgICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6
c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKSBhbmltYXRlZDpZRVNdOworICAg
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgp
LnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3ModHJ1ZSk7CisgICAgfSBlbHNlIGlmICghYW5p
bWF0aW9uSW5Qcm9ncmVzcyB8fCBuZWVkVG9TdG9wQW5pbWF0aW9uKSB7CisgICAgICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRP
ZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07CisgICAgICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsV2lsbFN0YXJ0KCkgY29uc3QKQEAgLTMzNSw2
ICszNjEsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpz
Y3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQKICAgICBzY3JvbGxpbmdOb2RlKCku
d2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhzY3JvbGxQb3NpdGlvbiwgeyB9LCBpblVz
ZXJJbnRlcmFjdGlvbiA/IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMgOiBTY3Jv
bGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRp
b24oKQoreworICAgIGF1dG8mIG5vZGUgPSBzY3JvbGxpbmdOb2RlKCk7CisgICAgaWYgKCEobm9k
ZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBub2RlLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MoKSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZh
bHNlKTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKGZhbHNlKTsK
KyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6
Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5z
aWduZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAgaWYgKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2Rl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZGIyY2UwNzlj
YS4uZDA5ZjYwN2FjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0xNzY3LDkgKzE3NjcsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rp
c3BsYXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAgICAgcGFnZUNsaWVudCgpLnNldFZpZXdOZWVk
c0Rpc3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwo
Y29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxP
cmlnaW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgYm9v
bCB3aXRoQW5pbWF0aW9uKQogewotICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9s
bFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGlmICh3aXRoQW5pbWF0aW9uKQorICAgICAg
ICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oc2Nyb2xsUG9zaXRpb24s
IHNjcm9sbE9yaWdpbik7CisgICAgZWxzZQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNj
cm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQ
b2ludCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFlMzg1MjIyMWQuLmFmMDdlYTQ5MjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02MTMsNyArNjEzLDcgQEAg
cHVibGljOgogICAgIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQoKSBjb25zdDsKIAogICAgIHZvaWQg
c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKTsKLSAgICB2b2lkIHJl
cXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pOworICAgIHZvaWQgcmVxdWVzdFNj
cm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2Up
OwogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKaW5kZXggZDZjOGMzOGQ0YS4uNTE5OGVmNDQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0
ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0Fy
ZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZXdOZWVk
c0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1
ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKKyAgICB2b2lkIHJl
cXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9s
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlk
ZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRl
OwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29sIGlz
Vmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGRjOWY3NGM0OWEuLjJjMzBjNGJjMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0KQEAgLTk1LDcgKzk1LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rp
c3BsYXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9s
bChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9s
bE9yaWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlv
bjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luXTsKKyAgICBbbV93ZWJW
aWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxP
cmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5PXTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit7CisgICAgW21fd2ViVmlldyBf
c2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2lu
OnNjcm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwogfQogCiBXZWJDb3JlOjpGbG9hdFBvaW50IFBh
Z2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA4ZTY0OTM1NTQ1Li4zZDM0
NWQ3NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbFBv
c2l0aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7
CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwp
OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgorCiAgICAgV2ViUGFnZSogbV93ZWJQ
YWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4IDJjMDk4YTEwOTcuLjUzN2ZkMzRk
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDkgQEAKIG1lc3NhZ2VzIC0+
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAgICBTY3JvbGxQb3NpdGlvbkNoYW5nZWRG
b3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxQb3NpdGlv
biwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgQ3VycmVudFNuYXBQb2ludEluZGljZXND
aGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2ln
bmVkIHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIGJvb2wgaXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEFT
WU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvci5tbQppbmRleCA4MzU0NDFkMzE5Li42ODlkNTU2MjZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC0x
MDQsNiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmN1cnJlbnRT
bmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoU2Nyb2xsaW5nCiAgICAgc2V0QWN0aXZlU2Ny
b2xsU25hcEluZGljZXMobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CiB9CiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAgIHNl
dFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8g
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBi
OWRhZTJjZTEwLi5iY2Y1ZWI4YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEu
Y29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9u
IHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIHJ1biB0aW1lIGZs
YWcgZm9yIENTU09NVmlld1Ntb290aFNjcm9sbGluZy4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEhhbmRsZSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcg
YnkuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKFtXZWJQ
cmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IERpc2FibGUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
IGJ5IGRlZmF1bHQuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIENTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWRdKTogR2V0dGVyLgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOl0pOiBTZXR0ZXIuCisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOS0x
Mi0wOSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW5hbWUgbWVkaWEgaW4gdGhlIEdQVSBwcm9jZXNzIHByZWZlcmVuY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oCmluZGV4IDQ0MWI1YTg3NzYuLmM2NzlmYmQ2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApA
QCAtMTg4LDYgKzE4OCw3IEBACiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKICNkZWZpbmUgV2Vi
S2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgor
I2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtl
eSBAIldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktp
dE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1vZGVybk1l
ZGlhQ29udHJvbHNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRSZW1vdGVQbGF5YmFja0VuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0UmVtb3RlUGxheWJhY2tFbmFibGVkIgogI2RlZmluZSBXZWJL
aXRTdWJ0bGVDcnlwdG9FbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFN1YnRsZUNyeXB0b0Vu
YWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQppbmRleCA0N2Y3Yzc1ZGRhLi5jZDIzNjc0NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY2Myw2ICs2NjMs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgICAgICBAWUVTLCBXZWJLaXRDU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgQE5PLCBXZWJLaXRDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQFlFUywgV2Vi
S2l0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmtLZXksCiAgICAgICAgIEBOTywg
V2ViS2l0QWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHNLZXks
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTMxODEsNiArMzE4MiwxNiBAQCBzdGF0aWMg
TlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1
ZTpmbGFnIGZvcktleTpXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5j
ZUtleV07CiB9CiAKKy0gKEJPT0wpQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZAorewor
ICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdENTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZh
bHVlOmZsYWcgZm9yS2V5OldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVm
ZXJlbmNlS2V5XTsKK30KKwogLSAoQk9PTCl3ZWJBbmltYXRpb25zRW5hYmxlZAogewogICAgIHJl
dHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdFdlYkFuaW1hdGlvbnNFbmFibGVkUHJl
ZmVyZW5jZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA1OTc1OGUyMzM1Li4wOTExOTMxZGMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmgKQEAgLTYzMiw2ICs2MzIsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlBy
ZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQ
UgogCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
OworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5n
RW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFuaW1hdGVkSW1hZ2VBc3luY0Rl
Y29kaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRNYXJr
dXBFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmlu
ZGV4IDQ3YWFlMzI4ZGIuLjY2NzAzNTllMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI5OTIsNiArMjk5Miw3IEBAIHN0YXRpYyBib29sIG5lZWRz
U2VsZlJldGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3
cG9ydEFQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZF0pOwog
ICAgIHNldHRpbmdzLnNldFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQoW3ByZWZlcmVu
Y2VzIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTY3JvbGxp
bmdBUElFbmFibGVkXSk7CisgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZF0pOwog
ICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0p
OwogCiAgICAgc3dpdGNoIChbcHJlZmVyZW5jZXMgc3RvcmFnZUJsb2NraW5nUG9saWN5XSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDQyMDE0ZDk5ZDUuLmU3Y2E2ZjcyMjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0xMi0xMCAg
Q2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMg
V2FuZy4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6
IEhhbmRsZSBzbW9vdGggc2Nyb2xsaW5nIG9wdGlvbi4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaDogRGl0dG8uCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOiBEaXR0
by4KKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToK
KyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
KToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkKToKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5oOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJWaWV3LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0No
YW5nZWQpOgorCiAyMDE5LTEyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUGFnZUNvbmZpZ3VyYXRpb246OmRyYWdDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0
IHBvaW50ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMv
SVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRl
cmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IGE3MTc2MjIyMWIuLmNjZmY5
ZjA1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdl
YlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50
ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjIzLDYgKzIyMyw4IEBAIGlu
dGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1
CiAgICAgSFJFU1VMVCBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJs
ZWQpOwogICAgIEhSRVNVTFQgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbb3V0LCByZXR2
YWxdIEJPT0wqKTsKICAgICBIUkVTVUxUIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQo
W2luXSBCT09MIGVuYWJsZWQpOworICAgIEhSRVNVTFQgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldENTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgZmV0
Y2hBUElLZWVwQWxpdmVFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCogZW5hYmxlZCk7CiAgICAg
SFJFU1VMVCBzZXRGZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwog
ICAgIEhSRVNVTFQgc3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCAq
ZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCmluZGV4IDA5OTM3NDIwZTQuLjA4YzQ1NjcyN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yMDks
NiArMjA5LDcgQEAKICNkZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VL
ZXkgIldlYktpdFNlcnZlclRpbWluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3
U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIgog
CiAjZGVmaW5lIFdlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktp
dFJlc2l6ZU9ic2VydmVyRW5hYmxlZCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZXMuY3BwCmluZGV4IDk1ZWJlYTI2OGMuLmM4ZTIyNWFhNDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTMzOSw2ICszMzksOCBAQCB2b2lk
IFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGlj
dGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJs
ZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlvbmFyeUFk
ZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlB
ZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0Q29yZU1hdGhNTEVuYWJsZWRQcmVmZXJlbmNl
S2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1
bHRzLCBDRlNUUihXZWJLaXRSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZFByZWZlcmVuY2VLZXkp
LCBrQ0ZCb29sZWFuRmFsc2UpOwpAQCAtMjI4Myw2ICsyMjg1LDIwIEBAIEhSRVNVTFQgV2ViUHJl
ZmVyZW5jZXM6OnNldENvcmVNYXRoTUxFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4g
U19PSzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6Q1NTT01WaWV3U21vb3RoU2Nyb2xs
aW5nRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAg
ICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShX
ZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAg
cmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldENTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShX
ZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxl
ZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnJlcXVl
c3RJZGxlQ2FsbGJhY2tFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFl
bmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5j
ZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggMWRh
YWE3MzAyNS4uNjA2NmU0NjQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJl
bmNlcy5oCkBAIC0yNzEsNiArMjcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9PTCk7CiAgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOworICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9P
dXRfIEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q1NT
T01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKF9PdXRfIEJPT0wqKTsK
ICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RmV0Y2hBUElLZWVwQWxp
dmVFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBz
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJWaWV3LmNwcAppbmRleCBhMDQ0OGJiMDEzLi5kMmIyMmYwNDc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcApAQCAtNTMxOCw2ICs1MzE4LDExIEBAIEhSRVNVTFQgV2ViVmlldzo6
bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikK
ICAgICAgICAgcmV0dXJuIGhyOwogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAg
ICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNldENTU09NVmlld1Ntb290aFNjcm9sbGlu
Z0VuYWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZmVyZW5jZXMtPnByaXZhdGVCcm93
c2luZ0VuYWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1
cm4gaHI7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggMDBkYWJlNzNmNC4uZTlhMTI4YjAyNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTEwICBDYXRoaWUg
Q2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
c2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMg
V2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoVGVz
dE9wdGlvbnM6OlRlc3RPcHRpb25zKTogUGFyc2UgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOiBBZGQgQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCwgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChzZXRXZWJQ
cmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKTogU2V0IENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQgZnJvbSB0aGUgdGVzdCBvcHRpb25zLgorCiAyMDE5LTEyLTEwICBQZXIgQXJuZSBWb2xs
YW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggQVBJIHRlc3QgZmFpbHVyZSBh
ZnRlciByMjUzMzUxCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9u
cy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggN2M5YWU1
OTk0YS4uMjM3Yzk4ODc4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAt
MTQyLDYgKzE0Miw4IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmlu
ZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBhZENs
aWNrQXR0cmlidXRpb25FbmFibGVkID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVl
KTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVzaXplT2JzZXJ2ZXJF
bmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZVJlc2l6ZU9ic2VydmVyID0gcGFyc2VCb29sZWFu
VGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIpCisgICAgICAgICAgICBlbmFi
bGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUo
dmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpDb3JlTWF0aE1M
RW5hYmxlZCIpCiAgICAgICAgICAgICBlbmFibGVDb3JlTWF0aE1MID0gcGFyc2VCb29sZWFuVGVz
dEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50
YWw6UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmgKaW5kZXggZTUzMzVlODMxMS4uZjdlOGQyOTExZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0
aW9ucy5oCkBAIC01MCw2ICs1MCw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBl
bmFibGVDU1NMb2dpY2FsIHsgZmFsc2UgfTsKICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkVu
YWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlUmVzaXplT2JzZXJ2ZXIgeyBmYWxzZSB9
OworICAgIGJvb2wgZW5hYmxlQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nIHsgZmFsc2UgfTsKICAg
ICBib29sIGVuYWJsZUNvcmVNYXRoTUwgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlUmVxdWVz
dElkbGVDYWxsYmFjayB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVBc3luY0NsaXBib2FyZEFQ
SSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0K
aW5kZXggY2NmZmUwNTVkMy4uNjdjYWVhNzE4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTAyOSw2ICsxMDI5LDcgQEAgc3RhdGljIHZvaWQgc2V0
V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykK
ICAgICBwcmVmZXJlbmNlcy5DU1NMb2dpY2FsRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTTG9n
aWNhbDsKICAgICBwcmVmZXJlbmNlcy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gb3B0aW9u
cy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkOwogICAgIHByZWZlcmVuY2VzLnJlc2l6ZU9ic2Vy
dmVyRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlUmVzaXplT2JzZXJ2ZXI7CisgICAgcHJlZmVyZW5j
ZXMuQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nOwogICAgIHByZWZlcmVuY2VzLmNvcmVNYXRoTUxFbmFibGVkID0g
b3B0aW9ucy5lbmFibGVDb3JlTWF0aE1MOwogICAgIHByZWZlcmVuY2VzLnJlcXVlc3RJZGxlQ2Fs
bGJhY2tFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrOwogICAgIHBy
ZWZlcmVuY2VzLmFzeW5jQ2xpcGJvYXJkQVBJRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQXN5bmND
bGlwYm9hcmRBUEk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385602</attachid>
            <date>2019-12-13 07:53:20 -0800</date>
            <delta_ts>2019-12-15 07:08:31 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_40.diff</filename>
            <type>text/plain</type>
            <size>302842</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjg4NDBmM2NmLi4zNWZhMzg0M2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0g
aXMgYmFzZWQgb24gQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5j
IHNjcm9sbCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJl
Zm9yZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0
byBmYXN0L3Njcm9sbGluZy9pb3MvLCB0aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAgICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAg
ICAod2FpdEZvclNjcm9sbEVuZCk6CisgICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNj
cm9sbFdpbmRvdyk6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sLgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNh
dGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJl
aGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4ODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUg
cGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
OiBTa2lwIHRoZXNlIHRlc3RzIG9uIFdLMSBhcyB0aGV5IGRvbid0IHdvcmsgZm9yIG5vdy4KKwor
MjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxOS0xMi0xMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgog
CiAgICAgICAgIENyZWF0ZSBhIFRlc3RFeHBlY3RhdGlvbnMgZmlsZSBmb3IgdGhlIEdQVSBwcm9j
ZXNzIHJlbGF0ZWQgd29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwLi4wYTA5NjhlMDI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKQEAg
LTAsMCArMSw4NyBAQAorZnVuY3Rpb24gb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgY2FsbGJh
Y2spIHsKKyAgaWYgKCFBcnJheS5pc0FycmF5KGVsZW1lbnRzKSkKKyAgICAgIGVsZW1lbnRzID0g
W2VsZW1lbnRzXTsKKyAgdmFyIGxhc3RDaGFuZ2VkRnJhbWUgPSAwOworICB2YXIgbGFzdExlZnQg
PSBuZXcgTWFwKCk7CisgIHZhciBsYXN0VG9wID0gbmV3IE1hcCgpOworICBlbGVtZW50cy5mb3JF
YWNoKChlbGVtZW50KSA9PiB7CisgICAgbGFzdExlZnQuc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Ny
b2xsTGVmdCk7CisgICAgbGFzdFRvcC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOwor
ICB9KTsKKyAgZnVuY3Rpb24gdGljayhmcmFtZXMpIHsKKyAgICAvLyBXZSByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgZWl0aGVyIGZvciA1MDAgZnJhbWVzIG9yIHVudGlsIDIwIGZyYW1lcyB3aXRoCisg
ICAgLy8gbm8gY2hhbmdlIGhhdmUgYmVlbiBvYnNlcnZlZC4KKyAgICBpZiAoZnJhbWVzID49IDUw
MCB8fCBmcmFtZXMgLSBsYXN0Q2hhbmdlZEZyYW1lID4gMjApIHsKKyAgICAgIGNhbGxiYWNrKHRy
dWUpOworICAgIH0gZWxzZSB7CisgICAgICB2YXIgc2Nyb2xsSGFwcGVuZWQgPSBlbGVtZW50cy5z
b21lKChlbGVtZW50KSA9PiB7CisgICAgICAgIHJldHVybiBlbGVtZW50LnNjcm9sbExlZnQgIT0g
bGFzdExlZnQuZ2V0KGVsZW1lbnQpIHx8IGVsZW1lbnQuc2Nyb2xsVG9wICE9IGxhc3RUb3AuZ2V0
KGVsZW1lbnQpOworICAgICAgfSk7CisgICAgICBpZiAoc2Nyb2xsSGFwcGVuZWQpIHsKKyAgICAg
ICAgbGFzdENoYW5nZWRGcmFtZSA9IGZyYW1lczsKKyAgICAgICAgZWxlbWVudHMuZm9yRWFjaCgo
ZWxlbWVudCkgPT4geworICAgICAgICAgIGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNj
cm9sbExlZnQpOworICAgICAgICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xs
VG9wKTsKKyAgICAgICAgfSk7CisgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsKKyAgICAgIH0KKyAg
ICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrLmJpbmQobnVsbCwgZnJhbWVzICsgMSkpOwor
ICAgIH0KKyAgfQorICB0aWNrKDApOworfQorCitmdW5jdGlvbiB3YWl0Rm9yU2Nyb2xsRW5kKGVs
ZW1lbnRzKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgIG9ic2Vy
dmVTY3JvbGxpbmcoZWxlbWVudHMsIChkb25lKSA9PiB7CisgICAgICBpZiAoZG9uZSkKKyAgICAg
ICAgcmVzb2x2ZSgpOworICAgIH0pOworICB9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCkgeworICAvLyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0
aGUgZWxlbWVudCBwb3NpdGlvbiBpcyByZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOwor
ICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImlu
c3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dp
bmRvdykgeworICAvLyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0aGUgZWxlbWVudCBw
b3NpdGlvbiBpcyByZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwgYmVoYXZpb3I6ICJpbnN0YW50In0pOworfQorCitmdW5j
dGlvbiBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCBjbGFzc05hbWUpIHsKKyAgc3R5
bGVkRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJhdXRvQmVoYXZpb3IiLCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgc3R5bGVkRWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7Cit9CisKK2Z1
bmN0aW9uIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2
aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFy
Z3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsK
KyAgc3dpdGNoIChzY3JvbGxGdW5jdGlvbikgeworICAgIGNhc2UgInNjcm9sbEludG9WaWV3IjoK
KyAgICAgIGFyZ3MuaW5saW5lID0gInN0YXJ0IjsKKyAgICAgIGFyZ3MuYmxvY2sgPSAic3RhcnQi
OworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbEludG9WaWV3KGFyZ3MpOworICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7
CisgICAgICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgICAgIHNjcm9sbGluZ0Vs
ZW1lbnRbc2Nyb2xsRnVuY3Rpb25dKGFyZ3MpOworICAgICAgYnJlYWs7CisgIH0KK30KKworZnVu
Y3Rpb24gc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2
aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFy
Z3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9yKQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsK
KyAgYXJncy5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgYXJncy50b3AgPSBlbGVtZW50
VG9SZXZlYWxUb3A7CisgIHNjcm9sbGluZ1dpbmRvd1tzY3JvbGxGdW5jdGlvbl0oYXJncyk7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjhkNGNhNjQxNTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQt
Y3NzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBJbnN0YW50IHNjcm9sbGlu
ZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCitQQVNTIFNtb290
aCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uMzVjNjUwM2FiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMCww
ICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVy
aW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFz
eW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIGRl
ZmF1bHQgdmFsdWUgb2Ygc2Nyb2xsLWJlaGF2aW9yPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJp
YyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9s
bC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3Jv
bGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVp
Z2h0OiAyMDBweDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYg
aWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0
aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEz
NWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1l
bnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246
IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwv
c3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBzY3JvbGxpbmdFbGVtZW50
ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFy
IGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgdmFyIHNjcm9sbEZ1bmN0aW9uID0gInNjcm9s
bCI7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7Cisg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgfSwgIkluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQg
d2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVs
eSIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIlNtb290
aCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjUzYTk2MWVmNTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKKworUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJv
cnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxl
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDM4
ZGZmZGVjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50
PC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsK
KyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuYXV0b0JlaGF2
aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9y
IHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUi
PgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3Vu
ZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48
L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1i
bG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Cisg
IHZhciBzY3JvbGxpbmdFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgc3R5bGVkRWxlbWVu
dCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZh
ciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisKKyAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAi
c2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4g
eworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVo
YXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
YXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rp
b24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRv
IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwg
YEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
YXV0byBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7Cisg
ICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bFRvcCIpOworICAgICAgfSk7CisgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgIH0p
OworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
ZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7Cisg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJv
b3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk3
Y2FlYTI3YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzNyBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5n
IAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4g
ZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDMy
NWI0YjllMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNjkgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAg
IG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6
IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBh
Z2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4K
KyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0g
YXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxl
ZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1
bmN0aW9uKCkgeworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAg
cGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiA1ICsg
InB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cuaW5uZXJI
ZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsgd2luZG93
LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQgPSBlbGVt
ZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUudG9wID0g
ZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNr
KCgpID0+IHsgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7IH0pOworCisgICAgWyJzY3Jv
bGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChz
Y3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29s
dmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
ImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAg
ICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNj
cm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwg
InNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0p
OworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBh
biBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJp
bnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21v
b3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5n
Iik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwLi4zODIzODVhYWI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyOSBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21v
b3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi45MDU3YjBjZDEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1s
CkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGlu
dGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5U
ZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogb24gdGhl
IHdpbmRvdyBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBj
b250ZW50PSJsb25nIi8+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLG1pbmltdW0tc2NhbGU9MSxpbml0aWFsLXNjYWxlPTEiPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVo
YXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZp
b3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBp
ZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwi
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2Pgor
PHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOwor
ICB2YXIgc2Nyb2xsaW5nV2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
cGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICBzY3JvbGxpbmdXaW5k
b3cgPSB3aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRo
KSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9ICgyMCArIHdpbmRv
dy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gKDEw
ICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZlYWxUb3AgPSAoMjAg
KyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUubGVm
dCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbC5zdHls
ZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRkX2NvbXBsZXRpb25f
Y2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbEZvcldpbmRvdyh3aW5kb3cpOyB9KTsKKworICAg
IFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rp
b24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93
LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAg
ICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAg
c2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50Iiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290
aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3Ag
LyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJpbnN0YW50IiwgMCwg
MCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAuLjQ0M2E4MjBlNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mgc2Nyb2xsSW50b1ZpZXcg
d2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJlaGF2aW9yIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40NWI1ZDhkN2M3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxp
bnRvdmlldy1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIHdpdGggc2Ny
b2xsSW50b1ZpZXcgZm9yIG5lc3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxlPgorPG1ldGEgbmFt
ZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJG
csOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3Bk
ZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
KyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIGhlaWdodDogMjAwcHg7
CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsK
KyAgfQorICAuZ3JhZGllbnQgeworICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVk
ZWcsIHJlZCwgZ3JlZW4pOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2Pgor
PGRpdj4KKyAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9Indp
ZHRoOiA0NTBweCI+CisgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIHNt
b290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KKyAgICAgIDxkaXYgY2xhc3M9Imdy
YWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAg
ICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDM1MHB4Ij4KKyAgICAgICAg
PGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAz
MDBweCI+CisgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDI1MHB4Ij4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6
IDIwMHB4Ij4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0
aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0i
ZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgYmFja2dy
b3VuZDogYmxhY2s7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQi
IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAg
IDwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDog
MTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg
ICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBw
eDsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICA8L2Rpdj4K
KyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDUwMHB4OyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0Pgor
ICAvLyBUaGUgQ1NTT00tVmlldyBzcGVjIGFuZCBpbXBsZW1lbnRhdGlvbnMgZm9sbG93IGRpZmZl
cmVudCBhbGdvcml0aG1zIChzY3JvbGxzIHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgYXMgaW5uZXIt
dG8tb3V0ZXIgc2VxdWVuY2Ugb3IgYXMgb3V0ZXItdG8taW5uZXIgc2VxdWVuY2UpLgorICAvLyBT
ZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzMxMjcKKyAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICB2YXIgZGl2cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ii5zY3JvbGxhYmxlIik7CisgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsYWJsZURpdik7CisgICAgICB9KTsKKyAgICAgIGVs
ZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyh7aW5saW5lOiAic3RhcnQiLCBibG9jazogInN0
YXJ0IiwgYmVoYXZpb3I6ICJhdXRvIn0pOworICAgICAgdmFyIHNjcm9sbFRvcCA9IG5ldyBNYXAo
KTsKKyAgICAgIHZhciBpc1Ntb290aCA9IG5ldyBNYXAoKTsKKyAgICAgIGRpdnMuZm9yRWFjaCgo
c2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9sbGFibGVEaXYs
IHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgaXNTbW9vdGguc2V0KHNjcm9sbGFi
bGVEaXYsIHNjcm9sbGFibGVEaXYuY2xhc3NMaXN0LmNvbnRhaW5zKCJzbW9vdGhCZWhhdmlvciIp
KTsKKyAgICAgICAgLy8gSWYgc2Nyb2xsIG9wZXJhdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgaW4g
cGFyYWxsZWwsIHNjcm9sbCBib3hlcyB3aXRoIGluc3RhbnQgYmVoYXZpb3IgbWlnaHQgYWxzbyBu
ZWVkIHRvIHdhaXQgZm9yIHRoZWlyIHByZWRlY2Vzc29ycy4KKyAgICAgICAgaWYgKGlzU21vb3Ro
LmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbFRv
cC5nZXQoc2Nyb2xsYWJsZURpdiksIDUwMCwgIkVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
c2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkiKTsKKyAgICAgIH0pOworCisgICAgICBvYnNl
cnZlU2Nyb2xsaW5nKEFycmF5LmZyb20oZGl2cyksIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAg
dHJ5IHsKKyAgICAgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2
KSwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIp
OworICAgICAgICAgICAgaWYgKCFpc1Ntb290aC5nZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAg
ICAgICAgIGFzc2VydF9hbnkoYXNzZXJ0X2VxdWFscywgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3As
IFswLCA1MDBdLCAiRWxlbWVudCB3aXRoIGluc3RhbnQgYmVoYXZpb3Igc2hvdWxkIGp1bXAgdG8g
dGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgNTAwLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9sbGFibGVE
aXYsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSBj
YXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChk
b25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAic2Ny
b2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJl
aGF2aW9yIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu
Ljg1NWE2YTYxMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjAgQEAKKworUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hl
biBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9s
bFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Ny
b2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUw
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9u
cyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9y
bWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcg
c2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290
aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkg
IAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgw
LCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3Np
dGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAo
NTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25z
IHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUw
MCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9s
bGluZyAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9s
bGluZyB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3Ro
LXBvc2l0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBh
NDFiOGIwOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbApAQCAtMCwwICsxLDE1MSBA
QAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJm
bG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGwgcG9z
aXRpb25zIHdoZW4gc2Nyb2xsaW5nIGFuIGVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3I8L3Rp
dGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAg
IHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHNjcm9sbC1iZWhhdmlvcjog
c21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0i
b3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAy
MDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVn
LCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRv
UmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1
cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFu
PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgLy8gRm9yIHNtb290aCBiZWhhdmlvciwg
ZXZvbHV0aW9uIG9mIHNjcm9sbCBwb3NpdGlvbnMgb3ZlciB0aW1lIGlzIG5vdCBzcGVjaWZpZWQg
YnkgQ1NTT00gVmlldy4KKyAgLy8gVGhpcyB0ZXN0IHJlbGllcyBvbiB0aGUgbWluaW1hbCBhc3N1
bXB0aW9uIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGZ1bmN0aW9ucyBhcmUgbW9ub3RvbmljLgorICBb
InNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVh
Y2goZnVuY3Rpb24oc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBbe2xlZnQ6MCwgdG9wOjB9LCB7bGVm
dDoxMDAwLCB0b3A6MH0sIHtsZWZ0OjAsIHRvcDo1MDB9LCB7bGVmdDoxMDAwLCB0b3A6NTAwfV0u
Zm9yRWFjaCgoaW5pdGlhbCkgPT4geworICAgICAgdmFyIGZpbmFsTGVmdCA9IDUwMDsKKyAgICAg
IHZhciBmaW5hbFRvcCA9IDI1MDsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgaW5pdGlhbC5s
ZWZ0LCBpbml0aWFsLnRvcCk7CisgICAgICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUu
c2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRv
cDsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIGluaXRpYWwubGVmdCwgIlNjcm9s
bExlZnQgc2hvdWxkIGJlIGF0IGluaXRpYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG9sZFRvcCwgaW5pdGlhbC50b3AsICJTY3JvbGxUb3Agc2hvdWxkIGJlIGF0IGluaXRp
YWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBpZiAoc2Nyb2xsRnVuY3Rpb24gPT09ICJzY3JvbGxC
eSIpCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgc2Nyb2xsRnVuY3Rpb24s
ICJzbW9vdGgiLCBmaW5hbExlZnQgLSBpbml0aWFsLmxlZnQsIGZpbmFsVG9wIC0gaW5pdGlhbC50
b3ApOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2Rl
LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCwgZmluYWxUb3ApOworICAgICAg
ICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25lKSB7CisgICAg
ICAgICAgICB0cnkgeworICAgICAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxMZWZ0OworICAgICAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bFRvcDsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChNYXRoLmh5cG90KGZp
bmFsTGVmdCAtIG5ld0xlZnQsIGZpbmFsVG9wIC0gbmV3VG9wKSwgTWF0aC5oeXBvdChmaW5hbExl
ZnQgLSBvbGRMZWZ0LCBmaW5hbFRvcCAtIG9sZFRvcCksICJTY3JvbGwgcG9zaXRpb24gc2hvdWxk
IG1vdmUgdG93YXJkcyB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgaWYgKGRv
bmUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIGZpbmFsTGVmdCwg
IlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIGZpbmFsVG9wLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFj
aCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIG9sZExl
ZnQgPSBuZXdMZWZ0OworICAgICAgICAgICAgICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZv
cm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgke2luaXRpYWwubGVmdH0sICR7aW5pdGlhbC50
b3B9KSB0byAoJHtmaW5hbExlZnR9LCAke2ZpbmFsVG9wfSkgdXNpbmcgJHtzY3JvbGxGdW5jdGlv
bn0oKSBgKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICByZXNl
dFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxTY3JvbGxBYm9ydGVkID0g
ZmFsc2U7CisgICAgICB2YXIgc2Nyb2xsRGlyZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOworICAgICAg
dmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZhciBvbGRUb3Ag
PSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUob3Zl
cmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAgICBvYnNlcnZl
U2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgewor
ICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAg
ICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgaWYgKGlu
aXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAgICAgICAgICBpZiAoc2Nyb2xsRGlyZWN0aW9uQ2hh
bmdlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9sZExlZnQs
IG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBrZWVw
cyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgc2Nyb2xs
RGlyZWN0aW9uQ2hhbmdlZCA9IG5ld0xlZnQgPD0gb2xkTGVmdCAmJiBuZXdUb3AgPD0gb2xkVG9w
OworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1
YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAg
ICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xs
VG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAw
ICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAgICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFs
IHNjcm9sbC4KKyAgICAgICAgICAgICAgICBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAic21vb3Ro
IiwgNTAwLCAyNTApOworICAgICAgICAgICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Ny
b2xsTGVmdDsKKyAgICAgICAgICAgICAgICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9w
OworICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxk
IHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1Rv
cCwgMjUwLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAg
ICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3AgPSBu
ZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsK
KyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBz
Y3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5pdGlh
bFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsK
KyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKG9s
ZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9v
dGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1
bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05v
ZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmICghaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsKKyAg
ICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Ny
b2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIpOwor
ICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7CisgICAg
ICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAgICAg
IGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxOb2Rl
KG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgNTAwLCAyNTApOworICAgICAgICAg
ICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAg
ICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9z
aXRpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Ny
b2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRp
b24iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Ag
c2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICB9CisgICAgICAgICAg
b2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICB9
IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH0sICJT
Y3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4g
aW5zdGFudCBzY3JvbGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uMjc5OWZkY2MyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzNyBAQAorCitQQVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3Ro
IHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAor
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3
aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk2ZDExYWI5NjIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4K
Kzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9s
bCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4K
KzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12
aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+
Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2RlIiB3aWR0aD0i
NDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFET0NUWVBFPgorPGh0bWw+CisgIDxzdHls
ZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgLmF1dG9CZWhhdmlv
ciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgICAgfQorICAgIC5zbW9vdGhCZWhh
dmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgICB9CisgIDwvc3R5bGU+
CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4
OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsnPgorICAg
ICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWln
aHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0eWxlPSdkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48L3NwYW4+CisgICAgPC9kaXY+CisgIDwv
Ym9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2NyaXB0PgorICB2YXIgaWZyYW1lTG9hZFRl
c3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50
LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZhciBlbGVtZW50VG9SZXZlYWxM
ZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICBpZnJhbWVOb2Rl
LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVzdC5zdGVwX2Z1bmNfZG9uZSgo
KSA9PiB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVu
dERvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50VG9SZXZlYWwgPSBpZnJhbWVO
b2RlLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudFRvUmV2ZWFsIik7CisK
KyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJd
LmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xs
aW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJh
dXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Jg
KTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3Jv
bGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICAgIH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
bnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAg
ICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxp
bmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNt
b290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsKKwor
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVt
ZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhh
dmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAy
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBz
Y3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9s
bChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50Iiwg
MCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDVlYjMyNzJmNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisK
K1BBU1MgaWZyYW1lIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3Jv
bGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13
aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zMzMzZDY0
Zjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFE
T0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Ny
b2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVt
ZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1l
PC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+
PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2Rl
IiB3aWR0aD0iNDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFET0NUWVBFPgorPGh0bWw+
CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgLmF1
dG9CZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgICAgfQorICAgIC5z
bW9vdGhCZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgICB9Cisg
IDwvc3R5bGU+CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdo
dDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVu
KTsnPgorICAgICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUw
MHB4OyBoZWlnaHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0
eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48L3NwYW4+CisgICAgPC9k
aXY+CisgIDwvYm9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2NyaXB0PgorICB2YXIgaWZy
YW1lTG9hZFRlc3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7CisgIHZhciBzY3JvbGxp
bmdXaW5kb3csIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAgdmFyIGVsZW1lbnRU
b1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlm
cmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVu
Y19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdXaW5kb3cgPSBpZnJhbWVOb2RlLmNvbnRlbnRX
aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50VG9SZXZlYWwgPSBpZnJhbWVOb2RlLmNvbnRlbnRE
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudFRvUmV2ZWFsIik7CisKKyAgICBbInNjcm9s
bCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJl
c29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xs
aW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9u
LCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhz
Y3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cu
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7Cisg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9w
Iik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisK
KyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Ny
b2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIp
OworCisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
NDdmZDVlMWE1NC4uMzZmNTNiNjBhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVz
IG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgRW5hYmxlIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQgb24gc2Nyb2xsIGJlaGF2aW9yIHRlc3RzIGFuZCB1cGRhdGUgZXhwZWN0YXRpb25zLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJv
b3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Ny
b2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6CisKKzIwMTktMTItMTAgIENhdGhp
ZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJp
YyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFu
Y2UtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmUtc3luYyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLW9yaWdpbi1v
YmplY3RzLmh0bWwgZnJvbSB1c3B0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCAzYWMwYTM3Y2ZmLi44
NzVhNzI3Yzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBQcm9wZXJ0
eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogc2Ny
b2xsLWJlaGF2aW9yIGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVk
IHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhh
dmlvciBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byAK
K1BBU1MgUHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9yIGRvZXMgbm90IGluaGVyaXQgCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dAppbmRleCA5MDY4Yjc5NzU1Li44
ZDRjYTY0MTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQg
d2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKLUZBSUwgU21vb3RoIHNjcm9sbGluZyBvZiBh
biBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFNtb290aCBzY3JvbGxpbmcgb2YgYW4gZWxl
bWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1j
c3MuaHRtbAppbmRleCA2OTI1Y2YwOTJjLi5mZTQ3NWIwMzlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1
bHQtY3NzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1
ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBl
Y3RlZC50eHQKaW5kZXggMmI5MTI5YzFjZi4uNTNhOTYxZWY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTIsMzUgKzIsMzUgQEAKIFBBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAog
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVs
ZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxl
bWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1l
bnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAotRkFJTCBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0
byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1l
bGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKaW5kZXggM2NiZDcy
MmY3Mi4uNmMxNTkyOWM5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+
CiA8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3Jv
bGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwvdGl0bGU+CiA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKaW5kZXggZDkyMjI1OGFm
Mi4uOTdjYWVhMjdiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1y
b290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0CkBAIC0zLDM1ICszLDM1IEBAIFBBU1MgUGFnZSBsb2FkZWQKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290
IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBi
dXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBn
b3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAg
YnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50
b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
NDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9v
dGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAppbmRleCBmY2Y3NWFhMWRkLi42ZDliMjI0MmVhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
RE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
eHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8
dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwq
IGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxl
PgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4
dAppbmRleCBjNmJlOTY2NjFjLi4zODIzODVhYWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0zLDI3ICszLDI3IEBAIFBBU1Mg
UGFnZSBsb2FkZWQKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
Ci1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQg
Z290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1G
QUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290
IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
YXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2Vy
dF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0
ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAK
IFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
IFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNj
cm9sbGluZyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5k
b3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKaW5kZXgg
OGM4OGVjNjg2MS4uYmYzODczMDQyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS13aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdp
bmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMn
IGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogb24gdGhlIHdpbmRvdyBvZiB0aGUgbWFpbiBm
cmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLG1pbmltdW0tc2Nh
bGU9MSxpbml0aWFsLXNjYWxlPTEiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Ny
b2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9s
bGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKaW5kZXggN2NlMTBjMDg5Ni4uNDQzYTgyMGU1
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHNjcm9sbEludG9WaWV3IHdpdGgg
bmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciBhc3NlcnRfbGVz
c190aGFuOiBFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNob3VsZCBub3Qgc2Nyb2xsIGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1Mgc2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Ny
b2xsLWJlaGF2aW9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRv
dmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC5odG1sCmluZGV4IDNhODkwNjUzMmIuLjNmM2Q5YjcyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBF
IGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5U
ZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIHdpdGggc2Nyb2xsSW50b1ZpZXcgZm9yIG5l
c3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMuaHRtbAppbmRleCAwMDVkMmI2MDRkLi5lYWEwZmZmMDE5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5n
IHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRoIHNtb290aCBi
ZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3
YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUt
cm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVj
dGVkLnR4dAppbmRleCBiNmZhMWMyZWM4Li4yNzk5ZmRjYzI5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMywzNSArMywzNSBAQCBQQVNTIGlm
cmFtZSBsb2FkZWQKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1G
QUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVz
cyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUw
MAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
NTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5n
IGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290Lmh0bWwKaW5kZXggZTY0MWU1M2UzMy4uZThjY2I2NmJlNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBo
dG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50
YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+VGVz
dGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3Jv
bGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggY2M2NjVlYmRi
OC4uMDVlYjMyNzJmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2lu
ZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0CkBAIC0zLDI3ICszLDI3IEBAIFBBU1MgaWZyYW1lIGxvYWRlZAogUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290
aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3Qg
NTAwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxl
c3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190
aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVt
YmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUw
MCBidXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAw
Ci1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBn
b3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFi
b3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1z
dWJmcmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5o
dG1sCmluZGV4IGQ5MzFlMDAzZDQuLjkyNjg0ZDY3NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXdpbmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9w
dGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBv
biB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDQ5NmNmMmRjYi4uMDQxZjM2ZWJjZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NzQ4LDYgKzc0OCwxNSBAQCB3ZWJraXQub3JnL2IvMTg5NTk0IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmltYXRpb25zL3BlbmRpbmctcwogCiB3ZWJraXQub3JnL2Iv
MTg4MDcwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZXJy
b3ItcHJvcGFnYXRpb24tYmFja3dhcmQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKKyMgVGVzdHMg
Zm9yIHNtb290aCBzY3JvbGwgYmVoYXZpb3IgZG8gbm90IGFsbCB3b3JrIGFuZCB0aGV5IGFyZSBz
bG93LCBzbyBsZXQncyBqdXN0IHNraXAgdGhlbS4KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS1yb290Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS13aW5kb3cuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE5MTM1NyBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zdWJmcmFtZS1yb290Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c3ViZnJhbWUtd2luZG93Lmh0bWwgWyBTa2lwIF0KKworIyBUaGlzIGlzIGZhaWxpbmcgb24gbWFj
LXdrMSwgdHJ5IHRvIGZpZ3VyZSBpdCBvdXQgaW4gdGhlIGZvbGxvdy11cCBidWcuCit3ZWJraXQu
b3JnL2IvMTkxMzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvaW5oZXJpdGFuY2UuaHRtbCBbIFNraXAgXQorCiB3ZWJraXQub3JnL2IvMTg5OTA4IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL3Jlc291cmNlX3RpbWlu
Zy53b3JrZXIuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTg5NzU2IFsgTW9qYXZl
KyBdIGNvbXBvc2l0aW5nL2ZpbHRlcnMvb3BhY2l0eS1jaGFuZ2Utb24tZmlsdGVyZWQtcGFpbnRz
LWludG8tYW5jZXN0b3IuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDUyMjA2ODczMWMuLjBlODE0YmJjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC05NjQsOCArOTY0LDEwIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAg
cGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNrLmlkbAogICAgIHBhZ2UvUmVzaXplT2JzZXJ2ZXJF
bnRyeS5pZGwKICAgICBwYWdlL1NjcmVlbi5pZGwKKyAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmlk
bAogICAgIHBhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAogICAgIHBhZ2UvU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uLmlkbAorICAgIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwKICAgICBwYWdlL1Nj
cm9sbFRvT3B0aW9ucy5pZGwKICAgICBwYWdlL1NoYXJlRGF0YS5pZGwKICAgICBwYWdlL1VuZG9J
dGVtLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhMTZiNDQwYWQuLmE0ODExZmM4MDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNDAgQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBp
Z2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVs
aWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggc3VwcG9ydCBuYXRp
dmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0uIEl0IHJlbGllcyBvbiBVSVNjcm9s
bFZpZXcncworICAgICAgICBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBzdXBwb3J0IGFuZCBpcyBl
eGVjdXRlZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBUZXN0czogZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXdpbmRvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJm
cmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5p
bWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBieSBjYWxsaW5nIGFu
aW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKTog
QWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCBvciBu
b3QuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1
cyBmcm9tIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUpOiBBZGQgbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gdG8gaW5kaWNhdGUgaXQncyBhbmltYXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOiBEaXR0by4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25XaXRoQW5pbWF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBVcGRh
dGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhIGZsYWcgdG8g
aW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4pOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIHRoZSBzY3JvbGwgaXMgYW5pbWF0ZWQgb3Ig
bm90LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9s
bFRvKTogSWYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiBpcyB0cnVlLCBzZW5kIHRoZSBzY3JvbGwg
cG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLCBldmVuIGlmIHRoZSBzY3JvbGwgcG9zaXRpb24g
ZG9lc24ndCBjaGFuZ2UuCisgICAgICAgIE1haW50YWluIHRoZSBzdGF0dXMgb2YgbV9zdG9wU2Ny
b2xsQW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbC4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFu
Z2VkKTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlt
bWVkaWF0ZWx5LCBzbyBkb24ndCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZvIG5vdy4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0QW5pbWF0
ZWRTY3JvbGwpOiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlz
IGFuIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRlZFNjcm9sbCBjb25zdCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24p
OiBJZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHByZXZp
b3VzIHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRk
IFNjcm9sbEJlaGF2aW9yVHlwZSB0byBpbmRpY2F0ZSBpdCdzIGluc3RhbnQgb3Igc21vb3RoIHNj
cm9sbC4KKyAgICAgICAgQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGluZGljYXRlIHRoZSBz
dGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBVcGRhdGUg
U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSk6IEFk
ZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjdXJyZW50U2Ny
b2xsQmVoYXZpb3JUeXBlIGNvbnN0KTogTWFpbnRhaW4gY3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogU2VuZCBhIHF1ZXN0IG9m
IG5hdGl2ZSBzY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9P
ZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBi
eSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorCisyMDE5
LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24g
b2YgdGhlIFdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ4ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIHByb2dyYW1tYXRpYyBzbW9vdGggc2Nyb2xsaW5n
IGluIFdlYktpdCBmcm9tIHRoZSBDU1NPTSBWaWV3CisgICAgICAgIHNwZWNpZmljYXRpb24gWzFd
LiBUbyB1c2UgdGhpcyBlZmZlY3QsIHdlYiBkZXZlbG9wZXJzIGNhbiBwYXNzIGEgYmVoYXZpb3Ig
cGFyYW1ldGVyIChhdXRvLAorICAgICAgICBzbW9vdGgsIG9yIGluc3RhbnQpIHRvIEVsZW1lbnQu
c2Nyb2xsLCBFbGVtZW50LnNjcm9sbFRvLCBFbGVtZW50LnNjcm9sbEJ5LAorICAgICAgICBFbGVt
ZW50LnNjcm9sbEludG9WaWV3LCBXaW5kb3cuc2Nyb2xsLCBXaW5kb3cuc2Nyb2xsVG8gb3IgV2lu
ZG93LnNjcm9sbEJ5IFsyXS4gV2hlbiBiZWhhdmlvcgorICAgICAgICBpcyBhdXRvLCB0aGUgaW5z
dGFudC9zbW9vdGggY2hhcmFjdGVyaXN0aWMgaXMgYWN0dWFsbHkgdGFrZW4gZnJvbSB0aGUgdmFs
dWUgb2YgYSBuZXcgQ1NTCisgICAgICAgIHNjcm9sbC1iZWhhdmlvciBwcm9wZXJ0eSBbM10uIEJv
dGggdGhlIG5ldyBDU1MgYW5kIERPTSBiZWhhdmlvciBhcmUgcHJvdGVjdGVkIGJ5IGEgcnVudGlt
ZQorICAgICAgICBmbGFnLgorCisgICAgICAgIFsxXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldworICAgICAgICBbMl0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZp
ZXcvI2RpY3RkZWYtc2Nyb2xsb3B0aW9ucworICAgICAgICBbM10gaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yCisKKyAgICAgICAgVGVz
dHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQu
aHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAgICAgICAg
ICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgt
cG9zaXRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAor
ICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDogQnVpbGQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCBvbiBhbGwgcGxhdGZvcm1z
LgorICAgICAgICAqIFNvdXJjZXNHVEsudHh0OiBSZW1vdmUgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmNwcCBzaW5jZSBpdCBpcyBidWlsdCBvbiBhbGwgcGxhdGZvcm1zIG5vdy4KKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmll
dyk6IFBhc3Mgc2Nyb2xsIGJlaGF2aW9yLCBpZiBhbnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzY3JvbGxCeSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxUbyk6IEhh
bmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Ny
b2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNj
cm9sbFRvcCk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGgu
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpzY3JvbGxCeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9s
bFRvIGNvbnN0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290
aC4KKyAgICAgICAgVGhlIG9wdGltaXphdGlvbiBvZiBjYW5jZWwgKDAsIDApIHNjcm9sbGluZyBp
cyBza2lwcGVkIGlmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcy4KKyAgICAgICAg
T3RoZXJ3aXNlLCB0aGUgcHJldmlvdXMgc2Nyb2xsIHdvbid0IGJlIHN0b3BwZWQgYnkgYSBmb2xs
b3ctdXAgc2Nyb2xsLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBTdGFydCBhbiBhbmltYXRl
ZCBzY3JvbGwuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRpb246OnNjcm9sbCk6IEZ1bmN0aW9uIHRvIGFuaW1hdGUgc2Nyb2xsaW5n
IHRvIGEgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvblNtb290aC5jcHA6IEJ1aWxkIHRoaXMgZmlsZSBvbiBhbGwgcGxhdGZvcm1zLiBBZGQgYQor
ICAgICAgICBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgcGFyYW1ldGVyIHRvIHNs
b3cgZG93biB0aGUgc21vb3RoIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdGlvblNtb290aDo6c2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlv
blNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEpOiBTY2FsZSB0aGUgdGltZSBwYXJhbWV0ZXJzIG9m
IHRoZQorICAgICAgICBhbmltYXRpb24gc28gdGhhdCBpdCBsb29rcyBzbW9vdGhlci4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaDogRGVjbGFyZSB0aGUgY2xhc3Mg
b24gYWxsIHBsYXRmb3Jtcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IpOiBJbml0
aWFsaXplIGFuaW1hdGlvbiBtZW1iZXIgZm9yIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9PZmZzZXQpOiBBbmltYXRlIHNj
cm9sbGluZyB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMpOiBDb3B5IGxvZ2ljIGZyb20gU2Nyb2xsQW5p
bWF0aW9uU21vb3RoLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzZXJ2
aWNlU2Nyb2xsQW5pbWF0aW9ucyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3I6OndpbGxFbmRMaXZlUmVzaXplKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvcjo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaDogTmV3IGFuaW1hdGlvbiBtZW1i
ZXIgZm9yIHNtb290aCBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6c2Vy
dmljZVNjcm9sbEFuaW1hdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjp3aWxsRW5kTGl2ZVJlc2l6ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFkZFZl
cnRpY2FsU2Nyb2xsYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yOjpTY3JvbGxBbmltYXRvcjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yU3Rh
dHVzIHRvIGluZGljYXRlIHRoZSBzdGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Ny
b2xsUG9zaXRpb24pOiBGb2xsb3cgdGhlIENTU09NIFZpZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMg
aW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGludGVycnVwdCBpdCBhbmQgY29udGludWUgdGhlIHNj
cm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJlIGF0IHRoZSBmaW5hbCBwb3NpdGlvbikuCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09m
ZnNldFdpdGhBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNl
dFNjcm9sbE9mZnNldEZyb21JbnRlcm5hbHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24pOiBUbyBhdm9pZCBpdGVyYXRlIGNh
bGxpbmcsCisgICAgICAgIG1vdmUgdGhlIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShwb3Np
dGlvbikgY2hlY2tpbmcgb3V0IG9mIHNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24oKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyBjb25zdCk6IE1haW50YWlu
IGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFi
bGVBcmVhOjpzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyk6CisgICAgICAgICogcGxhdGZvcm0vZ2Vu
ZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JHZW5lcmljOjp1cGRhdGVQb3NpdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JN
YWM6OmNhbmNlbEFuaW1hdGlvbnMpOiBDYWxsIHBhcmVudCBtZW1iZXIgdG8gaGFuZGxlIHByb2dy
YW1tYXRpYyBzY3JvbGxpbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQpOiBBZGQgZmxhZyB0byBp
bmRpY2F0ZSBhbmltYXRlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNl
dFNjcm9sbFRvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRTY3Jv
bGxQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9YUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpzY3JvbGxUb1lQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnNjcm9sbFRvUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnNjcm9sbFRvT2Zmc2V0KTogRm9sbG93IHRoZSBDU1NPTSBWaWV3IHNwZWM6IElmIGEgc2Nyb2xs
IGlzIGluCisgICAgICAgIHByb2dyZXNzLCB3ZSBpbnRlcnJ1cHQgaXQgYW5kIGNvbnRpbnVlIHRo
ZSBzY3JvbGwgY2FsbCAoZXZlbiB3aGVuIHdlIGFyZSBhdCB0aGUgZmluYWwKKyAgICAgICAgcG9z
aXRpb24pLiBJdCdzIFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCBzY3JvbGwuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24p
OiBEaXR0by4gVGhpcyBpcyBzaW1pbGFyIHRvIHNjcm9sbFRvT2Zmc2V0CisgICAgICAgIGJ1dCBh
bmltYXRlcyB0aGUgc2Nyb2xsLiBJdCdzIFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoIHNjcm9s
bC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6IEFnYWluIGRvbid0IGRv
IGFuIGVhcmx5IHJldHVybiBpZiBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MuIFdlIGNh
bGwgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uIGluc3RlYWQgb2Ygc2Nyb2xsVG9PZmZzZXQg
d2hlbiBhcHByb3ByaWF0ZS4KKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gbWF5IG5v
dCB3b3JrIHdlbGwgZm9yIHNldmVyYWwgbmVzdGVkIHNjcm9sbCBib3hlcyB3aXRoIGF0IGxlYXN0
IG9uZQorICAgICAgICBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yLiBJdCB3aWxsIGhhbmRs
ZWQgaW4gYnVnIEZvbGxvdy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDogQWRk
IHNjcm9sbCBiZWhhdmlvciB0byBTY3JvbGxUZWN0VG9WaXNpYmxlT3B0aW9ucy4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
aXN0Qm94OjpzZXRTY3JvbGxMZWZ0KTogQWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3ApOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp1bmNvbnN0cmFpbmVkU2Nyb2xsVG8p
OgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5n
IHNjcm9sbC1iZWhhdmlvciBjc3MgcHJvcGVydHkgYW5kIFNjcm9sbE9wdGlvbnMuCisKKyAgICAg
ICAgVGVzdHM6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IEFkZCBJREwgZmlsZXMgZm9yIFNjcm9sbE9wdGlvbnMgYW5kIFNjcm9sbEJlaGF2aW9yLgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogSGVhZGVycy5jbWFrZTogQWRk
IGhlYWRlcnMgZm9yIFNjcm9sbEJlaGF2b3IgYW5kIFNjcm9sbE9wdGlvbnMuCisgICAgICAgICog
U291cmNlcy50eHQ6IEFkZCBTY3JvbGxCZWhhdm9yIGFuZCBTY3JvbGxPcHRpb25zIGltcGxlbWVu
dGF0aW9uLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRk
IGZpbGVzIHRvIHRoZSBidWlsZCBzeXN0ZW0uCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHA6IEhhbmRsZSBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChXZWJD
b3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZSk6Cisg
ICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjogQWRkIHNjcm9sbC1iZWhhdmlvci4KKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogQWRkIGtleXdvcmRzIGZvciBzY3JvbGwt
YmVoYXZpb3IuCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcDogQWRk
IHJ1bnRpbWUgY29uZmlnIGZvciBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHRIYXNoOjpoYXNoKToKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHA6IFJlbW92ZSBzY3JvbGwtYmVo
YXZpb3IgdGVtcGxhdGVzLiBJdCBpcyBoYW5kbGVkIGluIHRoZSBzbG93IHBhdGggc2luY2UgcHJv
cGVydHkgY2FuIGJlIGRpc2FibGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBh
dGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKToKKyAgICAgICAgKiBjc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVT
Y3JvbGxCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6cGFy
c2VTaW5nbGVWYWx1ZSk6IFBhcnNlIHNjcm9sbC1iZWhhdmlvciAob25seSBpZiBlbmFibGVkKS4K
KyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjp1c2VTbW9vdGhTY3JvbGxpbmcpOiBIZWxwZXIgZnVuY2l0b24gdG8gZGV0ZXJtaW5lIHRo
ZSBzY3JvbGwgYmVoYXZpb3IgdG8gYXBwbHkgdG8gYW4gZWxlbWVudCBmcm9tIHRoZSBDU1MgYW5k
IERPTSBiZWhhdmlvci4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmg6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOiBNYWtlIHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBT
Y3JvbGxPcHRpb24uIEFsc28gcmVtb3ZlIHVubmVjZXNzYXJ5IGZvcndhcmQgZGVjbGFyYXRpb24u
CisgICAgICAgICogcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xh
c3MgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb24uCisgICAgICAgICogcGFnZS9TY3JvbGxPcHRp
b25zLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsT3B0aW9ucy5pZGw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmg6IE1ha2UgdGhpcyBzdHJ1Y3QgaW5oZXJp
dHMgZnJvbSBTY3JvbGxPcHRpb25zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVG9PcHRpb25z
OjpTY3JvbGxUb09wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6bm9ybWFsaXplTm9uRmluaXRl
Q29vcmRpbmF0ZXNPckZhbGxCYWNrVG8pOiBDb3B5IHRoZSBjdXJyZW50IFNjcm9sbFRvT3B0aW9u
cyBzbyB0aGF0IHRoZSBzY3JvbGwgYmVoYXZpb3IgaXMgcHJlc2VydmVkLgorICAgICAgICAqIHBh
Z2UvU2Nyb2xsVG9PcHRpb25zLmlkbDogTWFrZSB0aGlzIGNsYXNzIGluaGVyaXQgZnJvbSBTY3Jv
bGxPcHRpb25zLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDogTmV3IHNldHRpbmcgZm9y
IENTU09NIFZpZXcgc21vb3RoIHNjcm9sbGluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaDogSGFuZGxlICdzbW9vdGggc2Nyb2xsaW5nJyBib29sZWFuIGRhdGEuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dXNlU21vb3RoU2Nyb2xsaW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRVc2VTbW9vdGhTY3JvbGxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpj
b252ZXJ0U21vb3RoU2Nyb2xsaW5nKToKKwogMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRo
aWVjaGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4ZWQgUGF0dGVybi5oIGNvbXBpbGUgZXJy
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDBiZmFiZWNhNDMuLmU5NzE0Yzg1
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTE1LDggKzkxNSwxMCBAQCBK
U19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2Fs
bGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvUmVzaXplT2JzZXJ2ZXJFbnRyeS5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3JlZW4uaWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2Uv
U2Nyb2xsQmVoYXZpb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5p
ZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TaGFy
ZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvVW5kb0l0ZW0uaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IGVlODllZTNmMGMuLjJmMTc3MjYwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtODE2LDggKzgxNiwxMCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgcGFnZS9SZW1vdGVGcmFtZS5oCiAgICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVs
ZXIuaAogICAgIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisgICAgcGFnZS9TY3JvbGxC
ZWhhdmlvci5oCiAgICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaAogICAgIHBhZ2UvU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmgKKyAgICBwYWdlL1Njcm9sbE9wdGlvbnMuaAogICAgIHBhZ2Uv
U2Nyb2xsVG9PcHRpb25zLmgKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luLmgKICAgICBwYWdlL1Nl
Y3VyaXR5T3JpZ2luRGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGJjYTczY2Y5ZTcuLjNlNjgwNDRm
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNjQ3LDYgKzE2NDcsNyBAQCBwYWdlL1Jlc291cmNlVXNh
Z2VPdmVybGF5LmNwcAogcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAogcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAogcGFnZS9TY3JlZW4uY3BwCitwYWdlL1Njcm9sbEJlaGF2aW9y
LmNwcAogcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNw
cAogcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKQEAgLTE3NTIsNiArMTc1Myw3IEBAIHBsYXRmb3Jt
L1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5jcHAKIHBsYXRmb3JtL1NTTEtleUdlbmVyYXRvci5jcHAKIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmNwcAorcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAKIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Ny
b2xsYmFyLmNwcApAQCAtMzM3Niw4ICszMzc4LDEwIEBAIEpTU1ZHWm9vbUFuZFBhbi5jcHAKIEpT
U1ZHWm9vbUV2ZW50LmNwcAogSlNTY3JlZW4uY3BwCiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
CitKU1Njcm9sbEJlaGF2aW9yLmNwcAogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwCiBKU1Nj
cm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAKK0pTU2Nyb2xsT3B0aW9ucy5jcHAKIEpTU2Nyb2xsVG9P
cHRpb25zLmNwcAogSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNwcAogSlNTZXJ2aWNl
V29ya2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRleCBjMmMyNzA5Yjg3Li41NGI1MzZlZDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzR1RLLnR4dApAQCAtNjMsNyArNjMsNiBAQCBwYWdlL3Njcm9sbGluZy9u
aWNvc2lhL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLmNwcAogcGFnZS9zY3JvbGxpbmcvZ2VuZXJp
Yy9TY3JvbGxpbmdUaHJlYWRHZW5lcmljLmNwcAogCiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25L
aW5ldGljLmNwcAotcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0v
VXNlckFnZW50UXVpcmtzLmNwcAogCiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2Vu
ZXJpYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAwM2U2ZjU0MzNiLi5iYzk5NzA2ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzk3LDYgKzIzOTcs
OCBAQAogCQk4MzQwN0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0MDdG
QzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVF
MDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhENCAvKiBK
U1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVF
QzEgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9s
bEludG9WaWV3T3B0aW9ucy5oICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyog
SlNTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNFOUIzMDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAq
LzsgfTsKKwkJODM0NDc2RUYxREE1QkM1RTAwMkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1
QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVC
QzVFMDAyQjZFRDIgLyogSlNTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Nj
cm9sbFRvT3B0aW9ucy5oICovOyB9OwogCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYgLyogQ2xh
c3NDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzQ4QkZBQTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggKi87IH07
CiAJCTgzNERGQUQwMUY3REFFNUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRERkFDQzFGN0RBRTU2
MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNDUxLDYgKzI0NTMsOCBAQAogCQk4M0M0NUI4RTFE
QzJCNjhBMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZh
bGlkYXRpb25CdWJibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUw
QzNFNzFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMw
MTAwNkY5Qzk3IC8qIFNjcm9sbEludG9WaWV3T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNj
cm9sbEludG9WaWV3T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMz
RTcxREE1OUI2MjAwMzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3
IC8qIFNjcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQx
REE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNj
cm9sbFRvT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTgzRDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICov
OyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmgg
Ki87IH07CkBAIC0xMDE2Nyw5ICsxMDE3MSwxNCBAQAogCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcy
NUIgLyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTaGFyZWRTdHJpbmdIYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8q
IFNjcm9sbEludG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY3JvbGxJbnRvVmlld09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzNTBDM0U3MURBNTlCNjIwMDM1NjQzNCAvKiBTY3JvbGxCZWhhdmlvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xs
T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYy
MDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcm9sbFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzUwQzNFODFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50
b1ZpZXdPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxJbnRvVmlld09w
dGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNj
cm9sbEJlaGF2aW9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTgx
REE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNjcm9sbE9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUw
QzNFODFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTY3JvbGxUb09wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzUyMEM3RDFBNzFCRkNDMDA2QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NGb250RmFtaWx5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNTY1N0M2MUVDQUIwRTgwMENERTcyRCAvKiBKU0RPTU1hdHJpeElu
aXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXRyaXhJ
bml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjkxLDkgKzEwMzAwLDEz
IEBACiAJCTgzRTk1OUUxMUI4QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1
QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxCZWhhdmlvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxPcHRpb25z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZF
OEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTU2Nyb2xsVG9PcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZG
RDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThFNSAvKiBK
U1Njcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3Jv
bGxPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1
MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1Njcm9sbFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4M0VFNTk4QjFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTk4QzFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JD
YWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDc2OCwxMCArMjA3
ODEsMTUgQEAKIAkJCQlCQ0VDMDFCQTBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmNwcCAqLywK
IAkJCQlCQ0VDMDFCQjBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmggKi8sCiAJCQkJQkNFQzAx
QkMwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2
MjAwMzU2NDM0IC8qIFNjcm9sbEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYy
MDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAz
NTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaWRsICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1
NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlvbnMuaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCAqLywKIAkJCQk4MzUwQzNFNzFE
QTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCiAJCQkJODM1MEMz
RTgxREE1OUI2MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgKi8sCisJCQkJ
ODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAqLywKKwkJCQk4MzUw
QzNFODFEQTU5QjYyMDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwgKi8sCiAJCQkJODM1MEMz
RTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5oICovLAogCQkJCTgzNTBDM0U4
MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMuaWRsICovLAogCQkJCUJDRDBFMEY3
MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgKi8sCkBAIC0yNTU2MywxMCAr
MjU1ODEsMTQgQEAKIAkJCQk1OEIyRkEwMjIyMzJENjBBMDA5MzhENjMgLyogSlNSZXNpemVPYnNl
cnZlckVudHJ5LmggKi8sCiAJCQkJQkNFQzAxQzAwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVu
LmNwcCAqLywKIAkJCQlCQ0VDMDFDMTBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCAqLywK
KwkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAgKi8s
CisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLywK
IAkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkQ4RTUgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMu
Y3BwICovLAogCQkJCTgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3
T3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExv
Z2ljYWxQb3NpdGlvbi5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpT
U2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCisJCQkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5jcHAgKi8sCisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThGNiAv
KiBKU1Njcm9sbFRvT3B0aW9ucy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2
IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi8sCiAJCQkJN0M3M0ZCMEYxOTFFRjZGNDAwN0RFMDYx
IC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLywKQEAgLTMwOTEyLDggKzMwOTM0LDEwIEBA
CiAJCQkJNUUyQzQzNkMxQkNGMDcxRTAwMDFFMkJDIC8qIEpTUlRDVHJhY2tFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNFQzAxQzMwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVDRTEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9j
ZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAg
LyogSlNTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYxREE1QkM1
RTAwMkI1RUMxIC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVDMSAvKiBKU1Njcm9sbE9w
dGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBK
U1Njcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VEMDZBRDExQzc3NzU0ODAw
RkRGQUYxIC8qIEpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE4MkMyNTYxRjMxNDNDRDAwNTlCQTdDIC8qIEpTU2VydmljZVdvcmtlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMjExNyw2ICszMjE0MSw3IEBACiAJCQkJNDRDOTkxODYwRjNEMUVCRTAw
NTg2NjcwIC8qIFNjcm9sbGJhclRoZW1lSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCODUz
RTBFN0M3RjExMDBBQjY5ODQgLyogU2Nyb2xsYmFyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTcxNDA2MTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suaCBpbiBI
ZWFkZXJzICovLAorCQkJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBODRGMDUxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9s
bENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjA1QUVEMTVGOTQ4NDgwMDRERjBD
MCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNjJFRTgx
NERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTMyMTUzLDYgKzMyMTc4LDcgQEAKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyog
U2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUFGRThEMDE5Q0I4
NjcyMDAwRjU2RDggLyogU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODNDNTc5NUQxREE1QzMwMTAwNkY5Qzg2IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUY0Nzg3NTU0MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ2NzI5MjgxRTBERTY4NTAw
QUNDM0Q4IC8qIFNjcm9sbFNuYXBPZmZzZXRzSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
NTc5NUQxREE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwCmluZGV4IDFjNGUzNmYxNDkuLmQ0YWJmMjNiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMzkzLDYgKzMzOTMs
MTAgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclBy
b3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwogICAgICAgICAg
ICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVUb3Vj
aCk7CiAjZW5kaWYKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2aW9yOgorICAg
ICAgICAgICAgaWYgKCFzdHlsZS51c2VTbW9vdGhTY3JvbGxpbmcoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8p
OworICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVTbW9vdGgpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGVyc3BlY3RpdmU6CiAg
ICAgICAgICAgICBpZiAoIXN0eWxlLmhhc1BlcnNwZWN0aXZlKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IDQxNTc4YTk0ZWQuLmY5ODJk
M2Y1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzU1Nyw2ICsz
NTU3LDE2IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIv
U1ZHL3NoYXBlcy5odG1sIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Ny
b2xsLWJlaGF2aW9yIjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAg
ICAiYXV0byIsCisgICAgICAgICAgICAgICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
Y3Nzb20tdmlldyIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9
CisgICAgICAgIH0sCiAgICAgICAgICJzaGFwZS1yZW5kZXJpbmciOiB7CiAgICAgICAgICAgICAi
aW5oZXJpdGVkIjogdHJ1ZSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCkBAIC02NDg5LDYgKzY0
OTksMjIgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9j
c3MtdWktNC8jcHJvcGRlZi11c2VyLXNlbGVjdCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwK
KyAgICAgICAgInNjcm9sbC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisg
ICAgICAgICAgICAgICAgImF1dG8iLAorICAgICAgICAgICAgICAgICJzbW9vdGgiCisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAg
ICAgICAiY29udmVydGVyIjogIlNtb290aFNjcm9sbGluZyIsCisgICAgICAgICAgICAgICAgIm5h
bWUtZm9yLW1ldGhvZHMiOiAiVXNlU21vb3RoU2Nyb2xsaW5nIgorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJleHBlcmlt
ZW50YWwiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7Cisg
ICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAg
ICAgICAgICJzY3JvbGwtcGFkZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRp
ZXMiOiB7CiAgICAgICAgICAgICAgICAgImVuYWJsZS1pZiI6ICJFTkFCTEVfQ1NTX1NDUk9MTF9T
TkFQIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggOGRmZTNhYmIy
MS4uZGE4MjY5ZTYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAg
LTEzODgsNiArMTM4OCwxMCBAQCBwYW4teQogcGluY2gtem9vbQogI2VuZGlmCiAKKy8vIHNjcm9s
bC1iZWhhdmlvcgorLy8gYXV0bworc21vb3RoCisKIC8vIGhhbmdpbmctcHVuY3R1YXRpb24KIGFs
bG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNv
bnRleHQuY3BwCmluZGV4IDc1MzcxODhjYjkuLjcxZjlhYTYyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcApAQCAtNzUsNiArNzUsNyBAQCBD
U1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgVVJMJiBzaGVldEJhcwogICAgIGF0dGFjaG1lbnRFbmFibGVkID0gUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQo
KTsKICNlbmRpZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRp
bmdzKCkuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CisgICAgc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
KCk7CiAgICAgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IGRvY3VtZW50LnBhZ2UoKSA/IGRvY3VtZW50
LnBhZ2UoKS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpIDogZmFsc2U7CiB9CiAKQEAgLTk5LDYgKzEw
MCw3IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBD
U1NQYXJzZXJDb250ZXh0JiBiKQogICAgICAgICAmJiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIu
YXR0YWNobWVudEVuYWJsZWQKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2Vy
RW5hYmxlZCA9PSBiLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAorICAgICAgICAmJiBhLnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCA9PSBiLnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBh
Lmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
CiAgICAgICAgICYmIGEudXNlU3lzdGVtQXBwZWFyYW5jZSA9PSBiLnVzZVN5c3RlbUFwcGVhcmFu
Y2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmlu
ZGV4IDg2NTI1ZmQ3MGMuLmM3NGRjOTRjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBib29s
IGF0dGFjaG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRD
U1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0
IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4g
eyBmYWxzZSB9OwpAQCAtMTE2LDcgKzExNyw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFz
aCB7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAgICAgICYga2V5LmF0
dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYKLSAg
ICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDEyCisgICAgICAgICAgICAmIGtleS5t
b2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0
aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJpdHMpOwogICAgICAgICBy
ZXR1cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckZhc3RQYXRocy5jcHAKaW5kZXggMzFkMTJhYjlhYi4uNDIxMjg4OWVkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtNjM2
LDEwICs2MzYsNiBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9w
ZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZAogICAgICAgICAgICAgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVN0aWNreSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0U3RpY2t5
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6IC8vIG5vbmUgfCBib3RoIHwgaG9yaXpvbnRh
bCB8IHZlcnRpY2FsIHwgYXV0bwogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5v
bmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJvdGggfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUhvcml6
b250YWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVZlcnRpY2FsIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvOwotICAgIC8vIEZJWE1FLU5FV1BBUlNFUjogSW52ZXN0aWdhdGUgdGhpcyBwcm9wZXJ0
eS4KLSAgICAvLyBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsQmVoYXZpb3I6IC8vIGF1dG8gfCBzbW9v
dGgKLSAgICAvLyAgICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmNzc29tU21vb3Ro
U2Nyb2xsRW5hYmxlZCgpKTsKLSAgICAvLyAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0
byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU21vb3RoOwogICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFw
ZVJlbmRlcmluZzoKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDcmlz
cGVkZ2VzIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVHZW9tZXRyaWNQcmVjaXNpb247CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVqb2luOgpAQCAtOTM5LDcgKzkzNSw2IEBAIGJvb2wgQ1NT
UGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJZCkKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5Rm9udEtlcm5pbmc6CiAgICAgLy8gY2FzZSBD
U1NQcm9wZXJ0eUh5cGhlbnM6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93QW5jaG9y
OgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKICAgICAvLyBjYXNlIENT
U1Byb3BlcnR5U2Nyb2xsU25hcFR5cGU6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGln
bkxhc3Q6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRDb21iaW5lVXByaWdodDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggZWJk
MGVhZjVmNi4uNjNmNWFiNTJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTIzMjcsNiArMjMyNywxNCBAQCBzdGF0aWMgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlKQogCiAjZW5kaWYKIAorc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29u
c3VtZVNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1
dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5pZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENTU1Zh
bHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlU21vb3RoKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3RhdGljIFJlZlB0
cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChyYW5n
ZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTM5MjcsNiArMzkz
NSwxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZh
bHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3Jv
bGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxTbmFwVHlwZShtX3Jhbmdl
KTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKKyAgICAgICAg
aWYgKCFtX2NvbnRleHQuc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVybiBjb25zdW1lQ2xpcCht
X3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDcwZDllMWIwYWUuLmJlNWE4NTI2YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTgzMiw3ICs4MzIsNiBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9W
aWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgog
ICAgIGJvb2wgaW5zaWRlRml4ZWQ7CiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJvdW5kcyA9IHJl
bmRlcmVyKCktPmFic29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwogCi0gICAgLy8gRklY
TUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCiAgICAgU2Ny
b2xsSW50b1ZpZXdPcHRpb25zIG9wdGlvbnM7CiAgICAgaWYgKGFyZykgewogICAgICAgICBhdXRv
IHZhbHVlID0gYXJnLnZhbHVlKCk7CkBAIC04NTEsNyArODUwLDggQEAgdm9pZCBFbGVtZW50Ojpz
Y3JvbGxJbnRvVmlldyhPcHRpb25hbDxWYXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9u
cz4+JiYgYXIKICAgICAgICAgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLAogICAgICAgICBp
c0hvcml6b250YWwgPyBhbGlnblggOiBhbGlnblksCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFs
aWduWSA6IGFsaWduWCwKLSAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6
Tm8KKyAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8sCisgICAgICAg
IG9wdGlvbnMuYmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0bykKICAgICB9Owog
ICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYWJzb2x1dGVCb3VuZHMsIGluc2lk
ZUZpeGVkLCB2aXNpYmxlT3B0aW9ucyk7CiB9CkBAIC05MTIsNyArOTEyLDcgQEAgdm9pZCBFbGVt
ZW50OjpzY3JvbGxCeShjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMpCiAKIHZvaWQgRWxl
bWVudDo6c2Nyb2xsQnkoZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIHNjcm9sbEJ5KHsgeCwg
eSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxUb09wdGlvbnMoeCwgeSkpOwogfQogCiB2b2lkIEVs
ZW1lbnQ6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpCkBAIC05NDgsMTMgKzk0OCwxNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9s
bFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBp
bmcpCiAgICAgICAgIGFkanVzdEZvckFic29sdXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsTGVmdCgp
LCAqcmVuZGVyZXIpLAogICAgICAgICBhZGp1c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVyZXItPnNj
cm9sbFRvcCgpLCAqcmVuZGVyZXIpCiAgICAgKTsKLSAgICByZW5kZXJlci0+c2V0U2Nyb2xsTGVm
dChjbGFtcFRvSW50ZWdlcihzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXIt
PnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFt
cGluZyk7Ci0gICAgcmVuZGVyZXItPnNldFNjcm9sbFRvcChjbGFtcFRvSW50ZWdlcihzY3JvbGxU
b09wdGlvbnMudG9wLnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKKyAgICBJbnRQb2ludCBzY3Jv
bGxQb3NpdGlvbigKKyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLmxlZnQu
dmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksCisgICAgICAgIGNs
YW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSkKKyAgICApOworICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9v
dGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZp
b3I6OkF1dG8pLCAqdGhpcyk7CisgICAgcmVuZGVyZXItPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkLCBjbGFtcGluZyk7
CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAg
IHNjcm9sbFRvKHsgeCwgeSB9KTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSkp
OwogfQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEJ5VW5pdHMoaW50IHVuaXRzLCBTY3JvbGxHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKQEAgLTEyODgsMTMgKzEyOTIsMTkgQEAgdm9pZCBFbGVtZW50
OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0KQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxp
bmdFbGVtZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVu
dEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRT
Y3JvbGxQb3NpdGlvbihJbnRQb2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmll
dygpLT5zY3JvbGxZKCkpKTsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFt
ZVdpdGhOb25OdWxsVmlldygpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVz
ZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAvLyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQorICAgICAgICAgICAg
Ym9vbCBhbmltYXRlZCA9IGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3Ro
U2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1l
bnQoKSk7CisgICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQ
b2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAq
IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmlldygpLT5zY3JvbGxZKCkpLCBh
bmltYXRlZCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChh
dXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKSB7Ci0gICAgICAgIHJlbmRlcmVyLT5zZXRTY3Jv
bGxMZWZ0KHN0YXRpY19jYXN0PGludD4obmV3TGVmdCAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVj
dGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyk7CisgICAgICAgIGludCBjbGFt
cGVkTGVmdCA9IGNsYW1wVG9JbnRlZ2VyKG5ld0xlZnQgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZl
Y3RpdmVab29tKCkpOworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5n
KFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3Jv
bGxMZWZ0KGNsYW1wZWRMZWZ0LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkKTsK
ICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVyKCkpCiAg
ICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3Rh
dGUodHJ1ZSk7CiAgICAgfQpAQCAtMTMwNSwxMyArMTMxNSwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNl
dFNjcm9sbFRvcChpbnQgbmV3VG9wKQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVt
ZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1l
V2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQ
b3NpdGlvbihJbnRQb2ludChmcmFtZS0+dmlldygpLT5zY3JvbGxYKCksIHN0YXRpY19jYXN0PGlu
dD4obmV3VG9wICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZh
Y3RvcigpKSkpOworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5v
bk51bGxWaWV3KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3Vt
ZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICBib29sIGFu
aW1hdGVkID0gZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxp
bmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICpkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsK
KyAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZy
YW1lLT52aWV3KCktPnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKSwgYW5pbWF0ZWQp
OworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoYXV0byogcmVu
ZGVyZXIgPSByZW5kZXJCb3goKSkgewotICAgICAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKHN0
YXRpY19jYXN0PGludD4obmV3VG9wICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgp
KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKKyAgICAgICAgaW50IGNsYW1wZWRUb3AgPSBj
bGFtcFRvSW50ZWdlcihuZXdUb3AgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
OworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2
aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3AoY2xhbXBl
ZFRvcCwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7CiAgICAgICAgIGlmIChh
dXRvKiBzY3JvbGxhYmxlQXJlYSA9IHJlbmRlcmVyLT5sYXllcigpKQogICAgICAgICAgICAgc2Ny
b2xsYWJsZUFyZWEtPnNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKHRydWUpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAwNTY4YjA2OWRjLi4yOGI0NjVmMGRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNTk1LDcgKzE1OTUsNyBAQCBkb3Vi
bGUgRE9NV2luZG93OjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIAogdm9pZCBET01XaW5kb3c6
OnNjcm9sbEJ5KGRvdWJsZSB4LCBkb3VibGUgeSkgY29uc3QKIHsKLSAgICBzY3JvbGxCeSh7IHgs
IHkgfSk7CisgICAgc2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKHgsIHkpKTsKIH0KIAogdm9pZCBE
T01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QK
QEAgLTE2MTcsMTAgKzE2MTcsMTAgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNj
cm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QKIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbFRv
KGRvdWJsZSB4LCBkb3VibGUgeSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpIGNvbnN0CiB7Ci0g
ICAgc2Nyb2xsVG8oeyB4LCB5IH0sIGNsYW1waW5nKTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09w
dGlvbnMoeCwgeSksIGNsYW1waW5nKTsKIH0KIAotdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNv
bnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0Cit2b2lk
IERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3Jv
bGxDbGFtcGluZyBjbGFtcGluZykgY29uc3QKIHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxh
eWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNjMzLDEyICsxNjMzLDIyIEBAIHZv
aWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMsIFNj
cm9sbENsYW1waW5nKSBjb25zdAogICAgICAgICB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9u
KCkueCgpLCB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkueSgpCiAgICAgKTsKIAotICAg
IGlmICghc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Nyb2xsVG9PcHRpb25zLnRv
cC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKSA9PSBJbnRQb2ludCgw
LCAwKSkKKyAgICAvLyBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiBmb3IgdGhlIGNvbW1vbiBjYXNl
IG9mIHNjcm9sbGluZyB0byAoMCwgMCkgd2hlbiB0aGUgc2Nyb2xsZXIgaXMgYWxyZWFkeSBhdCB0
aGUgb3JpZ2luLgorICAgIC8vIElmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcywg
dGhpcyBvcHRpbWl6YXRpb24gaXMgc2tpcHBlZCB0byBlbnN1cmUgdGhhdCB0aGUgYW5pbWF0ZWQg
c2Nyb2xsIGlzIHJlYWxseSBzdG9wcGVkLgorICAgIGlmICh2aWV3LT5jdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYg
IXNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkgJiYgIXNjcm9sbFRvT3B0aW9ucy50b3AudmFs
dWUoKSAmJiB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkgPT0gSW50UG9pbnQoMCwgMCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgSW50UG9pbnQgbGF5b3V0UG9zKHZpZXctPm1hcEZy
b21DU1NUb0xheW91dFVuaXRzKHNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkpLCB2aWV3LT5t
YXBGcm9tQ1NTVG9MYXlvdXRVbml0cyhzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkpKTsKKwor
ICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQo
KT8KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTA1OQorICAgIGlmIChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhT
Y3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6
OkF1dG8pLCAqZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkpKSB7CisgICAgICAgIHZpZXct
PnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihsYXlvdXRQb3MsIFNjcm9sbFR5cGU6OlByb2dy
YW1tYXRpYywgY2xhbXBpbmcpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgdmlldy0+
c2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihsYXlvdXRQb3MpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggMDQwMTJmOWVmZi4uNzMxZTMyMjk5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMjI3OSw3ICsyMjc5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9s
bEVsZW1lbnRUb1JlY3QoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKICAgICBzZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChib3VuZHMueCgpIC0gY2VudGVyaW5n
T2Zmc2V0WCAtIHJlY3QueCgpLCBib3VuZHMueSgpIC0gY2VudGVyaW5nT2Zmc2V0WSAtIHJlY3Qu
eSgpKSk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sIGFuaW1hdGVk
KQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRnJhbWVWaWV3
OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uIDw8ICIgLCBjbGVhcmluZyBh
bmNob3IiKTsKIApAQCAtMjI5Miw3ICsyMjkyLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAgICAgUGFn
ZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwogICAgIGlmIChwYWdlICYmIHBhZ2UtPmlzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKCkpCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVu
dFRlc3RNb25pdG9yKHBhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKLSAgICBTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgaWYgKGFuaW1hdGVk
KQorICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBv
c2l0aW9uKHNjcm9sbFBvc2l0aW9uKSwgY3VycmVudFNjcm9sbFR5cGUoKSk7CisgICAgZWxzZQor
ICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CiAK
ICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShvbGRTY3JvbGxUeXBlKTsKIH0KQEAgLTM2NjAsNiAr
MzY2MywyNiBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24m
IG5ld1Bvc2l0aW9uKQogICAgIGRpZENoYW5nZVNjcm9sbE9mZnNldCgpOwogfQogCit2b2lkIEZy
YW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYg
b2Zmc2V0LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQoreworICAgIGF1
dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAg
c2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygp
ID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAg
c2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CisgICAgaWYgKG9mZnNldCAhPSB0
aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zm
c2V0V2l0aEFuaW1hdGlvbihvZmZzZXQpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZp
b3VzU2Nyb2xsVHlwZSk7Cit9CisKIGZsb2F0IEZyYW1lVmlldzo6YWRqdXN0U2Nyb2xsU3RlcEZv
ckZpeGVkQ29udGVudChmbG9hdCBzdGVwLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKGdyYW51bGFyaXR5
ICE9IFNjcm9sbEJ5UGFnZSB8fCBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggZTM2Zjk5NjgwNC4uYjM3ZjA2MGUzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0yMjMsNyArMjIzLDcgQEAgcHVibGljOgogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpeGVkVmlz
aWJsZUNvbnRlbnRSZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICNlbmRpZgotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBm
aW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNj
cm9sbFBvc2l0aW9uJiwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIHJl
c3RvcmVTY3JvbGxiYXIoKTsKICAgICB2b2lkIHNjaGVkdWxlU2Nyb2xsVG9Gb2N1c2VkRWxlbWVu
dChTZWxlY3Rpb25SZXZlYWxNb2RlKTsKICAgICB2b2lkIHNjcm9sbFRvRm9jdXNlZEVsZW1lbnRJ
bW1lZGlhdGVseUlmTmVlZGVkKCk7CkBAIC02NTksNiArNjU5LDggQEAgcHVibGljOgogCiAgICAg
dm9pZCByZW5kZXJMYXllckRpZFNjcm9sbChjb25zdCBSZW5kZXJMYXllciYpOwogCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xs
T2Zmc2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xh
bXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisKIHByb3RlY3RlZDoKICAgICBib29s
IHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwog
ICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNGVkMjljYjQyYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEJlaGF2aW9yLmgiCisKKyNpbmNsdWRlICJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29s
IHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvciBiZWhhdmlvciwgRWxlbWVudCYgYXNz
b2NpYXRlZEVsZW1lbnQpCit7CisgICAgaWYgKCFhc3NvY2lhdGVkRWxlbWVudC5kb2N1bWVudCgp
LnNldHRpbmdzKCkuQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCgpIHx8ICFhc3NvY2lh
dGVkRWxlbWVudC5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nCisgICAgc3dpdGNo
IChiZWhhdmlvcikgeworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OkF1dG86CisgICAgICAgIHJl
dHVybiBhc3NvY2lhdGVkRWxlbWVudC5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZVNtb290aFNjcm9s
bGluZygpOworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQ6CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBjYXNlIFNjcm9sbEJlaGF2aW9yOjpTbW9vdGg6CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVo
YXZpb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xYmFlZjg4MWU4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5o
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxl
bWVudDsKKworZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIEF1dG8g
PSAwLAorICAgIEluc3RhbnQsCisgICAgU21vb3RoCit9OworCitib29sIHVzZVNtb290aFNjcm9s
bGluZyhTY3JvbGxCZWhhdmlvciwgRWxlbWVudCYgYXNzb2NpYXRlZEVsZW1lbnQpOworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9s
bEJlaGF2aW9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjg5NzFhZTkzN2EKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmlkbApAQCAtMCww
ICsxLDI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K2VudW0gU2Nyb2xsQmVoYXZpb3IgeyAiYXV0byIsICJpbnN0YW50IiwgInNtb290aCIgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oCmluZGV4IDkzOWNkNzM0
MjUuLmYyNzVmMmZiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50
b1ZpZXdPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09w
dGlvbnMuaApAQCAtMjAsMTIgKzIwLDExIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNj
cm9sbExvZ2ljYWxQb3NpdGlvbi5oIgorI2luY2x1ZGUgIlNjcm9sbE9wdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBFbGVtZW50OwotCi1zdHJ1Y3QgU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zIHsKK3N0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnMgOiBTY3JvbGxPcHRpb25z
IHsKICAgICBPcHRpb25hbDxTY3JvbGxMb2dpY2FsUG9zaXRpb24+IGJsb2NrUG9zaXRpb24geyBT
Y3JvbGxMb2dpY2FsUG9zaXRpb246OlN0YXJ0IH07CiAgICAgT3B0aW9uYWw8U2Nyb2xsTG9naWNh
bFBvc2l0aW9uPiBpbmxpbmVQb3NpdGlvbiB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6TmVhcmVz
dCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlk
bAppbmRleCBjZjlkMWZkNzY3Li4xYjI0YzY4NmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsCkBAIC0xNyw4ICsxNyw3IEBACiAgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQz
KTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRp
b25zIHsKK2RpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7
CiAgICAgW0ltcGxlbWVudGVkQXM9YmxvY2tQb3NpdGlvbl0gU2Nyb2xsTG9naWNhbFBvc2l0aW9u
IGJsb2NrID0gInN0YXJ0IjsKICAgICBbSW1wbGVtZW50ZWRBcz1pbmxpbmVQb3NpdGlvbl0gU2Ny
b2xsTG9naWNhbFBvc2l0aW9uIGlubGluZSA9ICJuZWFyZXN0IjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2Nyb2xsT3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmUx
ODY3YzYwMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9w
dGlvbnMuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU2Nyb2xsT3B0aW9ucyB7CisgICAg
T3B0aW9uYWw8U2Nyb2xsQmVoYXZpb3I+IGJlaGF2aW9yIHsgU2Nyb2xsQmVoYXZpb3I6OkF1dG8g
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9w
dGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMyOWQ2ZmYx
MDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMu
aWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworZGljdGlvbmFyeSBTY3JvbGxPcHRpb25zIHsKKyAgICBTY3JvbGxCZWhhdmlv
ciBiZWhhdmlvciA9ICJhdXRvIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Njcm9sbFRvT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMu
aAppbmRleCBjZTFjYmExYzdjLi5mNTc3NGQ0NGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xs
VG9PcHRpb25zLmgKQEAgLTI4LDE0ICsyOCwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIlNjcm9sbE9wdGlvbnMuaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgU2Nyb2xsVG9PcHRpb25z
IHsKK3N0cnVjdCBTY3JvbGxUb09wdGlvbnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBPcHRpb25h
bDxkb3VibGU+IGxlZnQ7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiB0b3A7CisKKyAgICBTY3JvbGxU
b09wdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAgU2Nyb2xsVG9PcHRpb25zKGRvdWJsZSB4LCBkb3Vi
bGUgeSkKKyAgICAgICAgOiBsZWZ0KHgpCisgICAgICAgICwgdG9wKHkpCisgICAgeyB9CiB9Owog
CiBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlv
bmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZSBmYWxsYmFja1ZhbHVlKQpAQCAtNDcsNyArNTQsNyBA
QCBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlv
bmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZQogLy8gRklYTUUoaHR0cHM6Ly93ZWJraXQub3JnL2Iv
ODgzMzkpOiBDb25zaWRlciB1c2luZyBGbG9hdFBvaW50IG9yIERvdWJsZVBvaW50IGZvciBmYWxs
YmFjayBhbmQgcmV0dXJuIHZhbHVlcy4KIGlubGluZSBTY3JvbGxUb09wdGlvbnMgbm9ybWFsaXpl
Tm9uRmluaXRlQ29vcmRpbmF0ZXNPckZhbGxCYWNrVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiB2
YWx1ZSwgZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25z
OworICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zID0gdmFsdWU7CiAgICAgb3B0aW9ucy5sZWZ0
ID0gbm9ybWFsaXplTm9uRmluaXRlVmFsdWVPckZhbGxCYWNrVG8odmFsdWUubGVmdCwgeCk7CiAg
ICAgb3B0aW9ucy50b3AgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tUbyh2YWx1
ZS50b3AsIHkpOwogICAgIHJldHVybiBvcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxU
b09wdGlvbnMuaWRsCmluZGV4IDUxMGJjMDcxYTYuLjJiOWI1NTQxMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKQEAgLTI2LDggKzI2LDcgQEAKICAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotLy8gRklYTUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVo
YXZpb3IuCi1kaWN0aW9uYXJ5IFNjcm9sbFRvT3B0aW9ucyB7CitkaWN0aW9uYXJ5IFNjcm9sbFRv
T3B0aW9ucyA6IFNjcm9sbE9wdGlvbnMgewogICAgIHVucmVzdHJpY3RlZCBkb3VibGUgbGVmdDsK
ICAgICB1bnJlc3RyaWN0ZWQgZG91YmxlIHRvcDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlh
bWwKaW5kZXggYjMyOWYxMjQ3OS4uMWQ3OWY0NTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbApAQCAtNjIyLDYgKzYyMiw5IEBAIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6
CiBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCitDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBpbnB1dEV2
ZW50c0VuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRl
eCA0MjllZWU5YTk2Li4wMmQ1ODk3NTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4
LDcgKzI0OCwxNiBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tG
b3J3YXJkQ2FjaGUgPSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRD
YWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29s
IGluUHJvZ3JhbW1hdGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUo
KSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Ny
b2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRp
b24gPSBpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisKKyAgICBi
b29sIGFuaW1hdGVkID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhbmlt
YXRlZCA9IHNjcm9sbGFibGVBcmVhLmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSA9PSBTY3Jv
bGxCZWhhdmlvclR5cGU6OlNtb290aDsKKyAgICAvLyBUaGUgc2Nyb2xsIHBvc2l0aW9uIG9mIGFu
aW1hdGVkIHNjcm9sbGluZyB3aWxsIGJlIHNldCBieSB0aGUgVUkgcHJvY2Vzcy4gU28gc2hvdWxk
bid0IHNldCBpdCBub3cuCisgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSAhYW5pbWF0ZWQgJiYg
dXBkYXRlU2Nyb2xsUG9zaXRpb247CisjZW5kaWYKKyAgICBpZiAodXBkYXRlU2Nyb2xsUG9zaXRp
b24pCiAgICAgICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3JvbGxp
bmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCB7IH0sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIAogICAgIC8vIElmIHRoaXMgZnJh
bWUgdmlldydzIGRvY3VtZW50IGlzIGJlaW5nIHB1dCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUsIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIG91cgpAQCAtMjYwLDcgKzI2OSwxMiBAQCBib29s
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShT
Y3JvbGxhYmxlQXJlYSYgc2NybwogICAgIGlmICghc3RhdGVOb2RlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBhdXRvIHN0YXR1cyA9IGFuaW1hdGVkID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Oklu
TmF0aXZlQW5pbWF0aW9uIDogU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOwor
ICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKHN0YXR1cyk7CisjZW5k
aWYKKworICAgIHN0YXRlTm9kZS0+c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9z
aXRpb24sIGluUHJvZ3JhbW1hdGljU2Nyb2xsLCBhbmltYXRlZCk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTI5MSw2ICszMDUsMzIgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBt
X3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29s
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGZy
YW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZy
YW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXct
PnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhT
Y3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9s
bGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQobm9k
ZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAg
ICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhh
dmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5ub2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBk
YXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9y
dE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRl
TGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4u
M2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3lu
Y1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25h
bDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhT
Y3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWxJbmRleCwgdW5zaWduZWQgdmVydGlj
YWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3MTdiZmMyYTU1Li40ZTQw
MTRlOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29u
c3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
V2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0
aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2Rl
LmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0yMTksMTAgKzIyMiwxNSBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0
IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFt
cyk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwg
Ym9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlvbikKIHsKICAgICBtX3JlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgbV9yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gPSByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0ocmVxdWVzdGVkV2l0aEFuaW1hdGlvbik7CisjZW5kaWYKICAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQogCkBAIC0z
MTQsNiArMzIyLDExIEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJv
cGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUCiAgICAgaWYgKG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogICAgICAgICB0
cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gcmVwcmVzZW50cyBwcm9n
cmFtbWF0aWMgc2Nyb2xsIiwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisgICAgICAgIHRzLmR1bXBQcm9w
ZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB3aXRoIGFuaW1hdGlvbiIsIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3Bh
cmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICB0cy5kdW1wUHJv
cGVydHkoInBhcmVudCByZWxhdGl2ZSBzY3JvbGxhYmxlIHJlY3QiLCBtX3BhcmVudFJlbGF0aXZl
U2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDQ5NjdhNmNlODEu
LjZjNjkyYzFkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xMTEsNyArMTExLDEwIEBA
IHB1YmxpYzoKIAogICAgIGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsgfQogICAgIGJvb2wg
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgY29u
c3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0
aWNTY3JvbGw7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHJlcXVlc3RlZFdpdGhBbmltYXRpb24pOwogCiAg
ICAgYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faXNNb25p
dG9yaW5nV2hlZWxFdmVudHM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKGJvb2wpOwpAQCAtMTcxLDYgKzE3NCw5IEBAIHByaXZhdGU6CiAgICAg
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogCiAg
ICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCB7IGZhbHNlIH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgogICAg
IGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggMTUxYWMyOWY4
YS4uN2FkZGZlZjRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaApAQCAtODIsOCArODIsMTMgQEAgcHVibGljOgogICAgIC8vIFVwZGF0ZXMgRnJh
bWVWaWV3L1JlbmRlckxheWVyIHNjcm9sbGluZyBzdGF0ZSBhbmQgR3JhcGhpY3NMYXllcnMuCiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlJiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb246OlN5bmMpID0gMDsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgLy8gQ2FsbGVkIGZvciBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cyB1cGRhdGVzLgorICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgLyppc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MqLykgeyB9CisjZW5kaWYKKwogICAgIC8vIENhbGxlZCBmb3IgcmVxdWVz
dGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzLgotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
LypzY3JvbGxQb3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCov
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChT
Y3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9zaXRpb24qLywgYm9v
bCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLywgYm9vbCAvKndpdGhBbmltYXRpb24q
LyA9IGZhbHNlKSB7IH0KIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxpbmcvem9vbWluZyBoYXMg
Y2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2aWV3cG9ydC1jb25zdHJh
aW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5GcmFtZVZpZXdwb3J0Q2hh
bmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwgZG91YmxlIHNjYWxl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYxLi4xN2M3ZjJhOGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3LDEyIEBAIHZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Ny
b2xsaW5nU3RhdGVOCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCiB7CiAg
ICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3JvbGxpbmdTdGF0ZU5vZGUg
PSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CisgICAg
Ym9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICB3aXRoQW5pbWF0aW9uID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uV2l0aEFuaW1hdGlvbigpOworI2VuZGlmCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbikpCi0gICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyAgICAgICAgc2Nyb2xs
aW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlE
KCksIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxp
bmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsKCksIHdpdGhBbmltYXRpb24pOwogCiAgICAgbV9pc0ZpcnN0Q29tbWl0ID0gZmFsc2U7
CiB9CkBAIC0xNTcsMjEgKzE2MSw0MSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBTY3JvbGxQb3NpdGlvbgogICAgIHNj
cm9sbFRvKGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpICsgZGVsdGEsIFNjcm9sbFR5cGU6OlVzZXIs
IGNsYW1wKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8o
Y29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
UG9zaXRpb25DbGFtcCBjbGFtcCkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNj
cm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUs
IFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXAsIGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbikK
IHsKLSAgICBpZiAocG9zaXRpb24gPT0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24pCisgICAgaWYg
KHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSB7CisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAgICAgLy8gU2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIg
cHJvY2Vzcy4KKyAgICAgICAgaWYgKHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpICYmIG5lZWRTeW5j
U2Nyb2xsUG9zaXRpb24pCisgICAgICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwoKnRoaXMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMp
OworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uoc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAg
ICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGZhbHNlKTsKKyNlbHNlCisgICAgICAgIFVOVVNF
RF9QQVJBTShuZWVkU3luY1Njcm9sbFBvc2l0aW9uKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47
CisgICAgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBJZiBkdXJpbmcgYSBz
Y3JvbGwgYW5pbWF0aW9uLCBuZWVkIHRvIHN0b3AgaXQgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9u
ZS4KKyAgICBpZiAoc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpKQorICAgICAgICBzZXROZWVk
c1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKHRydWUpOworI2VuZGlmCiAgICAgc2Nyb2xsaW5n
VHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Nyb2xsVHlwZSA9PSBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMpOwotICAgIAorCiAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRp
b24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7Ci0gICAgCisKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBzY3JvbGxUbyAiIDw8IHBvc2l0
aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFzdCBjb21taXR0ZWQgcG9zaXRpb24gIiA8PCAobV9sYXN0
Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gLSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgPDwgIiki
KTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CiAgICAg
Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNl
dElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOworCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGZhbHNlKTsK
KyAgICBzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoZmFsc2UpOworI2VuZGlmCiB9CiAKIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQo
KQpAQCAtMTc5LDYgKzIwMywxMCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpj
dXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKICAgICByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5
ZXJzKCk7CiAgICAgcmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKTsKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgaWYgKCFyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSkKKyAgICAgICAgcmV0
dXJuOworI2VuZGlmCiAgICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlmeVJlbGF0ZWROb2Rlc0FmdGVy
U2Nyb2xsUG9zaXRpb25DaGFuZ2UoKnRoaXMpOwogICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcyk7CiB9CkBAIC0yNjYsNiArMjk0LDM3IEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRz
LCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAgdHMuZHVtcFByb3BlcnR5KCJzY3JvbGxhYmxlIGFyZWEg
cGFyYW1ldGVycyIsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKTsKIH0KIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1
ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCBhbmltYXRlZCkKK3sKKyAgICBtX3JlcXVlc3RBbmltYXRl
ZFNjcm9sbCA9IGFuaW1hdGVkOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3RB
bmltYXRlZFNjcm9sbDsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sIGluUHJvZ3Jlc3MpCit7CisgICAgbV9zY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzID0gaW5Qcm9ncmVzczsKK30KKworYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzczsKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihi
b29sIHN0b3ApCit7CisgICAgbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uID0gc3Rv
cDsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbjsKK30KKyNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4
IDRjYmY0ZDFhZjAuLmY5ZjMxMGRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNjAsNyAr
NjAsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gLSBtX2xhc3RDb21taXR0
ZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8gVGhlc2UgYXJlIGltcGVyYXRpdmU7IHRoZXkg
YWRqdXN0IHRoZSBzY3JvbGxpbmcgbGF5ZXJzLgotICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxv
YXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlvbkNs
YW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOworICAgIHZvaWQgc2Ny
b2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBT
Y3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMs
IGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiA9IGZhbHNlKTsKICAgICB2b2lkIHNjcm9sbEJ5
KGNvbnN0IEZsb2F0U2l6ZSYsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNs
YW1wOjpUb0NvbnRlbnRFZGdlcyk7CiAKICAgICB2b2lkIHdhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRT
Y3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UmVjdD4g
b3ZlcnJpZGVMYXlvdXRWaWV3cG9ydCA9IHsgfSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpOwpAQCAtOTEsNiArOTEsMTUg
QEAgcHVibGljOgogICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbENvbnRhaW5l
ckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxDb250YWluZXJMYXllcjsgfQogICAgIGNv
bnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbGVkQ29udGVudHNMYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIHZvaWQgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wpOworICAgIGJvb2wg
cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKGJvb2wpOworICAgIGJvb2wgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygp
IGNvbnN0OworICAgIHZvaWQgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29s
KTsKKyAgICBib29sIG5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUoU2Nyb2xs
aW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCkBAIC0xNDgs
NiArMTU3LDEyIEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogICAgIGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9
OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVxdWVzdEFuaW1hdGVk
U2Nyb2xsIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB7
IGZhbHNlIH07CisgICAgYm9vbCBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24geyBm
YWxzZSB9OworI2VuZGlmCisKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsQ29udGFp
bmVyTGF5ZXI7CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbGVkQ29udGVudHNMYXll
cjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCmluZGV4IGI3
YzFkMjRlYjQuLjUyM2E3N2YzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdGlvbi5oCkBAIC0zMiwxMiArMzIsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGbG9hdFBvaW50OwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CitlbnVtIGNsYXNzIFNjcm9sbENs
YW1waW5nIDogdWludDhfdDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0aW9uIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TY3JvbGxBbmltYXRpb24o
KSB7IH07CiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHksIGZsb2F0IC8qIHN0ZXAgKi8sIGZsb2F0IC8qIG11bHRpcGxpZXIgKi8p
IHsgcmV0dXJuIHRydWU7IH07CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBGbG9hdFBv
aW50JikgeyB9OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVu
dFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAppbmRleCBkMDY0ZTY5Mzc5Li4yY2E1
NzhhMzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b25TbW9vdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlv
blNtb290aC5jcHAKQEAgLTI4LDggKzI4LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJTY3JvbGxBbmltYXRpb25TbW9vdGguaCIKIAotI2lmIEVOQUJMRShTTU9PVEhfU0NST0xM
SU5HKQotCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVh
LmgiCiAKQEAgLTM4LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0
IGRvdWJsZSBmcmFtZVJhdGUgPSA2MDsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIHRpY2tUaW1lID0g
MV9zIC8gZnJhbWVSYXRlOwogc3RhdGljIGNvbnN0IFNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2
YWwgeyAxX21zIH07CitzdGF0aWMgY29uc3QgZG91YmxlIHNtb290aEZhY3RvckZvclByb2dyYW1t
YXRpY1Njcm9sbCA9IDU7CiAKIFNjcm9sbEFuaW1hdGlvblNtb290aDo6U2Nyb2xsQW5pbWF0aW9u
U21vb3RoKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgRmxvYXRQb2ludCYg
cG9zaXRpb24sIFdURjo6RnVuY3Rpb248dm9pZCAoRmxvYXRQb2ludCYmKT4mJiBub3RpZnlQb3Np
dGlvbkNoYW5nZWRGdW5jdGlvbikKICAgICA6IFNjcm9sbEFuaW1hdGlvbihzY3JvbGxhYmxlQXJl
YSkKQEAgLTY3LDkgKzY2LDIyIEBAIGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51CiAgICAgcmV0dXJu
IG5lZWRUb1Njcm9sbDsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNjcm9sbChj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3sKKyAgICBTY3JvbGxHcmFudWxhcml0eSBncmFu
dWxhcml0eSA9IFNjcm9sbEJ5UGFnZTsKKyAgICBib29sIG5lZWRUb1Njcm9sbCA9IHVwZGF0ZVBl
ckF4aXNEYXRhKG1faG9yaXpvbnRhbERhdGEsIGdyYW51bGFyaXR5LCBwb3NpdGlvbi54KCkgLSBt
X2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVt
U2Nyb2xsUG9zaXRpb24oKS54KCksIG1fc2Nyb2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0
aW9uKCkueCgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG5lZWRU
b1Njcm9sbCB8PQorICAgICAgICB1cGRhdGVQZXJBeGlzRGF0YShtX3ZlcnRpY2FsRGF0YSwgZ3Jh
bnVsYXJpdHksIHBvc2l0aW9uLnkoKSAtIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwg
bV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKS55KCksIG1fc2Nyb2xsYWJs
ZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueSgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFt
bWF0aWNTY3JvbGwpOworICAgIGlmIChuZWVkVG9TY3JvbGwgJiYgIWFuaW1hdGlvblRpbWVyQWN0
aXZlKCkpIHsKKyAgICAgICAgbV9zdGFydFRpbWUgPSBtX2hvcml6b250YWxEYXRhLnN0YXJ0VGlt
ZTsKKyAgICAgICAgYW5pbWF0aW9uVGltZXJGaXJlZCgpOworICAgIH0KK307CisKIHZvaWQgU2Ny
b2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKCkKIHsKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3Ao
KTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0aW9u
U21vb3RoOjp1cGRhdGVWaXNpYmxlTGVuZ3RocygpCkBAIC0yNDcsNyArMjU5LDcgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGdldEFuaW1hdGlvblBhcmFtZXRlcnNGb3JHcmFudWxhcml0eShTY3JvbGxH
cmFudWxhcml0eSBncmFudWwKICAgICB9CiB9CiAKLWJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
Ojp1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0YSYgZGF0YSwgU2Nyb2xsR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3JvbGxQb3NpdGlvbiwgZmxvYXQg
bWF4U2Nyb2xsUG9zaXRpb24pCitib29sIFNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlUGVy
QXhpc0RhdGEoUGVyQXhpc0RhdGEmIGRhdGEsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBv
c2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yKQogewogICAgIGlmICghZGF0YS5zdGFydFRpbWUg
fHwgIWRlbHRhIHx8IChkZWx0YSA8IDApICE9IChkYXRhLmRlc2lyZWRQb3NpdGlvbiAtIGRhdGEu
Y3VycmVudFBvc2l0aW9uIDwgMCkpIHsKICAgICAgICAgZGF0YS5kZXNpcmVkUG9zaXRpb24gPSBk
YXRhLmN1cnJlbnRQb3NpdGlvbjsKQEAgLTI2NCw2ICsyNzYsMTIgQEAgYm9vbCBTY3JvbGxBbmlt
YXRpb25TbW9vdGg6OnVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiBkYXRhLCBTY3JvbGxH
cmFudWxhcmkKICAgICBDdXJ2ZSBjb2FzdFRpbWVDdXJ2ZTsKICAgICBnZXRBbmltYXRpb25QYXJh
bWV0ZXJzRm9yR3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHksIGFuaW1hdGlvblRpbWUsIHJlcGVhdE1p
bmltdW1TdXN0YWluVGltZSwgYXR0YWNrVGltZSwgcmVsZWFzZVRpbWUsIGNvYXN0VGltZUN1cnZl
LCBtYXhpbXVtQ29hc3RUaW1lKTsKIAorICAgIGFuaW1hdGlvblRpbWUgKj0gc21vb3RoRmFjdG9y
OworICAgIHJlcGVhdE1pbmltdW1TdXN0YWluVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgYXR0
YWNrVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgcmVsZWFzZVRpbWUgKj0gc21vb3RoRmFjdG9y
OworICAgIG1heGltdW1Db2FzdFRpbWUgKj0gc21vb3RoRmFjdG9yOworCiAgICAgZGF0YS5kZXNp
cmVkUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsKICAgICBpZiAoIWRhdGEuc3RhcnRUaW1lKQogICAg
ICAgICBkYXRhLmF0dGFja1RpbWUgPSBhdHRhY2tUaW1lOwpAQCAtMzkyLDYgKzQxMCw4IEBAIHZv
aWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckZpcmVkKCkKIAogICAgIGlm
IChjb250aW51ZUFuaW1hdGlvbikKICAgICAgICAgc3RhcnROZXh0VGltZXIoc3RkOjptYXgobWlu
aW11bVRpbWVySW50ZXJ2YWwsIGRlbHRhVG9OZXh0RnJhbWUpKTsKKyAgICBlbHNlCisgICAgICAg
IG1fc2Nyb2xsYWJsZUFyZWEuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIAogICAgIG1fbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVu
Y3Rpb24oRmxvYXRQb2ludChtX2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV92ZXJ0
aWNhbERhdGEuY3VycmVudFBvc2l0aW9uKSk7CiB9CkBAIC00MDcsNSArNDI3LDMgQEAgYm9vbCBT
Y3JvbGxBbmltYXRpb25TbW9vdGg6OmFuaW1hdGlvblRpbWVyQWN0aXZlKCkgY29uc3QKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5o
CmluZGV4IDAyY2M0ZWUyYmQuLjgxNzNmYTdlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCkBAIC0yNywxNCArMjcsMTMgQEAKIAogI2lu
Y2x1ZGUgIlNjcm9sbEFuaW1hdGlvbi5oIgogCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
Ci0KICNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZs
b2F0UG9pbnQ7CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKK2VudW0gY2xhc3MgU2Nyb2xsQ2xhbXBp
bmcgOiB1aW50OF90OwogCiBjbGFzcyBTY3JvbGxBbmltYXRpb25TbW9vdGggZmluYWw6IHB1Ymxp
YyBTY3JvbGxBbmltYXRpb24gewogcHVibGljOgpAQCAtNTEsNiArNTAsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdy
YW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNjcm9sbChjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKQEAg
LTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaW50IHZpc2libGVMZW5ndGggeyAwIH07
CiAgICAgfTsKIAotICAgIGJvb2wgdXBkYXRlUGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmLCBTY3Jv
bGxHcmFudWxhcml0eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9h
dCBtYXhTY3JvbGxQb3NpdGlvbik7CisgICAgYm9vbCB1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlz
RGF0YSYsIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9z
aXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yID0gMSk7
CiAgICAgYm9vbCBhbmltYXRlU2Nyb2xsKFBlckF4aXNEYXRhJiwgTW9ub3RvbmljVGltZSBjdXJy
ZW50VGltZSk7CiAKICAgICB2b2lkIHJlcXVlc3RBbmltYXRpb25UaW1lckZpcmVkKCk7CkBAIC0x
MDgsNCArMTA4LDMgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5jcHAKaW5kZXggYTYxMTg2ODM3ZC4uNGQ1OThjNzVhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAK
QEAgLTUyLDYgKzUzLDE4IEBAIFNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcihTY3JvbGxh
YmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgICwgbV9zY3JvbGxDb250cm9sbGVyKCp0aGlzKQog
I2VuZGlmCisgICAgLCBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbChtYWtlVW5pcXVlPFNj
cm9sbEFuaW1hdGlvblNtb290aD4oc2Nyb2xsYWJsZUFyZWEsIG1fY3VycmVudFBvc2l0aW9uLCBb
dGhpc10oRmxvYXRQb2ludCYmIHBvc2l0aW9uKSB7CisgICAgICAgIGF1dG8gcHJldmlvdXNTY3Jv
bGxUeXBlID0gbV9zY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsVHlwZSgpOworICAgICAgICBt
X3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKFNjcm9sbFR5cGU6OlByb2dyYW1t
YXRpYyk7CisgICAgICAgIGJvb2wgdXBkYXRlZCA9IG1fc2Nyb2xsYWJsZUFyZWEucmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpOworICAgICAgICBt
X3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7
CisgICAgICAgIGlmICh1cGRhdGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEZs
b2F0U2l6ZSBkZWx0YSA9IHBvc2l0aW9uIC0gbV9jdXJyZW50UG9zaXRpb247CisgICAgICAgIG1f
Y3VycmVudFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7CisgICAgICAgIG5vdGlmeVBvc2l0
aW9uQ2hhbmdlZChkZWx0YSk7CisgICAgfSkpCiB7CiB9CiAKQEAgLTc1LDYgKzg4LDE0IEBAIGJv
b2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHksCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCkKK3sKKyAg
ICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3Vy
cmVudFBvc2l0aW9uKTsKKyAgICBhdXRvIG5ld1Bvc2l0aW9uID0gU2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQsIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJsZUFy
ZWEuc2Nyb2xsT3JpZ2luKCkpKTsKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+
c2Nyb2xsKG5ld1Bvc2l0aW9uKTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbik7Cit9
CisKIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQogewogICAgIEZsb2F0UG9p
bnQgbmV3UG9zaXRvbiA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQo
b2Zmc2V0LCB0b0Zsb2F0U2l6ZShtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CkBA
IC0yNDUsNCArMjY2LDMzIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnJlbW92ZVdoZWVsRXZlbnRU
ZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdoZWVsRXZlbnRUCiB9CiAjZW5kaWYKIAor
dm9pZCBTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucygpCit7CisjaWYgIVVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Nj
cm9sbC0+c3RvcCgpOworI2VuZGlmCit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VT
Y3JvbGxBbmltYXRpb25zKCkKK3sKKyNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJ
TUVSKQorICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT5zZXJ2aWNlQW5pbWF0aW9u
KCk7CisjZW5kaWYKK30KKwordm9pZCBTY3JvbGxBbmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUo
KQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVu
Z3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJh
cihTY3JvbGxiYXIqKQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRh
dGVWaXNpYmxlTGVuZ3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jp
em9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopCit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0
aWNTY3JvbGwtPnVwZGF0ZVZpc2libGVMZW5ndGhzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IGE1YzY5
YzUzYjcuLjliN2MwOWI2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0
UG9pbnQ7CiBjbGFzcyBQbGF0Zm9ybVRvdWNoRXZlbnQ7CitjbGFzcyBTY3JvbGxBbmltYXRpb247
CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKIGNsYXNzIFNjcm9sbGJhcjsKIGNsYXNzIFdoZWVsRXZl
bnRUZXN0TW9uaXRvcjsKQEAgLTY4LDYgKzY5LDcgQEAgcHVibGljOgogICAgIC8vIFRoZSBiYXNl
IGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0ZWx5LCBuZXZlciBh
bmltYXRlcy4KICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBT
Y3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAKKyAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxD
bGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAogICAgIFNjcm9sbGFibGVBcmVh
JiBzY3JvbGxhYmxlQXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWE7IH0KQEAg
LTg1LDggKzg3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmKTsKICAgICBjb25zdCBGbG9hdFBvaW50JiBjdXJyZW50UG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2N1cnJlbnRQb3NpdGlvbjsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNh
bmNlbEFuaW1hdGlvbnMoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1h
dGlvbnMoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsQW5pbWF0aW9ucygpOworICAgIHZp
cnR1YWwgdm9pZCBzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpOwogCiAgICAgdmlydHVhbCB2b2lk
IGNvbnRlbnRBcmVhV2lsbFBhaW50KCkgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNl
RW50ZXJlZENvbnRlbnRBcmVhKCkgeyB9CkBAIC05NywxNiArOTksMTYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBtb3VzZUlzRG93bkluU2Nyb2xsYmFyKFNjcm9sbGJhciosIGJvb2wpIGNv
bnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRMaXZlUmVzaXplKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGNvbnRlbnRzUmVzaXplZCgpIGNvbnN0IHsgfQotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJl
c2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50QXJlYURpZFNob3coKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgY29udGVudEFyZWFEaWRIaWRlKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
bG9ja092ZXJsYXlTY3JvbGxiYXJTdGF0ZVRvSGlkZGVuKGJvb2wpIHsgfQogICAgIHZpcnR1YWwg
Ym9vbCBzY3JvbGxiYXJzQ2FuQmVBY3RpdmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAg
IHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikg
eyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFy
Kik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9s
bGJhciopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJQYXJ0TGF5
ZXJzKFNjcm9sbGJhciopIHsgfQpAQCAtMTUxLDYgKzE1Myw4IEBAIHByb3RlY3RlZDoKICAgICBT
Y3JvbGxDb250cm9sbGVyIG1fc2Nyb2xsQ29udHJvbGxlcjsKICNlbmRpZgogICAgIEZsb2F0UG9p
bnQgbV9jdXJyZW50UG9zaXRpb247CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQW5pbWF0
aW9uPiBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDg5MTE0OTEw
M2QuLmY2ZDM1NjY1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAt
NTQsNiArNTQsMjEgQEAgZW51bSBjbGFzcyBTY3JvbGxQb3NpdGlvbkNsYW1wIDogdWludDhfdCB7
CiAgICAgVG9Db250ZW50RWRnZXMsCiB9OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKK2VudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JUeXBlIDog
dWludDhfdCB7CisgICAgSW5zdGFudCwKKyAgICBTbW9vdGgsCit9OworI2VuZGlmCisKK2VudW0g
Y2xhc3MgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgOiB1aW50OF90IHsKKyAgICBOb3RJbkFuaW1hdGlv
biwKKyAgICBJbk5vbk5hdGl2ZUFuaW1hdGlvbiwKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEluTmF0aXZlQW5pbWF0aW9uLAorI2VuZGlm
Cit9OworCiBpbmxpbmUgU2Nyb2xsRGlyZWN0aW9uIGxvZ2ljYWxUb1BoeXNpY2FsKFNjcm9sbExv
Z2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGlzVmVydGljYWwsIGJvb2wgaXNGbGlwcGVk
KQogewogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCmluZGV4IGIxMjZhOWMyYjcuLjFkMmMzMmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00NjEsMTAgKzQ2MSwxNCBAQCB2b2lkIFNjcm9sbFZp
ZXc6OmNvbXBsZXRlVXBkYXRlc0FmdGVyU2Nyb2xsVG8oY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpCiAgICAgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpOwogfQogCi12
b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBz
Y3JvbGxQb3NpdGlvbikKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sLyogYW5pbWF0ZWQqLykKIHsKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNj
cm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVo
YXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlm
IChwcm9oaWJpdHNTY3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00NzUsMTMgKzQ3
OSwxNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKIAogICAgIFNjcm9sbFBvc2l0aW9uIG5ld1Njcm9sbFBv
c2l0aW9uID0gIWRlbGVnYXRlc1Njcm9sbGluZygpID8gYWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRo
aW5SYW5nZShzY3JvbGxQb3NpdGlvbikgOiBzY3JvbGxQb3NpdGlvbjsKIAotICAgIGlmICgoIWRl
bGVnYXRlc1Njcm9sbGluZygpIHx8IGN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6
VXNlcikgJiYgbmV3U2Nyb2xsUG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKKyAg
ICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNj
cm9sbFR5cGU6OlVzZXIpICYmIGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9s
bEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiAmJiBuZXdTY3JvbGxQb3NpdGlvbiA9PSB0
aGlzLT5zY3JvbGxQb3NpdGlvbigpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoY3VycmVu
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0
aXZlQW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMo
KTsKKwogICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUobmV3U2Nyb2xsUG9zaXRp
b24pKQogICAgICAgICByZXR1cm47CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBv
c2l0aW9uKTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1
czo6Tm90SW5BbmltYXRpb24pOwogfQogCiBib29sIFNjcm9sbFZpZXc6OnNjcm9sbChTY3JvbGxE
aXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTUz
OCw3ICs1NDYsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Ny
b2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICAKICAgICBpZiAoIW1hbmFnZXNTY3Jv
bGxiYXJzKCkpIHsKICAgICAgICAgaWYgKHNjcm9sbE9yaWdpbkNoYW5nZWQoKSkgewotICAgICAg
ICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3Jv
bGxPZmZzZXRGcm9tUG9zaXRpb24oZGVzaXJlZFBvc2l0aW9uKSk7CisgICAgICAgICAgICBpZiAo
IXJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShkZXNpcmVkUG9zaXRpb24pKQorICAgICAgICAg
ICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oc2Ny
b2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOwogICAgICAgICAgICAgcmVz
ZXRTY3JvbGxPcmlnaW5DaGFuZ2VkKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDQzMDE2MGQ2YWUuLjUzOTgxMDgzOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTI2MCw3ICsyNjAsNyBAQCBw
dWJsaWM6CiAgICAgU2Nyb2xsUG9zaXRpb24gY2FjaGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX2NhY2hlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBGdW5jdGlvbnMgZm9y
IHNjcm9sbGluZyB0aGUgdmlldy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24o
Y29uc3QgU2Nyb2xsUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRp
b24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2UpOwogICAgIHZv
aWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYgcykgeyByZXR1cm4gc2V0U2Nyb2xsUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb24oKSArIHMpOyB9CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNjcm9sbHMg
YnkgbGluZXMsIHBhZ2VzIG9yIHBpeGVscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcAppbmRleCA5NmQwZjMwMGIzLi4xNTA3MDRjMmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC03MSw2ICs3MSw5IEBAIFNjcm9s
bGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSgpCiAgICAgLCBtX3Njcm9sbE9yaWdpbkNoYW5nZWQo
ZmFsc2UpCiAgICAgLCBtX2N1cnJlbnRTY3JvbGxUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihT
Y3JvbGxUeXBlOjpVc2VyKSkKICAgICAsIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUo
ZmFsc2UpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykKKyAgICAsIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KSkKKyNlbmRpZgogewogfQogCkBAIC0xNDIs
NiArMTQ1LDEyIEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhCiAgICAgcmV0dXJuIHNjcm9sbEFu
aW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGll
cik7CiB9CiAKK3ZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQoreworICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlz
IDw8ICIgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKKyAgICBzY3Jv
bGxBbmltYXRvcigpLnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7Cit9CisKIHZvaWQgU2Nyb2xsYWJs
ZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBv
ZmZzZXQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Nyb2xs
VG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKQEAgLTIyMSwxNiArMjMwLDE1
IEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1U
b3VjaEV2ZW50JiB0b3VjaEV2ZW50KQogLy8gTk9URTogT25seSBjYWxsZWQgZnJvbSBJbnRlcm5h
bHMgZm9yIHRlc3RpbmcuCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9t
SW50ZXJuYWxzKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogeworICAgIGlmIChyZXF1ZXN0
U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKQor
ICAgICAgICByZXR1cm47CisKICAgICBzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9uKG9mZnNl
dCk7CiB9CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRp
b24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQpCiB7Ci0gICAgU2Nyb2xsUG9zaXRpb24gcG9z
aXRpb24gPSBzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KTsKLSAgICBpZiAocmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9uKTsKKyAgICBzY3JvbGxQb3NpdGlvbkNoYW5n
ZWQoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpOwogfQogCiB2b2lkIFNjcm9sbGFi
bGVBcmVhOjp3aWxsU3RhcnRMaXZlUmVzaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCmluZGV4IGQ3NDM4YzE1Y2QuLjU1NjcyZjgxZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNjIsNyArNjIsMTEgQEAgaW5saW5lIGlu
dCBvZmZzZXRGb3JPcmllbnRhdGlvbihTY3JvbGxPZmZzZXQgb2Zmc2V0LCBTY3JvbGxiYXJPcmll
bnRhdGlvbiBvcmllbnQKIAogY2xhc3MgU2Nyb2xsYWJsZUFyZWEgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U2Nyb2xsYWJsZUFyZWE+IHsKIHB1YmxpYzoKKyAgICBTY3JvbGxCZWhhdmlvclN0YXR1
cyBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSB7IHJldHVybiBtX2N1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1czsgfQorICAgIHZvaWQgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xs
QmVoYXZpb3JTdGF0dXMgc3RhdHVzKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzID0g
c3RhdHVzOyB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rp
b24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2lu
dCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICB2
b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwg
ZmxvYXQgb2Zmc2V0KTsKIApAQCAtMjQyLDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xs
VHlwZSBjdXJyZW50U2Nyb2xsVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9s
bFR5cGU+KG1fY3VycmVudFNjcm9sbFR5cGUpOyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xs
VHlwZShTY3JvbGxUeXBlIHNjcm9sbFR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihzY3JvbGxUeXBlKTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3Vy
cmVudFNjcm9sbEJlaGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9s
bEJlaGF2aW9yVHlwZT4obV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQg
c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVo
YXZpb3JUeXBlKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihzY3JvbGxCZWhhdmlvclR5cGUpOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xs
U2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENs
ZWFyTGF0Y2hlZFN0YXRlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRT
dGF0ZShib29sIHNob3VsZENsZWFyKSB7IG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUg
PSBzaG91bGRDbGVhcjsgfQogCkBAIC0zNzgsNiArMzg3LDggQEAgcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX2N1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4IHsgMCB9OwogI2VuZGlmCiAKKyAg
ICBTY3JvbGxCZWhhdmlvclN0YXR1cyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyB7IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiB9OworCiAgICAgLy8gVGhlcmUgYXJl
IDggcG9zc2libGUgY29tYmluYXRpb25zIG9mIHdyaXRpbmcgbW9kZSBhbmQgZGlyZWN0aW9uLiBT
Y3JvbGwgb3JpZ2luIHdpbGwgYmUgbm9uLXplcm8gaW4gdGhlIHggb3IgeSBheGlzCiAgICAgLy8g
aWYgdGhlcmUgaXMgYW55IHJldmVyc2VkIGRpcmVjdGlvbiBvciB3cml0aW5nLW1vZGUuIFRoZSBj
b21iaW5hdGlvbnMgYXJlOgogICAgIC8vIHdyaXRpbmctbW9kZSAvIGRpcmVjdGlvbiAgICAgc2Ny
b2xsT3JpZ2luLngoKSBzZXQgICAgc2Nyb2xsT3JpZ2luLnkoKSBzZXQKQEAgLTQwMyw2ICs0MTQs
OSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZCA6IDE7CiAg
ICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9sbFR5cGUKICAgICB1
bnNpZ25lZCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHVuc2lnbmVkIG1f
Y3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMv
U2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVy
aWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcAppbmRleCAyMDhhZjdiODQ3Li5hZDMzMmMzMjgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1h
dG9yR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3Jv
bGxBbmltYXRvckdlbmVyaWMuY3BwCkBAIC0xNjIsNiArMTYyLDggQEAgdm9pZCBTY3JvbGxBbmlt
YXRvckdlbmVyaWM6OndpbGxFbmRMaXZlUmVzaXplKCkKIAogdm9pZCBTY3JvbGxBbmltYXRvckdl
bmVyaWM6OnVwZGF0ZVBvc2l0aW9uKEZsb2F0UG9pbnQmJiBwb3NpdGlvbikKIHsKKyAgICBpZiAo
bV9zY3JvbGxhYmxlQXJlYS5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocm91bmRlZEludFBv
aW50KHBvc2l0aW9uKSkpCisgICAgICAgIHJldHVybjsKICAgICBGbG9hdFNpemUgZGVsdGEgPSBw
b3NpdGlvbiAtIG1fY3VycmVudFBvc2l0aW9uOwogICAgIG1fY3VycmVudFBvc2l0aW9uID0gV1RG
TW92ZShwb3NpdGlvbik7CiAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGRlbHRhKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBm
NTkxNzY3MmVlLi42Mzc1M2FkMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC0xMTU1LDYgKzExNTUsNyBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpub3RpZnlDb250ZW50QXJlYVNjcm9sbGVkKGNvbnN0IEZsb2F0U2l6ZSYg
ZGVsdGEpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNhbmNlbEFuaW1hdGlvbnMoKQogewor
ICAgIFNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKCk7CiAgICAgbV9oYXZlU2Nyb2xs
ZWRTaW5jZVBhZ2VMb2FkID0gZmFsc2U7CiAKICAgICBpZiAoc2Nyb2xsYmFyUGFpbnRUaW1lcklz
QWN0aXZlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuaAppbmRleCA3YzFkYzAzZjliLi5iOTIy
OTQ2ZWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmgKQEAgLTIzLDE3ICsyMywyMyBAQAog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCisjcHJhZ21hIG9uY2UKKwogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgiCiAj
aW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1l
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U7CitjbGFzcyBQ
bGF0Zm9ybUF1ZGlvRGF0YTsKIAogY2xhc3MgQmFzZUF1ZGlvU2hhcmVkVW5pdCB7CiBwdWJsaWM6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGY4ZDNhNDkyNWEuLjZk
MWY4NTdjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC01ODEs
MjAgKzU4MSwyOCBAQCBzdGF0aWMgdm9pZCBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKFJlbmRlckxh
eWVyJiBsYXllcikKICAgICBsYXllci5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0
TW9uaXRvcihwYWdlLndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAotdm9pZCBSZW5kZXJC
b3g6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Ny
b2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsTGVmdChpbnQg
bmV3TGVmdCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFt
cGluZyBjbGFtcGluZykKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigp
KQogICAgICAgICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7
Ci0gICAgbGF5ZXIoKS0+c2Nyb2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Nyb2xsVHlwZSwgY2xh
bXBpbmcpOworICAgIGxheWVyKCktPnNjcm9sbFRvWFBvc2l0aW9uKG5ld0xlZnQsIHNjcm9sbFR5
cGUsIGFuaW1hdGVkLCBjbGFtcGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxU
b3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFt
cGluZykKK3ZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlw
ZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsK
ICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAgICAgICByZXR1cm47
CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Ny
b2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgbGF5ZXIo
KS0+c2Nyb2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBp
bmcpOworfQorCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xs
UG9zaXRpb24mIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQs
IFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkg
fHwgIWxheWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBzZXR1cFdoZWVsRXZlbnRNb25pdG9y
KCpsYXllcigpKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3Jv
bGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCiB2b2lkIFJlbmRlckJveDo6YWJzb2x1
dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11
bGF0ZWRPZmZzZXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXgg
NDk1NDgxNDA1NC4uMjIxOTI4MDU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aApAQCAtMjQ3LDggKzI0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBzY3JvbGxUb3Ao
KSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxM
ZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIFNj
cm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBT
Y3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBT
Y3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2b2lkIHNldFNj
cm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwgYm9vbCBhbmlt
YXRlZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsK
IAogICAgIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9t
YXJnaW5Cb3gudG9wKCk7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94LmJvdHRvbSgpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBkODRhZDFhMWRhLi42MTNhNmFmYTM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI1NzUsMTYgKzI1NzUs
MjQgQEAgdm9pZCBSZW5kZXJMYXllcjo6YXBwbHlQb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb25JZk5l
ZWRlZCgpCiAgICAgbV9wb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb24gPSBXVEY6Om51bGxvcHQ7CiB9
CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBl
IHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5kZXJMYXllcjo6
c2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmlt
YXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgU2Nyb2xsUG9zaXRpb24gcG9z
aXRpb24oeCwgbV9zY3JvbGxQb3NpdGlvbi55KCkpOwotICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9s
bE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAg
ICBzY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBp
bmcpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Ny
b2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVy
TGF5ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJv
b2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIFNjcm9sbFBvc2l0
aW9uIHBvc2l0aW9uKG1fc2Nyb2xsUG9zaXRpb24ueCgpLCB5KTsKLSAgICBzY3JvbGxUb09mZnNl
dChzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGlu
Zyk7CisgICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgYW5pbWF0ZWQs
IGNsYW1waW5nKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBh
bmltYXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgaWYgKGFuaW1hdGVkKQor
ICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0
aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIGVsc2UKKyAgICAgICAg
c2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xs
VHlwZSwgY2xhbXBpbmcpOwogfQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Ny
b2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjU5
NCwyMiArMjYwMiw2OCBAQCBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zm
c2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjbwogCiB2b2lkIFJlbmRlckxh
eWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Ny
b2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJl
bnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRp
ZgorCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2
aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0b3Io
KS5jYW5jZWxBbmltYXRpb25zKCk7CisKICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9m
ZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxP
ZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9sbE9mZnNldDsKLSAgICBpZiAoY2xhbXBlZFNjcm9s
bE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICBpZiAoY2xhbXBlZFNjcm9sbE9m
ZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgICAgIC8vIElmIFVJU2Nyb2xsVmlldyBp
cyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHNjcm9sbCBvZmZzZXQgb2YgdGhl
IFdlYiBwcm9jZXNzIG1pZ2h0IGJlIG92ZXJyaWRkZW4uCisgICAgICAgIC8vIFNvIHdlIG5lZWQg
dG8gY2FsbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUgaGVyZSBhbmQgbGV0IGl0IGJlIGNo
ZWNrZWQgb24gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIC8vIElmIHRoZSBzY3JvbGwgb2Zmc2V0
IG9uIHRoZSBVSSBwcm9jZXNzIGlzIGRpZmZlcmVudCwgdGhlIGNvcnJlY3Qgc2Nyb2xsIG9mZnNl
dCBuZWVkcyB0byBzeW5jIGJhY2sgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAoY3Vy
cmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0
aXZlQW5pbWF0aW9uKQorICAgICAgICAgICAgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNj
cm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CisjZW5kaWYKICAg
ICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3Vy
cmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsK
IAogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
Ci0gICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBh
Z2UoKS5zY3JvbGxpbmdDb29yZGluYXRvcigpKQotICAgICAgICBoYW5kbGVkID0gc2Nyb2xsaW5n
Q29vcmRpbmF0b3ItPnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgc2Nyb2xsUG9z
aXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpKTsKKyAgICBoYW5kbGVkID0gcmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVk
U2Nyb2xsT2Zmc2V0KSk7CiAjZW5kaWYKIAotICAgIGlmICghaGFuZGxlZCkKKyAgICBpZiAoIWhh
bmRsZWQpIHsKICAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNsYW1wZWRT
Y3JvbGxPZmZzZXQsIGNsYW1waW5nKTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMo
U2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBzZXRD
dXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworfQorCitib29sIFJlbmRlckxh
eWVyOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBv
c2l0aW9uKQoreworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgaWYgKFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5zY3JvbGxpbmdDb29y
ZGluYXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlcXVlc3RT
Y3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgcG9zaXRpb24pOworI2VuZGlmCisgICAgcmV0dXJu
IGZhbHNlOworfQogCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRp
b24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Ny
b2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBj
dXJyZW50U2Nyb2xsVHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUp
OworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
KyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6U21v
b3RoKTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9u
RnJvbU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2
aW91c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBT
Y3JvbGxPZmZzZXQgbmV3U2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6
OkNsYW1wZWQgPyBjbGFtcFNjcm9sbE9mZnNldChvZmZzZXQpIDogb2Zmc2V0OworICAgIGlmIChj
dXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5O
b25OYXRpdmVBbmltYXRpb24pCisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0
aW9ucygpOworICAgIGlmIChuZXdTY3JvbGxPZmZzZXQgIT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkp
CisgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3
U2Nyb2xsT2Zmc2V0KTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5
cGUpOwogfQogCkBAIC0yNjQ1LDcgKzI2OTksNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxU
byhjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCiAjZW5kaWYKICAgICB9CiAgICAgCi0g
ICAgaWYgKG1fc2Nyb2xsUG9zaXRpb24gPT0gbmV3UG9zaXRpb24pIHsKKyAgICBpZiAobV9zY3Jv
bGxQb3NpdGlvbiA9PSBuZXdQb3NpdGlvbiAmJiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMo
KSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pIHsKICAgICAgICAgLy8g
RklYTUU6IE5vdGhpbmcgZ3VhcmFudGVlcyB3ZSBnZXQgYSBzY3JvbGxUbygpIHdpdGggYW4gdW5j
aGFuZ2VkIHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgYSB1c2VyIGdlc3R1cmUuCiAgICAgICAgIC8v
IFRoZSBTY3JvbGxpbmdDb29yZGluYXRvciBwcm9iYWJseSBuZWVkcyB0byBtZXNzYWdlIHRoZSBt
YWluIHRocmVhZCB3aGVuIGEgZ2VzdHVyZSBlbmRzLgogICAgICAgICBpZiAocmVxdWlyZXNTY3Jv
bGxQb3NpdGlvblJlY29uY2lsaWF0aW9uKCkpIHsKQEAgLTI3OTAsMTAgKzI4NDQsMTEgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNv
bHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgTGF5b3V0UmVjdCByZXZlYWxSZWN0ID0gZ2V0
UmVjdFRvRXhwb3NlKGxheWVyQm91bmRzLCBsb2NhbEV4cG9zZVJlY3QsIGluc2lkZUZpeGVkLCBv
cHRpb25zLmFsaWduWCwgb3B0aW9ucy5hbGlnblkpOwogCiAgICAgICAgIFNjcm9sbE9mZnNldCBj
bGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KCkgKyB0
b0ludFNpemUocm91bmRlZEludFJlY3QocmV2ZWFsUmVjdCkubG9jYXRpb24oKSkpOwotICAgICAg
ICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCAhPSBzY3JvbGxPZmZzZXQoKSkgeworICAgICAgICBp
ZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6
Ok5vdEluQW5pbWF0aW9uIHx8IGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkp
IHsKICAgICAgICAgICAgIFNjcm9sbE9mZnNldCBvbGRTY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZz
ZXQoKTsKLSAgICAgICAgICAgIHNjcm9sbFRvT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpOwot
ICAgICAgICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXREaWZmZXJlbmNlID0gc2Nyb2xsT2Zmc2V0
KCkgLSBvbGRTY3JvbGxPZmZzZXQ7CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gKGJveC0+
ZWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCAqYm94LT5l
bGVtZW50KCkpKTsKKyAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25G
cm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMs
IGFuaW1hdGVkKTsKKyAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSA9
IGNsYW1wZWRTY3JvbGxPZmZzZXQgLSBvbGRTY3JvbGxPZmZzZXQ7CiAgICAgICAgICAgICBsb2Nh
bEV4cG9zZVJlY3QubW92ZSgtc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSk7CiAgICAgICAgICAgICBu
ZXdSZWN0ID0gTGF5b3V0UmVjdChib3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKEZs
b2F0UmVjdChsb2NhbEV4cG9zZVJlY3QpKSwgVXNlVHJhbnNmb3JtcykuYm91bmRpbmdCb3goKSk7
CiAgICAgICAgIH0KQEAgLTI4MTMsMTAgKzI4NjgsMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Ny
b2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5z
aWQKICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0gZnJhbWVWaWV3LnZpc2li
bGVDb250ZW50UmVjdChMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsKICAgICAgICAgICAg
ICAgICBMYXlvdXRSZWN0IGV4cG9zZVJlY3QgPSBnZXRSZWN0VG9FeHBvc2Uodmlld1JlY3QsIGFi
c29sdXRlUmVjdCwgaW5zaWRlRml4ZWQsIG9wdGlvbnMuYWxpZ25YLCBvcHRpb25zLmFsaWduWSk7
CiAKLSAgICAgICAgICAgICAgICBJbnRQb2ludCBzY3JvbGxPZmZzZXQocm91bmRlZEludFBvaW50
KGV4cG9zZVJlY3QubG9jYXRpb24oKSkpOworICAgICAgICAgICAgICAgIEludFBvaW50IHNjcm9s
bFBvc2l0aW9uKHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkpKTsKICAgICAg
ICAgICAgICAgICAvLyBBZGp1c3Qgb2Zmc2V0cyBpZiB0aGV5J3JlIG91dHNpZGUgb2YgdGhlIGFs
bG93YWJsZSByYW5nZS4KLSAgICAgICAgICAgICAgICBzY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZz
ZXQuY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1lVmlldy5jb250
ZW50c1NpemUoKSkpOwotICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlv
bihzY3JvbGxPZmZzZXQpOworICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gc2Nyb2xs
UG9zaXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1lVmll
dy5jb250ZW50c1NpemUoKSkpOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2Ug
dXNlIGNvbnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAg
ICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkK
KyAgICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gb3duZXJFbGVtZW50LT5jb250ZW50RG9j
dW1lbnQoKSAmJiBvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1bWVudEVsZW1l
bnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgKm93bmVyRWxlbWVu
dC0+Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAg
ICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGFuaW1hdGVkKTsK
IAogICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3Jv
bGxpbmcgPT0gU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8IGZyYW1lVmll
dy5zYWZlVG9Qcm9wYWdhdGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAgICAg
IHBhcmVudExheWVyID0gb3duZXJFbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigp
OwpAQCAtMjg1NSw3ICsyOTEzLDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zp
c2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAg
ICAgICAvLyBBdm9pZCBzY3JvbGxpbmcgdG8gdGhlIHJvdW5kZWQgdmFsdWUgb2YgcmV2ZWFsUmVj
dC5sb2NhdGlvbigpIGlmIHdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdG8gc2Nyb2xsCiAgICAgICAg
ICAgICBpZiAocmV2ZWFsUmVjdCAhPSB2aWV3UmVjdCkgewogICAgICAgICAgICAgICAgIFNjcm9s
bE9mZnNldCBjbGFtcGVkU2Nyb2xsUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQocmV2ZWFsUmVj
dC5sb2NhdGlvbigpKS5jb25zdHJhaW5lZEJldHdlZW4obWluU2Nyb2xsUG9zaXRpb24sIG1heFNj
cm9sbFBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRp
b24oY2xhbXBlZFNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogU2hv
dWxkIHdlIHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAg
ICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkK
KyAgICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRv
Y3VtZW50RWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCAq
cmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAg
ICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0aW9uLCBhbmlt
YXRlZCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVy
bW9zdCB2aWV3IG9mIGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0aGlzIHZpZXcgd2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNmNhNDIyYjdiMi4uOGM5
Nzc4Mzc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTUwLDYg
KzUwLDcgQEAKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIK
ICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKKyNpbmNsdWRlICJTY3JvbGxCZWhhdmlvci5oIgogI2lu
Y2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CkBAIC0xMzQsNiArMTM1LDcgQEAgc3RydWN0IFNjcm9sbFJlY3RUb1Zpc2li
bGVPcHRpb25zIHsKICAgICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCB7IFNjcm9sbEFs
aWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCB9OwogICAgIGNvbnN0IFNjcm9sbEFsaWdubWVu
dCYgYWxpZ25ZIHsgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkIH07CiAgICAg
U2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyBzaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Ny
b2xsaW5nIHsgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfTsKKyAgICBTY3Jv
bGxCZWhhdmlvciBiZWhhdmlvciB7IFNjcm9sbEJlaGF2aW9yOjpBdXRvIH07CiB9OwogCiBjbGFz
cyBSZW5kZXJMYXllciBmaW5hbCA6IHB1YmxpYyBTY3JvbGxhYmxlQXJlYSB7CkBAIC00MzksOSAr
NDQxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbEJ5UmVjdXJzaXZlbHkoY29uc3QgSW50
U2l6ZSYgZGVsdGEsIFNjcm9sbGFibGVBcmVhKiogc2Nyb2xsZWRBcmVhID0gbnVsbHB0cik7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNl
dCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5n
ID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Ny
b2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYsIFNjcm9sbFR5cGUg
PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBp
bmc6OkNsYW1wZWQpOwogCi0gICAgdm9pZCBzY3JvbGxUb1hQb3NpdGlvbihpbnQgeCwgU2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7Ci0gICAgdm9p
ZCBzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBT
Y3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25V
cGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2Nyb2xs
VG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1w
aW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRp
b24oaW50IHksIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBT
Y3JvbGxQb3NpdGlvbiYsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5n
ID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCiAgICAgLy8gVGhlc2UgYXJlIG9ubHkgdXNl
ZCBieSBtYXJxdWVlLgogICAgIHZvaWQgc2Nyb2xsVG9YT2Zmc2V0KGludCB4KSB7IHNjcm9sbFRv
T2Zmc2V0KFNjcm9sbE9mZnNldCh4LCBzY3JvbGxPZmZzZXQoKS55KCkpLCBTY3JvbGxUeXBlOjpQ
cm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggMjVjZDJkMzNhNy4uYzMzZTkwNjBm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtNzQz
LDcgKzc0Myw3IEBAIGludCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxMZWZ0KCkgY29uc3QKICAgICBy
ZXR1cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KGludCwgU2Ny
b2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlckxpc3RCb3g6OnNldFNjcm9sbExl
ZnQoaW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKIH0KIApAQCAtNzYw
LDcgKzc2MCw3IEBAIHN0YXRpYyB2b2lkIHNldHVwV2hlZWxFdmVudFRlc3RNb25pdG9yKFJlbmRl
ckxpc3RCb3gmIHJlbmRlcmVyKQogICAgIHJlbmRlcmVyLnNjcm9sbEFuaW1hdG9yKCkuc2V0V2hl
ZWxFdmVudFRlc3RNb25pdG9yKHJlbmRlcmVyLnBhZ2UoKS53aGVlbEV2ZW50VGVzdE1vbml0b3Io
KSk7CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNj
cm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxU
b3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpCiB7CiAgICAg
Ly8gRGV0ZXJtaW5lIGFuIGluZGV4IGFuZCBzY3JvbGwgdG8gaXQuICAgIAogICAgIGludCBpbmRl
eCA9IG5ld1RvcCAvIGl0ZW1IZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5oCmluZGV4IDY1ZDkyMjZiM2EuLjI1YzkwNjUxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTA2LDggKzEwNiw4IEBAIHByaXZhdGU6CiAg
ICAgaW50IHNjcm9sbFRvcCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxXaWR0aCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxD
bGFtcGluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlw
ZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsVG9w
KGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwogCiAgICAg
Ym9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBj
b25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBv
aW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5jcHAKaW5kZXggOWVlODg4ODY3MS4uNGRmN2QzMThkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAK
QEAgLTM3NiwxMyArMzc2LDEzIEBAIGludCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNj
cm9sbFRvcCgpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2Nyb2xsVG9wKCk7
CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGlu
dCBuZXdMZWZ0LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBlLCBi
b29sLCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxlbWVudCgpKQogICAg
ICAgICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbExlZnQobmV3TGVmdCk7CiB9CiAKLXZv
aWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwg
U2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZTo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENs
YW1waW5nKQogewogICAgIGlmIChpbm5lclRleHRFbGVtZW50KCkpCiAgICAgICAgIGlubmVyVGV4
dEVsZW1lbnQoKS0+c2V0U2Nyb2xsVG9wKG5ld1RvcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggM2Y1Nzg2
ZGZlNC4uNjY2YWEzMTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTcsOCArNTcsOCBAQCBwcml2YXRl
OgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsV2lk
dGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgU2Ny
b2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9s
bFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNjcm9s
bFRvcChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKICAg
ICBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBt
dWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gbnVsbHB0ciwgUmVuZGVyQm94
KiBzdGFydEJveCA9IG51bGxwdHIsIGNvbnN0IEludFBvaW50JiB3aGVlbEV2ZW50QWJzb2x1dGVQ
b2ludCA9IEludFBvaW50KCkpIGZpbmFsOwogICAgIGJvb2wgbG9naWNhbFNjcm9sbChTY3JvbGxM
b2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEs
IEVsZW1lbnQqKiBzdG9wRWxlbWVudCA9IDApIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDVkY2IyMWM2NDYuLjAwN2E0ZDEzOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03
MzYsNiArNzM2LDggQEAgcHVibGljOgogICAgIGJvb2wgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnVzZVRvdWNoT3ZlcmZsb3dT
Y3JvbGxpbmc7IH0KICNlbmRpZgogCisgICAgYm9vbCB1c2VTbW9vdGhTY3JvbGxpbmcoKSBjb25z
dCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT51c2VTbW9vdGhTY3JvbGxpbmc7IH0K
KwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgVGV4dFNpemVBZGp1c3RtZW50IHRl
eHRTaXplQWRqdXN0KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFNp
emVBZGp1c3Q7IH0KICAgICBBdXRvc2l6ZVN0YXR1cyBhdXRvc2l6ZVN0YXR1cygpIGNvbnN0OwpA
QCAtMTI2Nyw2ICsxMjY5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlVG91Y2hPdmVyZmxv
d1Njcm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB1c2VUb3Vj
aE92ZXJmbG93U2Nyb2xsaW5nLCB2KTsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHNldFVzZVNtb290
aFNjcm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCB1c2VT
bW9vdGhTY3JvbGxpbmcsIHYpOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAg
IHZvaWQgc2V0VGV4dFNpemVBZGp1c3QoVGV4dFNpemVBZGp1c3RtZW50IGFkanVzdG1lbnQpIHsg
U0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB0ZXh0U2l6ZUFkanVzdCwgYWRqdXN0bWVudCk7
IH0KICAgICB2b2lkIHNldEF1dG9zaXplU3RhdHVzKEF1dG9zaXplU3RhdHVzKTsKQEAgLTE3MDQs
NiArMTcwOCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNlVG91Y2hPdmVy
Zmxvd1Njcm9sbGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorICAgIHN0YXRpYyBi
b29sIGluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAg
c3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIoKSB7IHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7IH0KICAgICBz
dGF0aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgaW5pdGlhbEFwcGxlQ29sb3JGaWx0ZXIoKSB7
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGZiMzIwODIzMzcuLmQyYTUzMWZhMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBiYWNrZmFj
ZVZpc2liaWxpdHkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQmFj
a2ZhY2VWaXNpYmlsaXR5KCkpKQogICAgICwgdXNlckRyYWcoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFJlbmRlclN0eWxlOjppbml0aWFsVXNlckRyYWcoKSkpCiAgICAgLCB0ZXh0T3ZlcmZsb3coc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVGV4dE92ZXJmbG93KCkpKQor
ICAgICwgdXNlU21vb3RoU2Nyb2xsaW5nKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHls
ZTo6aW5pdGlhbFVzZVNtb290aFNjcm9sbGluZygpKSkKICAgICAsIG1hcmdpbkJlZm9yZUNvbGxh
cHNlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihNYXJnaW5Db2xsYXBzZTo6Q29sbGFwc2UpKQogICAg
ICwgbWFyZ2luQWZ0ZXJDb2xsYXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTWFyZ2luQ29sbGFw
c2U6OkNvbGxhcHNlKSkKICAgICAsIGFwcGVhcmFuY2Uoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJl
bmRlclN0eWxlOjppbml0aWFsQXBwZWFyYW5jZSgpKSkKQEAgLTE4MCw2ICsxODEsNyBAQCBpbmxp
bmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShj
b25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KG8uYmFja2ZhY2VW
aXNpYmlsaXR5KQogICAgICwgdXNlckRyYWcoby51c2VyRHJhZykKICAgICAsIHRleHRPdmVyZmxv
dyhvLnRleHRPdmVyZmxvdykKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhvLnVzZVNtb290aFNj
cm9sbGluZykKICAgICAsIG1hcmdpbkJlZm9yZUNvbGxhcHNlKG8ubWFyZ2luQmVmb3JlQ29sbGFw
c2UpCiAgICAgLCBtYXJnaW5BZnRlckNvbGxhcHNlKG8ubWFyZ2luQWZ0ZXJDb2xsYXBzZSkKICAg
ICAsIGFwcGVhcmFuY2Uoby5hcHBlYXJhbmNlKQpAQCAtMjc4LDYgKzI4MCw3IEBAIGJvb2wgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIGJhY2tmYWNlVmlzaWJpbGl0eSA9PSBvLmJhY2tm
YWNlVmlzaWJpbGl0eQogICAgICAgICAmJiB1c2VyRHJhZyA9PSBvLnVzZXJEcmFnCiAgICAgICAg
ICYmIHRleHRPdmVyZmxvdyA9PSBvLnRleHRPdmVyZmxvdworICAgICAgICAmJiB1c2VTbW9vdGhT
Y3JvbGxpbmcgPT0gby51c2VTbW9vdGhTY3JvbGxpbmcKICAgICAgICAgJiYgbWFyZ2luQmVmb3Jl
Q29sbGFwc2UgPT0gby5tYXJnaW5CZWZvcmVDb2xsYXBzZQogICAgICAgICAmJiBtYXJnaW5BZnRl
ckNvbGxhcHNlID09IG8ubWFyZ2luQWZ0ZXJDb2xsYXBzZQogICAgICAgICAmJiBhcHBlYXJhbmNl
ID09IG8uYXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggMTljNTkxYjJkMS4uMTZh
Mjg1MTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xODEsNiArMTgxLDcgQEAgcHVibGlj
OgogCiAgICAgdW5zaWduZWQgdXNlckRyYWcgOiAyOyAvLyBVc2VyRHJhZwogICAgIHVuc2lnbmVk
IHRleHRPdmVyZmxvdyA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IGxpbmVzIHRoYXQgc3BpbGwgb3V0
IHNob3VsZCBiZSB0cnVuY2F0ZWQgd2l0aCAiLi4uIgorICAgIHVuc2lnbmVkIHVzZVNtb290aFNj
cm9sbGluZyA6IDE7IC8vIFNjcm9sbEJlaGF2aW9yCiAgICAgdW5zaWduZWQgbWFyZ2luQmVmb3Jl
Q29sbGFwc2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIG1hcmdpbkFmdGVy
Q29sbGFwc2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIGFwcGVhcmFuY2Ug
OiA2OyAvLyBFQXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVCdWlsZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaAppbmRleCA3ZjNmMGNiYzRlLi5lMzgyMDRmNjgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTI5LDYgKzEyOSw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgYm9vbCBjb252ZXJ0T3ZlcmZsb3dTY3JvbGxpbmcoQnVpbGRlclN0
YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKICNlbmRpZgogICAgIHN0YXRpYyBGb250RmVhdHVyZVNl
dHRpbmdzIGNvbnZlcnRGb250RmVhdHVyZVNldHRpbmdzKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENT
U1ZhbHVlJik7CisgICAgc3RhdGljIGJvb2wgY29udmVydFNtb290aFNjcm9sbGluZyhCdWlsZGVy
U3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBGb250U2VsZWN0aW9uVmFsdWUg
Y29udmVydEZvbnRXZWlnaHRGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMg
Rm9udFNlbGVjdGlvblZhbHVlIGNvbnZlcnRGb250U3RyZXRjaEZyb21WYWx1ZShjb25zdCBDU1NW
YWx1ZSYpOwogICAgIHN0YXRpYyBPcHRpb25hbDxGb250U2VsZWN0aW9uVmFsdWU+IGNvbnZlcnRG
b250U3R5bGVGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKQEAgLTE0MDMsNiArMTQwNCwxMSBA
QCBpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0T3ZlcmZsb3dTY3JvbGxpbmco
QnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVgogfQogI2VuZGlmCiAKK2lubGluZSBib29sIEJ1aWxk
ZXJDb252ZXJ0ZXI6OmNvbnZlcnRTbW9vdGhTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3Qg
Q1NTVmFsdWUmIHZhbHVlKQoreworICAgIHJldHVybiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZT4odmFsdWUpLnZhbHVlSUQoKSA9PSBDU1NWYWx1ZVNtb290aDsKK30KKwogaW5saW5lIFNWR0xl
bmd0aFZhbHVlIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTVkdMZW5ndGhWYWx1ZShCdWlsZGVy
U3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIFNWR0xlbmd0aFZh
bHVlOjpmcm9tQ1NTUHJpbWl0aXZlVmFsdWUoZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZh
bHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTA3Nzc5NjJkNS4u
NzI0MDA4MTBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTc0Niw3
ICsxNzQ2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjp1bmNvbnN0cmFpbmVkU2Ny
b2xsVG8oRWxlbWVudCYgZWxlbWVudCwgZG91YmxlIHgsIGQKICAgICBpZiAoIWRvY3VtZW50IHx8
ICFkb2N1bWVudC0+dmlldygpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yIH07CiAKLSAgICBlbGVtZW50LnNjcm9sbFRvKHsgeCwgeSB9LCBTY3JvbGxDbGFt
cGluZzo6VW5jbGFtcGVkKTsKKyAgICBlbGVtZW50LnNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucyh4
LCB5KSwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBlODQ1MmU3ZjkxLi5iMjhhYTRkMGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcy
IEBACisyMDE5LTEyLTExICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBuYXRpdmUg
c2Nyb2xsIGludGVyZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6ly
aWMgV2FuZy4KKworICAgICAgICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBl
cmltZW50YWwgZmVhdHVyZS4gT24gaW9zIHBsYXRmb3JtLCB1c2UgbmF0aXZlIGFuaW1hdGVkIHNj
cm9sbGluZworICAgICAgICBpbnRlcmZhY2VzIHRvIHBlcmZvcm1hbmNlIHNtb290aCBzY3JvbGwg
YW5kIHNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisKKyAgICAg
ICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKToK
KyAgICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVj
b2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBp
eGVsKTogSGVscCBmdW5jdGlvbiB0byBjaGVjayBpZiB0d28gZmxvYXQgcG9pbnRzIGFyZSBub3Qg
ZXF1YWwgYnV0IGluIHRoZSBzYW1lIGRldmljZSBwaXhlbC4KKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46YW5pbWF0ZWQ6XSk6
IEFkZCBhbmltYXRlZCBmbGFnIHRvIHN0YXJ0IGEgYW5pbWF0ZWQgc2Nyb2xsIGlmIG5lZWRlZC4K
KyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246
XSk6IFNlbmQgc3JvbGwgZW5kIG1lc3NhZ2UgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAo
LVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbE9yaWdpbjpd
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVy
bmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOiBQcm92aWRlIGludGVy
ZmFjZSBmb3IgYW5pbWF0ZWQgc2Nyb2xsaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKTog
QWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwp
OiBTeW5jIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKTogQWRkIGFuaW1hdGVkIHNjcm9sbGluZyBpbmZvIHRvIG1fcmVxdWVz
dGVkU2Nyb2xsSW5mby4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2UpOiBTeW5jIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgdG8gdGhlIFdlYiBwcm9jZXNz
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3Jv
bGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBE
aXR0by4gSXQncyBzcGVjaWZpYyB0byB0aGUgcm9vdCBub2RlLgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2Rl
RGlkU2Nyb2xsKTogQWRkIGFuaW1hdGVkIGluZm8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNj
cm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBEaXR0by4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Nj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbToKKyAgICAgICAgKC1bV0tTY3Jv
bGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmlt
YXRpb246XSk6IFNlbmQgc2NvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAg
ICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRT
dGF0ZUFmdGVyQ2hpbGRyZW4pOiBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBXZWIgcHJv
Y2VzcyBpc24ndCBlcXVhbCB0byB0aGUgVUkgcHJvY2VzcywKKyAgICAgICAgdGhlIHNjcm9sbCBw
b3NpdGlvbiBzaG91bGQgYmUgc3luY2hyb25pemVkLCBldmVuIHRoZXJlJ3Mgbm8gc2Nyb2xsaW5n
IHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycyk6
IENhbGxpbmcgdGhlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcgaW50ZXJmYWNlIGZvciBzbW9v
dGggc2Nyb2xsLgorICAgICAgICBJZiB0aGVyZSdzIGEgc2Nyb2xsIGFuaW1hdGlvbiBwZXJmb3Jt
aW5nLCBpdCBzaG91bGQgYmUgc3RvcHBlZCBmaXJzdCwgdGhlbiBzdGFydCBhIG5ldyBzY3JvbGxp
bmcuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24pOiBTeW5jIHNjcm9sbCBlbmQg
aW5mbyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbCk6IFRv
IGNhbGwgZGlmZmVyZW50IGZ1bmN0aW9ucyBmb3Igc21vb3RoIGFuZCBpbnN0YW50IHNjcm9sbC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0
U2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGxX
aXRoQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKToK
KworMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBB
ZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24g
dGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVm
ZXJlbmNlcy55YW1sOgorCiAyMDE5LTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgW21hY09TXSBJc3N1ZSBsb2FkIHNvb25lciBvbiBzd2lwZSBiYWNrL2Zv
cndhcmQgbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IGQ3YjFlMTkzNzIuLjg3N2QyOWEzMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKQEAg
LTE1Miw2ICsxNTIsOSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAgU0NST0xMSU5HX05P
REVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJh
bXMsIHNjcm9sbGFibGVBcmVhUGFyYW1ldGVycykKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUo
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24pCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bldpdGhBbmltYXRpb24pCisjZW5kaWYKIAogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkKICAg
ICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVy
SUQ+KG5vZGUuc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSk7CkBAIC0yNjAsNyArMjYzLDEyIEBAIGJv
b2wgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgU2Nyb2xsCiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgICAgIGJvb2wgc2Nyb2xsV2l0aEFuaW1h
dGlvbiA9IGZhbHNlOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoc2Nyb2xsV2l0aEFuaW1hdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisjZW5kaWYKKyAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3Jv
bGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xsV2l0aEFuaW1h
dGlvbik7CiAgICAgfQogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBAIC02MDgsNiAr
NjE2LDkgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0
aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICB0cy5kdW1wUHJvcGVy
dHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uKCkpOwogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRp
b24taXMtcHJvZ3JhbWF0aWMiLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAg
ICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24td2l0aC1hbmltYXRp
b24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKTsKKyNlbmRp
ZgogICAgIH0KIAogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVy
TGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMu
eWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggMmU3
YjRiNGZlNC4uZmViMmMzZjg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sCkBAIC0xMzI0LDYgKzEzMjQsMTMgQEAgQmxvY2tpbmdPZlNtYWxsUGx1Z2luc0VuYWJs
ZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlN0b3AgcGx1Z2lucyBzbWFsbGVyIHRo
YW4gYSBjZXJ0YWluIHRocmVzaG9sZCBmcm9tIGxvYWRpbmcuIgogICBjYXRlZ29yeTogaW50ZXJu
YWwKIAorQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBk
ZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTT00gVmlldyBTbW9v
dGggU2Nyb2xsaW5nIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgRE9NIEFQ
SSBhbmQgQ1NTIHByb3BlcnR5IGZvciAnc21vb3RoJyBzY3JvbGwgYmVoYXZpb3IiCisgIGNhdGVn
b3J5OiBleHBlcmltZW50YWwKKwogV2ViQW5pbWF0aW9uc0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wK
ICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQppbmRleCAzMzU0YWM2ZWVjLi4xMDhlNGMwM2I3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTE2MTcsNiAr
MTYxNywxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcG9pbnRzRXF1YWxJbkRldmljZVBpeGVscyhD
R1BvaW50IGEsIENHUG9pbnQgYiwgZmxvYXQgZGV2aWNlUwogICAgICAgICAmJiBmYWJzKGEueSAq
IGRldmljZVNjYWxlRmFjdG9yIC0gYi55ICogZGV2aWNlU2NhbGVGYWN0b3IpIDwgc3RkOjpudW1l
cmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHBv
aW50c0VxdWFsSW5Sb3VuZFRvRGV2aWNlUGl4ZWwoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIHJldHVybiBDR1JvdW5kKGEueCAqIGRldmljZVNj
YWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueCAqIGRldmljZVNjYWxlRmFjdG9yKQorICAgICAgICAm
JiBDR1JvdW5kKGEueSAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueSAqIGRldmlj
ZVNjYWxlRmFjdG9yKTsKK30KIHN0YXRpYyBDR1NpemUgcm91bmRTY3JvbGxWaWV3Q29udGVudFNp
emUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIENHU2l6ZSBjb250ZW50U2l6ZSkK
IHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3Io
KTsKQEAgLTIzNDEsOSArMjM0NiwxMCBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb25z
dHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogICAgIHJl
dHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihXZWJDb3JlOjpGbG9hdFBvaW50
KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNvbnRlbnRPZmZzZXQpKTsKIH0KIAotLSAo
dm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQp
c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmln
aW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9h
dFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Ny
b2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7Ci0gICAgaWYgKF9jb21taXREaWRS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2Vi
S2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykKKyAgICAvLyBBbmlt
YXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBwZWQuCisgICAgaWYgKCFhbmltYXRlZCAm
JiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8fCBfZHluYW1pY1ZpZXdwb3J0VXBk
YXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5n
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2Zm
c2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihz
Y3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2luKSk7CkBAIC0yMzU3LDEzICsy
MzYzLDIxIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZz
ZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAKICAgICBbX3Njcm9sbFZpZXcgX3N0
b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CiAKLSAgICBpZiAoIUNHUG9pbnRFcXVh
bFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBbX3Njcm9sbFZp
ZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudE9mZnNl
dDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXNdOworICAgIC8vIEl0J3MgcG9z
c2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4
ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4KKyAgICAvLyBXZSBuZWVkIHRvIGNhbGN1
bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhlcmUuCisgICAgaWYgKCFwb2ludHNFcXVh
bEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRl
cywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBfcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXRJ
blNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDphbmltYXRlZF07CiAgICAgZWxzZSB7CiAg
ICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBhbnl0aGluZywgdGhlcmUgd291bGQgbm90
IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRlIHNlbnQgdG8gdGhlIGNvbnRlbnQuCiAg
ICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtlZXAgdGhlIGludmFsaWQgY29udGVudE9m
ZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAgICAgICAvLyBUbyBzeW5jaHJvbml6ZSB0
aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2NyZWVuLCB3ZSBzZW5kIHRoZSBWaXNpYmxl
Q29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdlLT5yZXNlbmRMYXN0VmlzaWJsZUNvbnRl
bnRSZWN0cygpOworICAgICAgICAvLyBJZiBfc2Nyb2xsVmlldyB3b24ndCBjaGFuZ2UsIHdlIHN0
aWxsIG5lZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nlc3MgdGhhdCB0aGUgYW5pbWF0aW9uIHN0b3Bw
ZWQuCisgICAgICAgIGlmIChhbmltYXRlZCkgeworICAgICAgICAgICAgV2ViS2l0OjpSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5KCk7CisgICAgICAgICAgICBpZiAoY29vcmRpbmF0b3IpCisgICAgICAg
ICAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAg
LTI4NzksNiArMjg5MywxMCBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5D
b250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogLSAodm9pZClzY3Jv
bGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3
CiB7CiAgICAgW3NlbGYgX2RpZEZpbmlzaFNjcm9sbGluZ107CisKKyAgICBXZWJLaXQ6OlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICBpZiAoY29vcmRpbmF0b3IpCisgICAgICAgIGNvb3Jk
aW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NE
aWRDaGFuZ2UoZmFsc2UpOwogfQogCiAtICh2b2lkKV9zY3JvbGxWaWV3RGlkSW50ZXJydXB0RGVj
ZWxlcmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDQzNTA4
MGYzMjQuLjVjYjVmNTgxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC05Nyw3ICs5Nyw3IEBAIHN0cnVjdCBQ
cmludEluZm87CiAKIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25h
cHNob3Q7CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3Jl
OjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9p
bnQpc2Nyb2xsT3JpZ2luOworLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246
KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3Jl
OjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQ7CiAtIChCT09M
KV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IG9yaWdpbjooV2Vi
Q29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNjcm9sbERpc3RhbmNlOihmbG9hdCltaW5p
bXVtU2Nyb2xsRGlzdGFuY2U7CiAtIChkb3VibGUpX2luaXRpYWxTY2FsZUZhY3RvcjsKIC0gKGRv
dWJsZSlfY29udGVudFpvb21TY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApp
bmRleCBlODQ4MjRmZDg1Li5kZTNkMzM2NzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCkBAIC0xODEsNiArMTgxLDggQEAgcHVibGljOgogICAgIC8vIFRlbGwgdGhlIHZpZXcg
dG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBwb3NpdGlvbiwgYW5kIHdoZXRoZXIgdGhpcyB3YXMgYSBw
cm9ncmFtbWF0aWMgc2Nyb2xsLgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9s
bFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIHsgfQorCiAgICAgLy8gUmV0
dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiAobm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1l
IGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwgYmVjYXVzZSBvZiBzY2FsaW5nLCBpbnNl
dHMgZXRjLikKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0
aW9uKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1tCmluZGV4IDM4MGYxMjQ0NDMuLjBhNDJmOTQ0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0yMjQsOCArMjI0LDE0IEBAIHZv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0
IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAKICAgICAvLyBIYW5kbGUgcmVxdWVzdGVkIHNjcm9sbCBw
b3NpdGlvbiB1cGRhdGVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlIHRyYW5zYWN0aW9uIGFmdGVy
IGRpZENvbW1pdExheWVyVHJlZSgpCiAgICAgLy8gaGFzIHVwZGF0ZWQgdGhlIHZpZXcgc2l6ZSBi
YXNlZCBvbiB0aGUgY29udGVudCBzaXplLgotICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJl
cXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpCi0gICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVl
c3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgbGF5
ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCkpOworICAgIGlmIChyZXF1ZXN0ZWRTY3Jv
bGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUpIHsKKyAgICAgICAgbV93ZWJQYWdl
UHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uCisgICAgICAgICAgICAsIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbE9yaWdpbigp
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgICAgICwgcmVxdWVzdGVkU2Nyb2xs
SW5mby5yZXF1ZXN0V2l0aEFuaW1hdGlvbgorI2VuZGlmCisgICAgICAgICAgICApOworICAgIH0K
ICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogCiAgICAgaWYgKG1fZGVidWdJbmRp
Y2F0b3JMYXllclRyZWVIb3N0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5jcHAKaW5kZXggNDgyM2Y3NmE5Ny4uOGNmMWQ4NGExMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApAQCAtMjA4LDcg
KzIwOCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y3VycmVudFNu
YXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6CiB9CiAKIC8vIFRoaXMgY29tZXMgZnJv
bSB0aGUgc2Nyb2xsaW5nIHRyZWUuCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5v
ZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IE9wdGlvbmFs
PEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKQordm9pZCBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdO
b2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9u
LCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9v
bCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKIHsKICAgICAvLyBTY3JvbGwgdXBkYXRl
cyBmb3IgdGhlIG1haW4gZnJhbWUgYXJlIHNlbnQgdmlhIFdlYlBhZ2VQcm94eTo6dXBkYXRlVmlz
aWJsZUNvbnRlbnRSZWN0cygpCiAgICAgLy8gc28gZG9uJ3Qgc2VuZCB0aGVtIGhlcmUuCkBAIC0y
MjIsMjEgKzIyMiwzNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNj
cm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRAogICAgIG1fd2ViUGFnZVBy
b3h5LnNjcm9sbGluZ05vZGVTY3JvbGxWaWV3RGlkU2Nyb2xsKCk7CiAjZW5kaWYKIAotICAgIGlm
IChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSkKKyAgICBp
ZiAobV9zY3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKCkgJiYgIWlu
c3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3dl
YlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6U2Ny
b2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShzY3JvbGxlZE5vZGVJRCwgbmV3U2Nyb2xsUG9zaXRp
b24sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPT0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bkFjdGlvbjo6U3luYykpOwogfQogCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9s
bGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBzY3Jv
bGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQogewogICAgIGlmIChz
Y3JvbGxlZE5vZGVJRCA9PSByb290U2Nyb2xsaW5nTm9kZUlEKCkgJiYgbV9yZXF1ZXN0ZWRTY3Jv
bGxJbmZvKSB7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdHNTY3JvbGxQ
b3NpdGlvblVwZGF0ZSA9IHRydWU7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVx
dWVzdElzUHJvZ3JhbW1hdGljU2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8t
PnJlcXVlc3RXaXRoQW5pbWF0aW9uID0gd2l0aEFuaW1hdGlvbjsKKyNlbmRpZgogICAgICAgICBt
X3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9z
aXRpb247CiAgICAgfQogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVk
Tm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3dlYlBh
Z2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHNjcm9sbGVkTm9kZUlELCBpc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsKK30KKwordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3NEaWRDaGFuZ2UoYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAgbV93
ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShyb290U2Nyb2xsaW5nTm9kZUlE
KCksIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOworfQorI2VuZGlmCisKIFN0cmluZyBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkgY29u
c3QKIHsKICAgICBpZiAobV9zY3JvbGxpbmdUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggMWE3Njk0M2YyNC4uODExNWU0NzdjNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01NSw5
ICs1NSwxNCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eShXZWJQYWdlUHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5KCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Ny
b2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cisg
ICAgdm9pZCBzY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NE
aWRDaGFuZ2UoYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCisKICAg
ICAvLyBJbmZvcm0gdGhlIHdlYiBwcm9jZXNzIHRoYXQgdGhlIHNjcm9sbCBwb3NpdGlvbiBjaGFu
Z2VkIChjYWxsZWQgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUpCi0gICAgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpG
bG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb24pOwotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9s
bChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJDb3JlOjpT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBib29sIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5p
bWF0aW9uID0gZmFsc2UpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9s
bChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0
aEFuaW1hdGlvbiA9IGZhbHNlKTsKIAogICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSBldmVudFRy
YWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSwgV2ViQ29yZTo6
SW50UG9pbnQpIGNvbnN0OwogCkBAIC04MCw2ICs4NSw5IEBAIHB1YmxpYzoKICAgICBzdHJ1Y3Qg
UmVxdWVzdGVkU2Nyb2xsSW5mbyB7CiAgICAgICAgIGJvb2wgcmVxdWVzdHNTY3JvbGxQb3NpdGlv
blVwZGF0ZSB7IH07CiAgICAgICAgIGJvb2wgcmVxdWVzdElzUHJvZ3JhbW1hdGljU2Nyb2xsIHsg
fTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBib29sIHJlcXVlc3RXaXRoQW5p
bWF0aW9uIHsgfTsKKyNlbmRpZgogICAgICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uOwogICAgIH07CiAgICAgdm9pZCBjb21taXRTY3JvbGxpbmdUcmVlU3Rh
dGUoY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbiYsIFJlcXVlc3Rl
ZFNjcm9sbEluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAppbmRleCBhZmFiYmMx
ZWFlLi5kNTczYTMxZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC0xMDQs
MTIgKzEwNCwxNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2Rl
RGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJgogICAgIGlmIChpczxTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKSkKICAgICAgICAgbGF5b3V0Vmlld3BvcnRP
cmlnaW4gPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKS5s
YXlvdXRWaWV3cG9ydCgpLmxvY2F0aW9uKCk7CiAKLSAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwg
bm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworICAgIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BB
bmltYXRpb24gPSBmYWxzZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGluc3RhbnRT
Y3JvbGxEaWRTdG9wQW5pbWF0aW9uID0gbm9kZS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0
aW9uKCkgJiYgIW5vZGUucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCk7CisjZW5kaWYKKyAgICBtX3Nj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5z
Y3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmll
d3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGluc3RhbnRTY3JvbGxE
aWRTdG9wQW5pbWF0aW9uKTsKIH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxp
bmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpCit2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNT
Y3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0
aW9uKQogewotICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwpOworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdU
cmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGwsIHdpdGhBbmltYXRpb24pOwogfQogCiBSZWY8U2Nyb2xsaW5nVHJl
ZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9s
bGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpAQCAtMTQzLDYg
KzE0NywxMyBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNy
ZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZAogICAgIHJldHVybiBTY3JvbGxpbmdU
cmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlz
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3Nj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mp
OworfQorI2VuZGlmCisKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2lu
dEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpv
bnRhbCwgdW5zaWduZWQgdmVydGljYWwpCiB7CiAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKG5vZGVJRCwgaG9yaXpvbnRhbCwg
dmVydGljYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggMjNiYWMwNmEzYi4uMGY5
ZTA5NDk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1MiwxMSBAQCBw
dWJsaWM6CiAgICAgY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYgc2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTsgfQogCiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24gPSBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5j
KSBvdmVycmlkZTsKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQ
b3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSkg
b3ZlcnJpZGU7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5n
VHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykgb3ZlcnJpZGU7
CisjZW5kaWYKIAogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0
aWNhbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKaW5kZXggZTYzN2Q2MTUzMi4uMDBiNGRiY2Qz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Ny
b2xsRGlkRW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVy
ZSgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBzY3JvbGxPZmZzZXQsIGJvb2wgaW5Vc2VySW50ZXJhY3Rpb24pOworICAgIHZv
aWQgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbigpOwogCiAgICAgdm9pZCBjdXJy
ZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25l
ZCB2ZXJ0aWNhbCkgY29uc3Q7CiAgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBtX3Njcm9sbExheWVyLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9z
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggZTc2ODk4Mzc1
OC4uODQ4ODYzYTgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMTUyLDYgKzE1MiwxMSBAQAogICAg
IH0KIH0KIAorLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNj
cm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUt
PnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKTsKK30KKwogI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKIC0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNj
cm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0IHRyYW5zbGF0
aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3RhcnQgbG9jYXRp
b25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9jaXR5Oihpbm91
dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2dgogewpAQCAt
MzAwLDE1ICszMDUsMzYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIAogICAgIGlmIChzY3Jv
bGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CiAgICAgICAgIGF1dG8gc2Nyb2xsVHlw
ZSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGwoKSA/IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyA6IFNjcm9sbFR5
cGU6OlVzZXI7Ci0gICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0
ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSk7CisgICAgICAgIGlm
IChzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9u
KCkpCisgICAgICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xs
KHRydWUpOworICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9ucyBhcmUgbm90IHRoZSBz
YW1lLCB0aGVyZSdzIGEgcG9zc2liaWxpdHkgdGhhdCB0aGUgc2Nyb2xsIG9mZnNldCBmcm9tIHRo
ZSBXZWIgcHJvY2VzcyBoYXMgYmVlbiBvdmVycmlkZGVuLgorICAgICAgICAvLyBJbiB0aGlzIGNh
c2UsIHRoZSBzY3JvbGwgcG9zaXRpb24gbmVlZCB0byBiZSBzZW50IHRvIHRoZSBXZWIgcHJvY2Vz
cy4KKyAgICAgICAgYm9vbCBzaG91bGRTeW5jU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxpbmdTdGF0
ZU5vZGUuc2Nyb2xsUG9zaXRpb24oKSAhPSBzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbFBv
c2l0aW9uKCk7CisgICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0
ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRp
b25DbGFtcDo6VG9Db250ZW50RWRnZXMsIHNob3VsZFN5bmNTY3JvbGxQb3NpdGlvbik7CiAgICAg
fQogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9z
aXRpb25TY3JvbGxpbmdMYXllcnMoKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwotICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3Vy
cmVudFNjcm9sbE9mZnNldCgpXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAg
Ym9vbCBhbmltYXRpb25JblByb2dyZXNzID0gc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3MoKTsKKyAgICBib29sIG5lZWRUb1N0b3BBbmltYXRpb24gPSBzY3JvbGxpbmdO
b2RlKCkubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpOworICAgIGlmIChuZWVkVG9T
dG9wQW5pbWF0aW9uICYmIGFuaW1hdGlvbkluUHJvZ3Jlc3MpIHsKKyAgICAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNl
dDpzY3JvbGxWaWV3KCkuY29udGVudE9mZnNldCBhbmltYXRlZDpOT107CisgICAgICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CisKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZSgpLnJl
cXVlc3RBbmltYXRlZFNjcm9sbCgpKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9k
ZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKSBhbmltYXRlZDpZRVNdOworICAgICAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TCisKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3ModHJ1ZSk7CisgICAgfSBlbHNlIGlmICghYW5pbWF0aW9uSW5Qcm9n
cmVzcyB8fCBuZWVkVG9TdG9wQW5pbWF0aW9uKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xs
aW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07CisgICAgICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKKyAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUzo6c2Nyb2xsV2lsbFN0YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICszNjEsMTUgQEAg
dm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlk
U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQKICAgICBzY3JvbGxpbmdOb2RlKCkud2FzU2Nyb2xsZWRC
eURlbGVnYXRlZFNjcm9sbGluZyhzY3JvbGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJbnRlcmFjdGlv
biA/IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMgOiBTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uOjpTZXQpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKQoreworICAg
IGF1dG8mIG5vZGUgPSBzY3JvbGxpbmdOb2RlKCk7CisgICAgaWYgKCEobm9kZS5yZXF1ZXN0QW5p
bWF0ZWRTY3JvbGwoKSAmJiBub2RlLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAg
ICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzRGlkQ2hhbmdlKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAg
ICAgbm9kZS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisK
IHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQ
b2ludEluZGljZXNEaWRDaGFuZ2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGlj
YWwpIGNvbnN0CiB7CiAgICAgaWYgKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZGIyY2UwNzljYS4uZDA5ZjYwN2Fj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzY3LDkg
KzE3NjcsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3Qg
UmVnaW9uJiByZWdpb24pCiAgICAgcGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVn
aW9uKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lk
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3Np
dGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0
aW9uKQogewotICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBz
Y3JvbGxPcmlnaW4pOworICAgIGlmICh3aXRoQW5pbWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50
KCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdp
bik7CisgICAgZWxzZQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQ
b3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdl
UHJveHk6OnZpZXdTY3JvbGxQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IGFlMzg1MjIyMWQuLmFmMDdlYTQ5MjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02MTMsNyArNjEzLDcgQEAgcHVibGljOgogICAg
IFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05lZWRz
RGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKTsKLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwo
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBzY3JvbGxPcmlnaW4pOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHNjcm9sbE9yaWdpbiwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogICAgIAogICAg
IFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggZDZj
OGMzOGQ0YS4uNTE5OGVmNDQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQ
cm9jZXNzUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29u
c3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGxX
aXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKICAgICBXZWJD
b3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNv
cmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0Fj
dGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tCmluZGV4IGRjOWY3NGM0OWEuLjJjMzBjNGJjMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTk1LDcg
Kzk1LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3Qg
UmVnaW9uJikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKIHsK
LSAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3Np
dGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luXTsKKyAgICBbbV93ZWJWaWV3IF9zY3JvbGxU
b0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xs
T3JpZ2luIGFuaW1hdGVkOk5PXTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNj
cm9sbFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0
IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit7CisgICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250
ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdp
biBhbmltYXRlZDpZRVNdOwogfQogCiBXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBs
Ojp2aWV3U2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA4ZTY0OTM1NTQ1Li4zZDM0NWQ3NjhlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApA
QCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbFBvc2l0aW9uQ2hhbmdl
ZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgdm9pZCBj
dXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOwogCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFu
Z2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKTsKKyNlbmRpZgorCiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4IDJjMDk4YTEwOTcuLjUzN2ZkMzRkNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDkgQEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yIHsKICAgICBTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHVpbnQ2
NF90IG5vZGVJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5j
TGF5ZXJQb3NpdGlvbik7CiAgICAgQ3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9k
ZSh1aW50NjRfdCBub2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2Fs
KTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3NDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ci5tbQppbmRleCA4MzU0NDFkMzE5Li42ODlkNTU2MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDQsNiArMTA0LDEz
IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmN1cnJlbnRTbmFwUG9pbnRJbmRp
Y2VzQ2hhbmdlZEZvck5vZGUoU2Nyb2xsaW5nCiAgICAgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGlj
ZXMobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQs
IGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAgIHNldFNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3Mobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBiOWRhZTJjZTEwLi5i
Y2Y1ZWI4YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBi
eSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIHJ1biB0aW1lIGZsYWcgZm9yIENTU09N
Vmlld1Ntb290aFNjcm9sbGluZy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmg6IEhhbmRsZSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcgYnkuCisgICAgICAg
ICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKFtXZWJQcmVmZXJlbmNlcyBp
bml0aWFsaXplXSk6IERpc2FibGUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nIGJ5IGRlZmF1bHQu
CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWRdKTogR2V0dGVyLgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkOl0pOiBTZXR0ZXIuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOS0xMi0wOSAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgbWVkaWEg
aW4gdGhlIEdQVSBwcm9jZXNzIHByZWZlcmVuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDQ0
MWI1YTg3NzYuLmM2NzlmYmQ2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTg4LDYgKzE4
OCw3IEBACiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmll
d3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5h
YmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVu
Y2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgorI2RlZmluZSBXZWJL
aXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1vZGVybk1lZGlh
Q29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1vZGVybk1lZGlhQ29udHJvbHNF
bmFibGVkIgogI2RlZmluZSBXZWJLaXRSZW1vdGVQbGF5YmFja0VuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0UmVtb3RlUGxheWJhY2tFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTdWJ0bGVDcnlw
dG9FbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWQiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRl
eCA0N2Y3Yzc1ZGRhLi5jZDIzNjc0NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY2Myw2ICs2NjMsNyBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogICAgICAgICBAWUVTLCBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgQE5PLCBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3Jv
bGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQFlFUywgV2ViS2l0TmVlZHNTdG9y
YWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmtLZXksCiAgICAgICAgIEBOTywgV2ViS2l0QWxsb3dD
cm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHNLZXksCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKQEAgLTMxODEsNiArMzE4MiwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNs
YXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktl
eTpXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAK
Ky0gKEJPT0wpQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZAoreworICAgIHJldHVybiBb
c2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9y
S2V5OldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsK
K30KKwogLSAoQk9PTCl3ZWJBbmltYXRpb25zRW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBf
Ym9vbFZhbHVlRm9yS2V5OldlYktpdFdlYkFuaW1hdGlvbnNFbmFibGVkUHJlZmVyZW5jZUtleV07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaAppbmRleCA1OTc1OGUyMzM1Li4wOTExOTMxZGMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmgKQEAgLTYzMiw2ICs2MzIsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2Fj
aGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CiBAcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOworQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxl
ZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRNYXJrdXBFbmFibGVkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDQ3YWFlMzI4
ZGIuLjY2NzAzNTllMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KQEAgLTI5OTIsNiArMjk5Miw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldo
aWxlTG9hZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJs
ZWQoW3ByZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdz
LnNldFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQoW3ByZWZlcmVuY2VzIHN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kc0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
XSk7CisgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbcHJl
ZmVyZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZF0pOwogICAgIHNldHRpbmdz
LnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFtwcmVmZXJlbmNl
cyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOwogCiAgICAgc3dp
dGNoIChbcHJlZmVyZW5jZXMgc3RvcmFnZUJsb2NraW5nUG9saWN5XSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCmluZGV4IDQyMDE0ZDk5ZDUuLmU3Y2E2ZjcyMjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4g
IDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9s
bCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcu
CisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAg
ICAgICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6IEhhbmRsZSBzbW9v
dGggc2Nyb2xsaW5nIG9wdGlvbi4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aDogRGl0dG8uCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOiBEaXR0by4KKyAgICAgICAg
KFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAgICAgICAgKFdl
YlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYlByZWZlcmVuY2VzOjpzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKToKKyAg
ICAgICAgKiBXZWJQcmVmZXJlbmNlcy5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJWaWV3LmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorCiAy
MDE5LTEyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUGFn
ZUNvbmZpZ3VyYXRpb246OmRyYWdDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IGE3MTc2MjIyMWIuLmNjZmY5ZjA1OTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjIzLDYgKzIyMyw4IEBAIGludGVyZmFjZSBJV2Vi
UHJlZmVyZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1CiAgICAgSFJFU1VM
VCBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhS
RVNVTFQgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsK
ICAgICBIUkVTVUxUIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW2luXSBCT09MIGVu
YWJsZWQpOworICAgIEhSRVNVTFQgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbb3V0
LCByZXR2YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldENTU09NVmlld1Ntb290aFNjcm9sbGlu
Z0VuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgZmV0Y2hBUElLZWVwQWxp
dmVFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCogZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzZXRG
ZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQg
c3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCAqZW5hYmxlZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CmluZGV4IDA5OTM3NDIwZTQuLjA4YzQ1NjcyN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yMDksNiArMjA5LDcgQEAK
ICNkZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFNl
cnZlclRpbWluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJ
RW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQi
CisjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNl
S2V5ICJXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIgogCiAjZGVmaW5lIFdl
YktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFJlc2l6ZU9ic2Vy
dmVyRW5hYmxlZCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
CmluZGV4IDk1ZWJlYTI2OGMuLmM4ZTIyNWFhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTMzOSw2ICszMzksOCBAQCB2b2lkIFdlYlByZWZlcmVu
Y2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGljdGlvbmFyeUFkZFZh
bHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNl
S2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1
bHRzLCBDRlNUUihXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5j
ZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZh
dWx0cywgQ0ZTVFIoV2ViS2l0Q29yZU1hdGhNTEVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9v
bGVhbkZhbHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihX
ZWJLaXRSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFu
RmFsc2UpOwpAQCAtMjI4Myw2ICsyMjg1LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNl
dENvcmVNYXRoTUxFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAor
SFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChf
T3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0dXJu
IEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0dXJuIFNfT0s7
Cit9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldENTU09NVmlld1Ntb290aFNjcm9sbGlu
Z0VuYWJsZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0
dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnJlcXVlc3RJZGxlQ2FsbGJh
Y2tFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggMWRhYWE3MzAyNS4uNjA2
NmU0NjQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5j
ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0y
NzEsNiArMjcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8g
Qk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRfIEJPT0wqKTsK
KyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKEJP
T0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApp
bmRleCBhMDQ0OGJiMDEzLi5kMmIyMmYwNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcApAQCAtNTMxOCw2ICs1MzE4LDExIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVy
ZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0
dXJuIGhyOwogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoISFl
bmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJu
IGhyOworICAgIHNldHRpbmdzLnNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoISFl
bmFibGVkKTsKKwogICAgIGhyID0gcHJlZmVyZW5jZXMtPnByaXZhdGVCcm93c2luZ0VuYWJsZWQo
JmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDBkYWJlNzNm
NC4uZTlhMTI4YjAyNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhp
ZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2
aW9yIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAg
ICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoVGVzdE9wdGlvbnM6OlRl
c3RPcHRpb25zKTogUGFyc2UgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZC4KKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOiBBZGQgQ1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZCwgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChzZXRXZWJQcmVmZXJlbmNlc0Zv
clRlc3RPcHRpb25zKTogU2V0IENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQgZnJvbSB0
aGUgdGVzdCBvcHRpb25zLgorCiAyMDE5LTEyLTEwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggQVBJIHRlc3QgZmFpbHVyZSBhZnRlciByMjUzMzUx
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggN2M5YWU1OTk0YS4uMjM3Yzk4
ODc4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtMTQyLDYgKzE0Miw4
IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJM
LCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBhZENsaWNrQXR0cmlidXRp
b25FbmFibGVkID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAg
ZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVzaXplT2JzZXJ2ZXJFbmFibGVkIikKICAg
ICAgICAgICAgIGVuYWJsZVJlc2l6ZU9ic2VydmVyID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZh
bHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIpCisgICAgICAgICAgICBlbmFibGVDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmcgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAg
ICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpDb3JlTWF0aE1MRW5hYmxlZCIpCiAg
ICAgICAgICAgICBlbmFibGVDb3JlTWF0aE1MID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVl
KHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVxdWVzdElk
bGVDYWxsYmFja0VuYWJsZWQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5kZXggZTUz
MzVlODMxMS4uZjdlOGQyOTExZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCkBAIC01
MCw2ICs1MCw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBlbmFibGVDU1NMb2dp
Y2FsIHsgZmFsc2UgfTsKICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgZW5hYmxlUmVzaXplT2JzZXJ2ZXIgeyBmYWxzZSB9OworICAgIGJvb2wg
ZW5hYmxlQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJs
ZUNvcmVNYXRoTUwgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlUmVxdWVzdElkbGVDYWxsYmFj
ayB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVBc3luY0NsaXBib2FyZEFQSSB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0g
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggY2NmZmUw
NTVkMy4uNjdjYWVhNzE4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbQpAQCAtMTAyOSw2ICsxMDI5LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5j
ZXNGb3JUZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBwcmVmZXJl
bmNlcy5DU1NMb2dpY2FsRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTTG9naWNhbDsKICAgICBw
cmVmZXJlbmNlcy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gb3B0aW9ucy5hZENsaWNrQXR0
cmlidXRpb25FbmFibGVkOwogICAgIHByZWZlcmVuY2VzLnJlc2l6ZU9ic2VydmVyRW5hYmxlZCA9
IG9wdGlvbnMuZW5hYmxlUmVzaXplT2JzZXJ2ZXI7CisgICAgcHJlZmVyZW5jZXMuQ1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nOwogICAgIHByZWZlcmVuY2VzLmNvcmVNYXRoTUxFbmFibGVkID0gb3B0aW9ucy5lbmFi
bGVDb3JlTWF0aE1MOwogICAgIHByZWZlcmVuY2VzLnJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVk
ID0gb3B0aW9ucy5lbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrOwogICAgIHByZWZlcmVuY2VzLmFz
eW5jQ2xpcGJvYXJkQVBJRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQXN5bmNDbGlwYm9hcmRBUEk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385716</attachid>
            <date>2019-12-15 07:08:04 -0800</date>
            <delta_ts>2019-12-15 09:13:55 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_41.diff</filename>
            <type>text/plain</type>
            <size>302029</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZDY4MWQ0NmE3Li4wYjlkZDgzNmY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0g
aXMgYmFzZWQgb24gQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5j
IHNjcm9sbCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJl
Zm9yZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0
byBmYXN0L3Njcm9sbGluZy9pb3MvLCB0aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAgICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAg
ICAod2FpdEZvclNjcm9sbEVuZCk6CisgICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNj
cm9sbFdpbmRvdyk6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sLgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNh
dGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJl
aGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4ODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUg
cGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
OiBTa2lwIHRoZXNlIHRlc3RzIG9uIFdLMSBhcyB0aGV5IGRvbid0IHdvcmsgZm9yIG5vdy4KKwor
MjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxOS0xMi0xMyAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9w
ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggc29tZSBlcnJvcnMgb24gdGhlIFRlc3RFeHBl
Y3RhdGlvbnMgZmlsZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAuLjBhMDk2OGUwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcwpAQCAt
MCwwICsxLDg3IEBACitmdW5jdGlvbiBvYnNlcnZlU2Nyb2xsaW5nKGVsZW1lbnRzLCBjYWxsYmFj
aykgeworICBpZiAoIUFycmF5LmlzQXJyYXkoZWxlbWVudHMpKQorICAgICAgZWxlbWVudHMgPSBb
ZWxlbWVudHNdOworICB2YXIgbGFzdENoYW5nZWRGcmFtZSA9IDA7CisgIHZhciBsYXN0TGVmdCA9
IG5ldyBNYXAoKTsKKyAgdmFyIGxhc3RUb3AgPSBuZXcgTWFwKCk7CisgIGVsZW1lbnRzLmZvckVh
Y2goKGVsZW1lbnQpID0+IHsKKyAgICBsYXN0TGVmdC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3Jv
bGxMZWZ0KTsKKyAgICBsYXN0VG9wLnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbFRvcCk7Cisg
IH0pOworICBmdW5jdGlvbiB0aWNrKGZyYW1lcykgeworICAgIC8vIFdlIHJlcXVlc3RBbmltYXRp
b25GcmFtZSBlaXRoZXIgZm9yIDUwMCBmcmFtZXMgb3IgdW50aWwgMjAgZnJhbWVzIHdpdGgKKyAg
ICAvLyBubyBjaGFuZ2UgaGF2ZSBiZWVuIG9ic2VydmVkLgorICAgIGlmIChmcmFtZXMgPj0gNTAw
IHx8IGZyYW1lcyAtIGxhc3RDaGFuZ2VkRnJhbWUgPiAyMCkgeworICAgICAgY2FsbGJhY2sodHJ1
ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIHZhciBzY3JvbGxIYXBwZW5lZCA9IGVsZW1lbnRzLnNv
bWUoKGVsZW1lbnQpID0+IHsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQuc2Nyb2xsTGVmdCAhPSBs
YXN0TGVmdC5nZXQoZWxlbWVudCkgfHwgZWxlbWVudC5zY3JvbGxUb3AgIT0gbGFzdFRvcC5nZXQo
ZWxlbWVudCk7CisgICAgICB9KTsKKyAgICAgIGlmIChzY3JvbGxIYXBwZW5lZCkgeworICAgICAg
ICBsYXN0Q2hhbmdlZEZyYW1lID0gZnJhbWVzOworICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChl
bGVtZW50KSA9PiB7CisgICAgICAgICAgbGFzdExlZnQuc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Ny
b2xsTGVmdCk7CisgICAgICAgICAgbGFzdFRvcC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxU
b3ApOworICAgICAgICB9KTsKKyAgICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgfQorICAg
ICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2suYmluZChudWxsLCBmcmFtZXMgKyAxKSk7Cisg
ICAgfQorICB9CisgIHRpY2soMCk7Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JTY3JvbGxFbmQoZWxl
bWVudHMpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgb2JzZXJ2
ZVNjcm9sbGluZyhlbGVtZW50cywgKGRvbmUpID0+IHsKKyAgICAgIGlmIChkb25lKQorICAgICAg
ICByZXNvbHZlKCk7CisgICAgfSk7CisgIH0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KSB7CisgIC8vIFRyeSB2YXJpb3VzIG1ldGhvZHMgdG8gZW5zdXJlIHRo
ZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0ZWx5LgorICBzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IDA7Cisg
IHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5z
dGFudCJ9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93KSB7CisgIC8vIFRyeSB2YXJpb3VzIG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBv
c2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0ZWx5LgorICBzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAgc2Nyb2xsaW5nV2luZG93LmRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsKKyAgc2Nyb2xsaW5nV2luZG93LnNj
cm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImluc3RhbnQifSk7Cit9CisKK2Z1bmN0
aW9uIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsIGNsYXNzTmFtZSkgeworICBzdHls
ZWRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImF1dG9CZWhhdmlvciIsICJzbW9vdGhCZWhhdmlv
ciIpOworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTsKK30KKworZnVu
Y3Rpb24gc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgYmVoYXZp
b3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCkgeworICB2YXIgYXJn
cyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5iZWhhdmlvciA9IGJlaGF2aW9yOwor
ICBzd2l0Y2ggKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgY2FzZSAic2Nyb2xsSW50b1ZpZXciOgor
ICAgICAgYXJncy5pbmxpbmUgPSAic3RhcnQiOworICAgICAgYXJncy5ibG9jayA9ICJzdGFydCI7
CisgICAgICBlbGVtZW50VG9SZXZlYWwuc2Nyb2xsSW50b1ZpZXcoYXJncyk7CisgICAgICBicmVh
azsKKyAgICBkZWZhdWx0OgorICAgICAgYXJncy5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdDsK
KyAgICAgIGFyZ3MudG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wOworICAgICAgc2Nyb2xsaW5nRWxl
bWVudFtzY3JvbGxGdW5jdGlvbl0oYXJncyk7CisgICAgICBicmVhazsKKyAgfQorfQorCitmdW5j
dGlvbiBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgYmVoYXZp
b3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCkgeworICB2YXIgYXJn
cyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5iZWhhdmlvciA9IGJlaGF2aW9yOwor
ICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0OworICBhcmdzLnRvcCA9IGVsZW1lbnRU
b1JldmVhbFRvcDsKKyAgc2Nyb2xsaW5nV2luZG93W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOGQ0Y2E2NDE1NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1j
c3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIEluc3RhbnQgc2Nyb2xsaW5n
IG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKK1BBU1MgU21vb3Ro
IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItZGVmYXVsdC1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwLi4zNWM2NTAzYWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCkBAIC0wLDAg
KzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJp
bWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5
bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3RpbmcgZGVm
YXVsdCB2YWx1ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91
dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmlj
IFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xs
LWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cu
b3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9s
bGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWln
aHQ6IDIwMHB4OworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBp
ZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRo
OiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1
ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVu
dFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjog
LTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9z
cGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQg
PSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIg
ZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICB2YXIgc2Nyb2xsRnVuY3Rpb24gPSAic2Nyb2xs
IjsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICB9LCAiSW5zdGFudCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3
aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiU21vb3Ro
IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTNhOTYxZWY1NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVu
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9y
dGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFub3Ro
ZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Ny
b2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVt
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kMzhk
ZmZkZWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSwxNjMgQEAKKzwhRE9DVFlQ
RSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGlu
Z0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZp
b3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIGFuIGVsZW1lbnQ8
L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2Fs
aWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3gi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48
L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOwor
ICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICB9CisgIC5hdXRvQmVoYXZp
b3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZpb3Ig
eworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0i
bG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+
CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5k
OiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwv
c3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJh
Y2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZhciBzdHlsZWRFbGVtZW50
ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFy
IGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKworICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJz
Y3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7
CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhh
dmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxs
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3Vs
ZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJh
dXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlv
biwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8g
YmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9s
bChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBg
RWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVt
ZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5n
RWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAg
ICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Nj
cm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9s
bEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsK
KworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhC
ZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAi
YXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBh
dXRvIGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRT
Y3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBz
Y3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7Cisg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAg
ICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgICB9KTsKKyAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgfSk7
CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVt
ZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7
CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBl
bGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIp
OworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbiBpbnN0YW50IHNjcm9s
bGluZyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9v
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTdj
YWVhMjdiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDM3IEBACisKK1BBU1MgUGFnZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBz
Y3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcg
CitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBm
cmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kMzI1
YjRiOWUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApAQCAtMCwwICsxLDE2OSBAQAor
PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NT
T01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93
U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25z
JyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhl
IHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmci
IGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2
aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAg
bWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjog
YXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21v
b3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFn
ZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgor
ICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRp
c3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3Vu
ZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBh
c3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOworICB2YXIgc2Nyb2xsaW5nRWxlbWVudCwgc3R5bGVk
RWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBhZ2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVu
Y3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1l
bnQ7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBw
YWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRoKSAqIDUgKyAi
cHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9ICgyMCArIHdpbmRvdy5pbm5lckhl
aWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gKDEwICsgd2luZG93
LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZlYWxUb3AgPSAoMjAgKyB3aW5kb3cu
aW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUubGVmdCA9IGVsZW1l
bnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS50b3AgPSBl
bGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2so
KCkgPT4geyByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsgfSk7CisKKyAgICBbInNjcm9s
bCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2goKHNj
cm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2
ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAi
YXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRv
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5j
dGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCku
dGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0
Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAg
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7Cisg
ICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxs
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3Nl
cnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
YXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7
CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3Jv
bGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3Jv
bGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFu
IG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIg
c21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImlu
c3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0Vs
ZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9v
dGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmci
KTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAuLjM4MjM4NWFhYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDI5IEBACisKK1BBU1MgUGFnZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9v
dGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLjkwNTdiMGNkMTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwK
QEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50
ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRl
c3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBvbiB0aGUg
d2luZG93IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2NhbGU9MSI+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5j
b20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
b20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBtYXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhh
dmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlv
ciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlk
PSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdlQ29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+CisgIDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDog
MTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8
c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFzeW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7Cisg
IHZhciBzY3JvbGxpbmdXaW5kb3csIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBw
YWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKCkgeworICAgIHNjcm9sbGluZ1dpbmRv
dyA9IHdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
OworICAgIHBhZ2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgp
ICogNSArICJweCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93
LmlubmVySGVpZ2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAg
KyB3aW5kb3cuaW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCAr
IHdpbmRvdy5pbm5lckhlaWdodCkgKiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0
ID0gZWxlbWVudFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxl
LnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9j
YWxsYmFjaygoKSA9PiB7IHJlc2V0U2Nyb2xsRm9yV2luZG93KHdpbmRvdyk7IH0pOworCisgICAg
WyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlv
bikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxG
b3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3cs
IHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAg
fSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3Jv
bGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93
KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxG
dW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxX
aW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3Jv
bGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVh
bFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3Vs
ZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZv
clNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhl
bigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAg
ICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1
bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3Jv
bGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dp
bmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5n
V2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
cmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJl
aGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwi
LCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAv
IDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3Ro
IHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGlu
ZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAw
KTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVu
dC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2lu
ZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uNDQzYTgyMGU1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVz
dGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBzY3JvbGxJbnRvVmlldyB3
aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQ1YjVkOGQ3YzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGlu
dG92aWV3LW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGlu
Z0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1
ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3Igd2l0aCBzY3Jv
bGxJbnRvVmlldyBmb3IgbmVzdGVkIHNjcm9sbGluZyBub2RlczwvdGl0bGU+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRl
Zi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
ICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgaGVpZ2h0OiAyMDBweDsK
KyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOwor
ICB9CisgIC5ncmFkaWVudCB7CisgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRl
ZywgcmVkLCBncmVlbik7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8
ZGl2PgorICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lk
dGg6IDQ1MHB4Ij4KKyAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBw
eDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21v
b3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogNDAwcHgiPgorICAgICAgPGRpdiBjbGFzcz0iZ3Jh
ZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAg
IDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMzUwcHgiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsi
PjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDMw
MHB4Ij4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBw
eDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFi
bGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0aDogMjUwcHgiPgorICAgICAgICAgICAgPGRp
diBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48
L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDog
MjAwcHgiPgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRo
OiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJl
bGVtZW50VG9SZXZlYWwiIHN0eWxlPSJ3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBiYWNrZ3Jv
dW5kOiBibGFjazsiPjwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIg
c3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAgICAg
PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAx
MDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAgIDwvZGl2PgorICAgICAgICAg
IDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4
OyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0
eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgIDwvZGl2Pgor
ICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDog
NTAwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Cisg
IC8vIFRoZSBDU1NPTS1WaWV3IHNwZWMgYW5kIGltcGxlbWVudGF0aW9ucyBmb2xsb3cgZGlmZmVy
ZW50IGFsZ29yaXRobXMgKHNjcm9sbHMgcGVyZm9ybWVkIGluIHBhcmFsbGVsLCBhcyBpbm5lci10
by1vdXRlciBzZXF1ZW5jZSBvciBhcyBvdXRlci10by1pbm5lciBzZXF1ZW5jZSkuCisgIC8vIFNl
ZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMzEyNworICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgIHZhciBkaXZzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
LnNjcm9sbGFibGUiKTsKKyAgICAgIGRpdnMuZm9yRWFjaCgoc2Nyb2xsYWJsZURpdikgPT4gewor
ICAgICAgICByZXNldFNjcm9sbChzY3JvbGxhYmxlRGl2KTsKKyAgICAgIH0pOworICAgICAgZWxl
bWVudFRvUmV2ZWFsLnNjcm9sbEludG9WaWV3KHtpbmxpbmU6ICJzdGFydCIsIGJsb2NrOiAic3Rh
cnQiLCBiZWhhdmlvcjogImF1dG8ifSk7CisgICAgICB2YXIgc2Nyb2xsVG9wID0gbmV3IE1hcCgp
OworICAgICAgdmFyIGlzU21vb3RoID0gbmV3IE1hcCgpOworICAgICAgZGl2cy5mb3JFYWNoKChz
Y3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAgIHNjcm9sbFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwg
c2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAgICBpc1Ntb290aC5zZXQoc2Nyb2xsYWJs
ZURpdiwgc2Nyb2xsYWJsZURpdi5jbGFzc0xpc3QuY29udGFpbnMoInNtb290aEJlaGF2aW9yIikp
OworICAgICAgICAvLyBJZiBzY3JvbGwgb3BlcmF0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCBpbiBw
YXJhbGxlbCwgc2Nyb2xsIGJveGVzIHdpdGggaW5zdGFudCBiZWhhdmlvciBtaWdodCBhbHNvIG5l
ZWQgdG8gd2FpdCBmb3IgdGhlaXIgcHJlZGVjZXNzb3JzLgorICAgICAgICBpZiAoaXNTbW9vdGgu
Z2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsVG9w
LmdldChzY3JvbGxhYmxlRGl2KSwgNTAwLCAiRWxlbWVudCB3aXRoIHNtb290aCBiZWhhdmlvciBz
aG91bGQgbm90IHNjcm9sbCBpbW1lZGlhdGVseSIpOworICAgICAgfSk7CisKKyAgICAgIG9ic2Vy
dmVTY3JvbGxpbmcoQXJyYXkuZnJvbShkaXZzKSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0
cnkgeworICAgICAgICAgIGRpdnMuZm9yRWFjaCgoc2Nyb2xsYWJsZURpdikgPT4geworICAgICAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChzY3JvbGxUb3AuZ2V0KHNjcm9sbGFibGVEaXYp
LCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgIlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7
CisgICAgICAgICAgICBpZiAoIWlzU21vb3RoLmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAg
ICAgICAgYXNzZXJ0X2FueShhc3NlcnRfZXF1YWxzLCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwg
WzAsIDUwMF0sICJFbGVtZW50IHdpdGggaW5zdGFudCBiZWhhdmlvciBzaG91bGQganVtcCB0byB0
aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCA1MDAsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgICAgIHNjcm9sbFRvcC5zZXQoc2Nyb2xsYWJsZURp
diwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3ApOworICAgICAgICAgIH0pOworICAgICAgICB9IGNh
dGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRv
bmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH0sICJzY3Jv
bGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVo
YXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0
aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u
ODU1YTZhNjEwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyMCBAQAorCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290
aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0
byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVu
IHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWlu
ZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xs
VG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BB
U1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9t
ICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAw
KSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25z
IHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBz
Y3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3Ro
IHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAg
CitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcg
ZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBT
Y3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAs
IDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0
aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1
MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAw
LCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdo
ZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xs
aW5nIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xs
aW5nIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgt
cG9zaXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMGE0
MWI4YjA4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCkBAIC0wLDAgKzEsMTUxIEBA
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZs
b3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbCBwb3Np
dGlvbnMgd2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRoIHNtb290aCBiZWhhdmlvcjwvdGl0
bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5j
b20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
b20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAg
d2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBz
bW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJv
dmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDIw
MDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcs
IHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsg
d2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50VG9S
ZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVw
eDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+
CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICAvLyBGb3Igc21vb3RoIGJlaGF2aW9yLCBl
dm9sdXRpb24gb2Ygc2Nyb2xsIHBvc2l0aW9ucyBvdmVyIHRpbWUgaXMgbm90IHNwZWNpZmllZCBi
eSBDU1NPTSBWaWV3LgorICAvLyBUaGlzIHRlc3QgcmVsaWVzIG9uIHRoZSBtaW5pbWFsIGFzc3Vt
cHRpb24gdGhhdCBzY3JvbGwgcG9zaXRpb24gZnVuY3Rpb25zIGFyZSBtb25vdG9uaWMuCisgIFsi
c2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFj
aChmdW5jdGlvbihzY3JvbGxGdW5jdGlvbikgeworICAgIFt7bGVmdDowLCB0b3A6MH0sIHtsZWZ0
OjEwMDAsIHRvcDowfSwge2xlZnQ6MCwgdG9wOjUwMH0sIHtsZWZ0OjEwMDAsIHRvcDo1MDB9XS5m
b3JFYWNoKChpbml0aWFsKSA9PiB7CisgICAgICB2YXIgZmluYWxMZWZ0ID0gNTAwOworICAgICAg
dmFyIGZpbmFsVG9wID0gMjUwOworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAg
IHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCBpbml0aWFsLmxl
ZnQsIGluaXRpYWwudG9wKTsKKyAgICAgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxMZWZ0OworICAgICAgICAgIHZhciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9w
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgaW5pdGlhbC5sZWZ0LCAiU2Nyb2xs
TGVmdCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIpOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMob2xkVG9wLCBpbml0aWFsLnRvcCwgIlNjcm9sbFRvcCBzaG91bGQgYmUgYXQgaW5pdGlh
bCBwb3NpdGlvbiIpOworICAgICAgICAgIGlmIChzY3JvbGxGdW5jdGlvbiA9PT0gInNjcm9sbEJ5
IikKKyAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCBzY3JvbGxGdW5jdGlvbiwg
InNtb290aCIsIGZpbmFsTGVmdCAtIGluaXRpYWwubGVmdCwgZmluYWxUb3AgLSBpbml0aWFsLnRv
cCk7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUs
IHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZmluYWxMZWZ0LCBmaW5hbFRvcCk7CisgICAgICAg
ICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNj
cm9sbExlZnQ7CisgICAgICAgICAgICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xs
VG9wOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKE1hdGguaHlwb3QoZmlu
YWxMZWZ0IC0gbmV3TGVmdCwgZmluYWxUb3AgLSBuZXdUb3ApLCBNYXRoLmh5cG90KGZpbmFsTGVm
dCAtIG9sZExlZnQsIGZpbmFsVG9wIC0gb2xkVG9wKSwgIlNjcm9sbCBwb3NpdGlvbiBzaG91bGQg
bW92ZSB0b3dhcmRzIHRoZSBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICBpZiAoZG9u
ZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgZmluYWxMZWZ0LCAi
U2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgZmluYWxUb3AsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNo
IGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgb2xkTGVm
dCA9IG5ld0xlZnQ7CisgICAgICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgICAg
IH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICByZWplY3QoZSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9y
bWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKCR7aW5pdGlhbC5sZWZ0fSwgJHtpbml0aWFsLnRv
cH0pIHRvICgke2ZpbmFsTGVmdH0sICR7ZmluYWxUb3B9KSB1c2luZyAke3Njcm9sbEZ1bmN0aW9u
fSgpIGApOworICAgIH0pOworICB9KTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJl
dHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHJlc2V0
U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSBm
YWxzZTsKKyAgICAgIHZhciBzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CisgICAgICB2
YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9
IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDAp
OworICAgICAgYXNzZXJ0X2VxdWFscyhvbGRUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVy
Zmxvd05vZGUsICJzY3JvbGwiLCAic21vb3RoIiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVT
Y3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAg
ICB2YXIgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoaW5p
dGlhbFNjcm9sbEFib3J0ZWQpIHsKKyAgICAgICAgICAgIGlmIChzY3JvbGxEaXJlY3Rpb25DaGFu
Z2VkKSB7CisgICAgICAgICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkTGVmdCwg
bmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgZGVjcmVhc2luZyIpOworICAgICAgICAgICAgICBh
c3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBz
IGRlY3JlYXNpbmciKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICBzY3JvbGxE
aXJlY3Rpb25DaGFuZ2VkID0gbmV3TGVmdCA8PSBvbGRMZWZ0ICYmIG5ld1RvcCA8PSBvbGRUb3A7
CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVh
bChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAg
ICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxU
b3Aga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAg
JiYgbmV3VG9wID4gNTAwKSB7CisgICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwg
c2Nyb2xsLgorICAgICAgICAgICAgICAgIGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgi
LCA1MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3Jv
bGxMZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQg
cmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9w
LCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAg
ICAgfQorICAgICAgICAgIG9sZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5l
d1RvcDsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAg
ICB9CisgICAgICAgIGlmIChkb25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOwor
ICAgIH0pOworICB9LCAiU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNj
cm9sbGluZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgcmVzZXRTY3JvbGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFs
U2Nyb2xsQWJvcnRlZCA9IGZhbHNlOworICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUu
c2Nyb2xsTGVmdDsKKyAgICAgIHZhciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xk
VG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290
aCIsIDE1MDAsIDc1MCk7CisgICAgICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVu
Y3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3Zl
cmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9k
ZS5zY3JvbGxUb3A7CisgICAgICAgICAgaWYgKCFpbml0aWFsU2Nyb2xsQWJvcnRlZCkgeworICAg
ICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9sZExlZnQsIG5ld0xlZnQsICJTY3Jv
bGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7Cisg
ICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAmJiBuZXdUb3AgPiA1MDApIHsKKyAgICAg
ICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBzY3JvbGwuCisgICAgICAgICAgICAgICAg
aW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIHNjcm9sbE5vZGUo
b3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCA1MDAsIDI1MCk7CisgICAgICAgICAg
ICAgICAgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAg
IG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3Np
dGlvbiIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3Jv
bGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgc3RheSBhdCBmaW5hbCBwb3NpdGlv
biIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9sbFRvcCBz
aG91bGQgc3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgIH0KKyAgICAgICAgICBv
bGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgIH0g
Y2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
ZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgIlNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbiBp
bnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJm
cmFtZS1yb290LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwLi4yNzk5ZmRjYzI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDM3IEBACisKK1BBU1MgaWZyYW1lIGxvYWRlZCAKK1BBU1MgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0
byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBT
dWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0
byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50
b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
CitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9W
aWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGgg
c2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdp
dGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTZkMTFhYjk2MgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFi
bGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgor
PHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xs
KiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgor
PG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZp
ZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4K
KzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0
MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxl
PgorICAgIGJvZHkgeworICAgICAgbWFyZ2luOiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9y
IHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2
aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4K
KyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7
IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAg
ICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdo
dDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3Bs
YXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVp
Z2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9i
b2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVz
dCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQs
IHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExl
ZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlmcmFtZU5vZGUu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVuY19kb25lKCgp
ID0+IHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudDsKKyAgICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50
RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9IGlmcmFtZU5v
ZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZlYWwiKTsKKwor
ICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0u
Zm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxp
bmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAg
fSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Ny
b2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwg
ImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9s
bEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAg
ICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBu
dWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4g
eworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAg
IH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNj
cm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVu
dCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
ICAgIH0pOworICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNj
cm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9s
bCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAw
LCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworICB9KSk7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wNWViMzI3MmY0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKKwor
UEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BB
U1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1l
IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdp
bmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMzMzNkNjRm
ODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCkBAIC0wLDAgKzEsMTcxIEBACis8IURP
Q1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3Jv
bGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1
ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1l
bnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8
L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2Fs
aWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3gi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48
L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9ImlmcmFtZU5vZGUi
IHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZUEU+Cis8aHRtbD4K
KyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2luOiAwOworICAgIH0KKyAgICAuYXV0
b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgICB9CisgICAgLnNt
b290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICAgIH0KKyAg
PC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIwMDBweDsgaGVpZ2h0
OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4p
Oyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAw
cHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRUb1JldmVhbCcgc3R5
bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDog
MTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bhbj4KKyAgICA8L2Rp
dj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+CisgIHZhciBpZnJh
bWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGlu
Z1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVudFRv
UmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgaWZy
YW1lTm9kZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9mdW5j
X2RvbmUoKCkgPT4geworICAgIHNjcm9sbGluZ1dpbmRvdyA9IGlmcmFtZU5vZGUuY29udGVudFdp
bmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xs
IiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93
KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxG
dW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93
KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVz
b2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxp
bmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24s
ICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
aW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNj
cm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93
KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChz
Y3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4g
eworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7
CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNj
cm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5k
b2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlv
cmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAi
c2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290
aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBv
ZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3Ai
KTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKwor
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3Jv
bGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNt
b290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAp
OworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgi
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xs
aW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAsICJGaW5hbCB2YWx1ZSBv
ZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3Ro
IHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7
CisKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA2
YzljYzI3YWQ3Li4yMmZjZjE0ZjhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0MSBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMg
b24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBXZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODgyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lk
w6lyaWMgV2FuZy4KKworICAgICAgICBFbmFibGUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZCBvbiBzY3JvbGwgYmVoYXZpb3IgdGVzdHMgYW5kIHVwZGF0ZSBleHBlY3RhdGlvbnMuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1l
bGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9v
dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3Jv
bGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVk
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDoKKworMjAxOS0xMi0xMCAgQ2F0aGll
IENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmlj
IFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4K
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pbmhlcml0YW5j
ZS1leHBlY3RlZC50eHQ6CisKIDIwMTktMTItMTMgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIEltcGxlbWVudCBPZmZzY3JlZW5DYW52YXMuY29udmVydFRvQmxvYgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4
cGVjdGVkLnR4dAppbmRleCAzYWMwYTM3Y2ZmLi44NzVhNzI3Yzk1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2lu
aGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDQgQEAKIAotRkFJTCBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgaGFzIGluaXRp
YWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogc2Nyb2xsLWJlaGF2aW9yIGRvZXNuJ3Qgc2VlbSB0
byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBkb2VzIG5vdCBpbmhlcml0IGFzc2Vy
dF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQcm9wZXJ0eSBzY3JvbGwtYmVo
YXZpb3IgaGFzIGluaXRpYWwgdmFsdWUgYXV0byAKK1BBU1MgUHJvcGVydHkgc2Nyb2xsLWJlaGF2
aW9yIGRvZXMgbm90IGluaGVyaXQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRl
ZmF1bHQtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4
cGVjdGVkLnR4dAppbmRleCA5MDY4Yjc5NzU1Li44ZDRjYTY0MTU1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVo
YXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNTIElu
c3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlv
ciAKLUZBSUwgU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3Jv
bGwtYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQ
QVNTIFNtb290aCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJl
aGF2aW9yIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbAppbmRleCA2OTI1Y2YwOTJjLi5m
ZTQ3NWIwMzlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKQEAgLTEsNCArMSw0IEBA
Ci08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0t
PgogPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxl
PgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmll
dy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKaW5kZXggMmI5MTI5YzFjZi4u
NTNhOTYxZWY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTIs
MzUgKzIsMzUgQEAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3Qg
NTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlv
ciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVs
ZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8g
YmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50IHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFz
c2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVt
ZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZB
SUwgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdv
dCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhh
biA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNT
IEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1lbGVtZW50Lmh0bWwKaW5kZXggM2NiZDcyMmY3Mi4uNmMxNTkyOWM5ZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LWVsZW1lbnQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBF
IGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRp
b25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24g
YW4gZWxlbWVudDwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+
CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRv
OmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9v
dC1leHBlY3RlZC50eHQKaW5kZXggZDkyMjI1OGFmMi4uOTdjYWVhMjdiYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmll
dy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0zLDM1ICszLDM1
IEBAIFBBU1MgUGFnZSBsb2FkZWQKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjog
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xl
c3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBi
ZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJ
TCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQz
MCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMw
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBi
ZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFz
c2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRo
ZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9ydGlu
ZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBp
bnN0YW50IHNjcm9sbGluZyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApp
bmRleCBmY2Y3NWFhMWRkLi42ZDliMjI0MmVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1tYWluLWZyYW1lLXJvb3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1l
LXJvb3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25z
JyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhl
IHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmci
IGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBjNmJlOTY2NjFjLi4zODIzODVh
YWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0
ZWQudHh0CkBAIC0zLDI3ICszLDI3IEBAIFBBU1MgUGFnZSBsb2FkZWQKIFBBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290
IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
NDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xl
c3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuIDI0MzAgYnV0IGdvdCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNt
b290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQz
MAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAg
YnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdv
dCAyNDMwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBz
bW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Ny
b2xsaW5nIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhl
IG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtd2luZG93Lmh0bWwKaW5kZXggOGM4OGVjNjg2MS4uYmYzODczMDQyNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAot
PCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4K
IDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9s
bCogb24gdGhlIHdpbmRvdyBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLG1pbmltdW0tc2NhbGU9MSxpbml0aWFsLXNjYWxlPTEiPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50
eHQKaW5kZXggN2NlMTBjMDg5Ni4uNDQzYTgyMGU1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBA
QAogCi1GQUlMIHNjcm9sbEludG9WaWV3IHdpdGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVy
ZW50IHNjcm9sbC1iZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBFbGVtZW50IHdpdGggc21vb3Ro
IGJlaGF2aW9yIHNob3VsZCBub3Qgc2Nyb2xsIGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1Mgc2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0
ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJlaGF2aW9yIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCmluZGV4IDNhODkwNjUzMmIuLjNm
M2Q5YjcyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2
aW9yIHdpdGggc2Nyb2xsSW50b1ZpZXcgZm9yIG5lc3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxl
PgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAppbmRleCAwMDVkMmI2MDRk
Li5lYWEwZmZmMDE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3Jv
bGxpbmcgYW4gZWxlbWVudCB3aXRoIHNtb290aCBiZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dAppbmRleCBiNmZhMWMyZWM4Li4y
Nzk5ZmRjYzI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVk
LnR4dApAQCAtMywzNSArMywzNSBAQCBQQVNTIGlmcmFtZSBsb2FkZWQKIFBBU1MgU3ViZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2Vy
dF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0
ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3Vi
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
CiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggYXV0byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1
YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRv
IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFT
UyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAog
UEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgU3Vi
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKLUZBSUwgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhh
dmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAogUEFTUyBBYm9y
dGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGlu
c3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFt
ZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKaW5kZXgg
ZTY0MWU1M2UzMy4uZThjY2I2NmJlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtcm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlv
ciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2Yg
YSBzdWJmcmFtZTwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+
CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRv
OmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRv
dy1leHBlY3RlZC50eHQKaW5kZXggY2M2NjVlYmRiOC4uMDVlYjMyNzJmNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmll
dy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0zLDI3ICszLDI3
IEBAIFBBU1MgaWZyYW1lIGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlv
ciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xl
c3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2Vy
dF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0
ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQ
QVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1
MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0
X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGlu
ZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCmluZGV4IGQ5MzFlMDAzZDQuLjkyNjg0
ZDY3NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUg
XSAtLT4KIDx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50
LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90
aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlh
LmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggNjRjYTc4ZjIxYi4uNmFjOTY3MjVhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzQ4LDYgKzc0OCwxNSBAQCB3ZWJraXQub3Jn
L2IvMTg5NTk0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmltYXRp
b25zL3BlbmRpbmctcwogCiB3ZWJraXQub3JnL2IvMTg4MDcwIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZXJyb3ItcHJvcGFnYXRpb24tYmFja3dhcmQuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCiAKKyMgVGVzdHMgZm9yIHNtb290aCBzY3JvbGwgYmVoYXZpb3Ig
ZG8gbm90IGFsbCB3b3JrIGFuZCB0aGV5IGFyZSBzbG93LCBzbyBsZXQncyBqdXN0IHNraXAgdGhl
bS4KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbCBbIFNr
aXAgXQord2Via2l0Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8xOTEzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwgWyBTa2lw
IF0KKworIyBUaGlzIGlzIGZhaWxpbmcgb24gbWFjLXdrMSwgdHJ5IHRvIGZpZ3VyZSBpdCBvdXQg
aW4gdGhlIGZvbGxvdy11cCBidWcuCit3ZWJraXQub3JnL2IvMTkxMzU3IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UuaHRtbCBbIFNraXAg
XQorCiB3ZWJraXQub3JnL2IvMTg5OTA4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2UtdGltaW5nL3Jlc291cmNlX3RpbWluZy53b3JrZXIuaHRtbCBbIEZhaWx1cmUgXQog
CiB3ZWJraXQub3JnL2IvMTg5NzU2IFsgTW9qYXZlKyBdIGNvbXBvc2l0aW5nL2ZpbHRlcnMvb3Bh
Y2l0eS1jaGFuZ2Utb24tZmlsdGVyZWQtcGFpbnRzLWludG8tYW5jZXN0b3IuaHRtbCBbIFBhc3Mg
SW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGM3NDNlNGQzMDkuLjc1
MDlmZDc2ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC05NjUsOCArOTY1LDEwIEBAIHNldChX
ZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgcGFnZS9SZXNpemVPYnNlcnZlckNhbGxiYWNr
LmlkbAogICAgIHBhZ2UvUmVzaXplT2JzZXJ2ZXJFbnRyeS5pZGwKICAgICBwYWdlL1NjcmVlbi5p
ZGwKKyAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmlkbAogICAgIHBhZ2UvU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbAogICAgIHBhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbAorICAgIHBhZ2Uv
U2Nyb2xsT3B0aW9ucy5pZGwKICAgICBwYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwKICAgICBwYWdl
L1NoYXJlRGF0YS5pZGwKICAgICBwYWdlL1VuZG9JdGVtLmlkbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ5ZmQ4
Y2I1NWYuLmUyNzk4YjY2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNDAgQEAKKzIwMTktMTIt
MTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJm
YWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggc3VwcG9ydCBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1Mg
cGxhdGZvcm0uIEl0IHJlbGllcyBvbiBVSVNjcm9sbFZpZXcncworICAgICAgICBuYXRpdmUgc2Ny
b2xsIGFuaW1hdGlvbiBzdXBwb3J0IGFuZCBpcyBleGVjdXRlZCBpbiB0aGUgVUkgcHJvY2Vzcy4K
KworICAgICAgICBUZXN0czogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92
aWV3LW5lc3RlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0
bWwKKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVzdHMgYSBuYXRpdmUg
c2Nyb2xsIGFuaW1hdGlvbiBieSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RTY3JvbGxQb3NpdGlv
blVwZGF0ZSgpLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0
aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTogVXBk
YXRlIHRoZSBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cyBmcm9tIHRoZSBVSSBwcm9jZXNzLgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGUpOiBBZGQgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRp
b24gdG8gaW5kaWNhdGUgaXQncyBhbmltYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3Bl
cnRpZXMgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIGNvbnN0KTog
RGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBVcGRhdGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3Rh
dHVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVS
ZXF1ZXN0c1Njcm9sbCk6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmlt
YXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4pOiBBZGQgYSBmbGFnIHRvIGluZGlj
YXRlIHRoZSBzY3JvbGwgaXMgYW5pbWF0ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKTogSWYgbmVlZFN5bmNTY3JvbGxQb3Np
dGlvbiBpcyB0cnVlLCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNz
LCBldmVuIGlmIHRoZSBzY3JvbGwgcG9zaXRpb24gZG9lc24ndCBjaGFuZ2UuCisgICAgICAgIE1h
aW50YWluIHRoZSBzdGF0dXMgb2YgbV9zdG9wU2Nyb2xsQW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RB
bmltYXRlZFNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0
IGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGltbWVkaWF0ZWx5LCBzbyBkb24ndCBub3RpZnkg
dGhlIHNjcm9sbGluZyBpbmZvIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwpOiBtX3JlcXVlc3RBbmltYXRl
ZFNjcm9sbCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0
LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RB
bmltYXRlZFNjcm9sbCBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOiBNYWludGFp
biB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5l
ZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24pOiBJZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5n
IGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHByZXZpb3VzIHNjcm9sbCBhbmltYXRpb24gc2hvdWxk
IHN0b3AgZmlyc3QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yVHlwZSB0byBpbmRp
Y2F0ZSBpdCdzIGluc3RhbnQgb3Igc21vb3RoIHNjcm9sbC4KKyAgICAgICAgQWRkIFNjcm9sbEJl
aGF2aW9yU3RhdHVzIHRvIGluZGljYXRlIHRoZSBzdGF0dXMgb2Ygc2Nyb2xsaW5nLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmll
dzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBVcGRhdGUgU2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSk6IEFkZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5
cGUuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGFibGVBcmVhOjpjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlIGNvbnN0KTogTWFp
bnRhaW4gY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGFibGVBcmVhOjpzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNj
cm9sbFRvT2Zmc2V0KTogU2VuZCBhIHF1ZXN0IG9mIG5hdGl2ZSBzY3JvbGwuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKTogUmVxdWVz
dHMgYSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBieSBjYWxsaW5nIGFuaW1hdGVkIHJlcXVlc3RT
Y3JvbGxQb3NpdGlvblVwZGF0ZSgpLgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhp
ZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2
aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4ODIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0
Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBh
IHByb2dyYW1tYXRpYyBzbW9vdGggc2Nyb2xsaW5nIGluIFdlYktpdCBmcm9tIHRoZSBDU1NPTSBW
aWV3CisgICAgICAgIHNwZWNpZmljYXRpb24gWzFdLiBUbyB1c2UgdGhpcyBlZmZlY3QsIHdlYiBk
ZXZlbG9wZXJzIGNhbiBwYXNzIGEgYmVoYXZpb3IgcGFyYW1ldGVyIChhdXRvLAorICAgICAgICBz
bW9vdGgsIG9yIGluc3RhbnQpIHRvIEVsZW1lbnQuc2Nyb2xsLCBFbGVtZW50LnNjcm9sbFRvLCBF
bGVtZW50LnNjcm9sbEJ5LAorICAgICAgICBFbGVtZW50LnNjcm9sbEludG9WaWV3LCBXaW5kb3cu
c2Nyb2xsLCBXaW5kb3cuc2Nyb2xsVG8gb3IgV2luZG93LnNjcm9sbEJ5IFsyXS4gV2hlbiBiZWhh
dmlvcgorICAgICAgICBpcyBhdXRvLCB0aGUgaW5zdGFudC9zbW9vdGggY2hhcmFjdGVyaXN0aWMg
aXMgYWN0dWFsbHkgdGFrZW4gZnJvbSB0aGUgdmFsdWUgb2YgYSBuZXcgQ1NTCisgICAgICAgIHNj
cm9sbC1iZWhhdmlvciBwcm9wZXJ0eSBbM10uIEJvdGggdGhlIG5ldyBDU1MgYW5kIERPTSBiZWhh
dmlvciBhcmUgcHJvdGVjdGVkIGJ5IGEgcnVudGltZQorICAgICAgICBmbGFnLgorCisgICAgICAg
IFsxXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldworICAgICAgICBbMl0gaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI2RpY3RkZWYtc2Nyb2xsb3B0aW9ucwor
ICAgICAgICBbM10gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYt
c2Nyb2xsLWJlaGF2aW9yCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwK
KyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
bWFpbi1mcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2lu
ZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1s
CisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKyAgICAgICAgICAg
ICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtd2luZG93Lmh0bWwKKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQnVpbGQgU2Nyb2xsQW5pbWF0
aW9uU21vb3RoLmNwcCBvbiBhbGwgcGxhdGZvcm1zLgorICAgICAgICAqIFNvdXJjZXNHVEsudHh0
OiBSZW1vdmUgU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCBzaW5jZSBpdCBpcyBidWlsdCBvbiBh
bGwgcGxhdGZvcm1zIG5vdy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlldyk6IFBhc3Mgc2Nyb2xsIGJlaGF2aW9yLCBp
ZiBhbnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxCeSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxUbyk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHNjcm9sbCBi
ZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRTY3JvbGxM
ZWZ0KTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNjcm9sbFRvcCk6IEhhbmRsZSB0aGUgY2FzZSB3
aGVuIHNjcm9sbCBiZWhhdmlvciBpcyBzbW9vdGguCisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzY3JvbGxCeSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9sbFRvIGNvbnN0KTogSGFuZGxlIHRoZSBjYXNl
IHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgVGhlIG9wdGltaXphdGlv
biBvZiBjYW5jZWwgKDAsIDApIHNjcm9sbGluZyBpcyBza2lwcGVkIGlmIGFuIGFuaW1hdGVkIHNj
cm9sbCBpcyBpbiBwcm9ncmVzcy4KKyAgICAgICAgT3RoZXJ3aXNlLCB0aGUgcHJldmlvdXMgc2Ny
b2xsIHdvbid0IGJlIHN0b3BwZWQgYnkgYSBmb2xsb3ctdXAgc2Nyb2xsLgorICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xs
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24pOiBTdGFydCBhbiBhbmltYXRlZCBzY3JvbGwuCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb246OnNjcm9sbCk6
IEZ1bmN0aW9uIHRvIGFuaW1hdGUgc2Nyb2xsaW5nIHRvIGEgc3BlY2lmaWVkIHBvc2l0aW9uLgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHA6IEJ1aWxkIHRoaXMg
ZmlsZSBvbiBhbGwgcGxhdGZvcm1zLiBBZGQgYQorICAgICAgICBzbW9vdGhGYWN0b3JGb3JQcm9n
cmFtbWF0aWNTY3JvbGwgcGFyYW1ldGVyIHRvIHNsb3cgZG93biB0aGUgc21vb3RoIHNjcm9sbGlu
Zy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvblNtb290aDo6c2Nyb2xsKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEp
OiBTY2FsZSB0aGUgdGltZSBwYXJhbWV0ZXJzIG9mIHRoZQorICAgICAgICBhbmltYXRpb24gc28g
dGhhdCBpdCBsb29rcyBzbW9vdGhlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b25TbW9vdGguaDogRGVjbGFyZSB0aGUgY2xhc3Mgb24gYWxsIHBsYXRmb3Jtcy4KKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IpOiBJbml0aWFsaXplIGFuaW1hdGlvbiBtZW1iZXIgZm9y
IHByb2dyYW1tYXRpYyBzY3JvbGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
cjo6c2Nyb2xsVG9PZmZzZXQpOiBBbmltYXRlIHNjcm9sbGluZyB0byB0aGUgc3BlY2lmaWVkIHBv
c2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlv
bnMpOiBDb3B5IGxvZ2ljIGZyb20gU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OndpbGxFbmRMaXZlUmVzaXplKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6ZGlkQWRkVmVydGljYWxT
Y3JvbGxiYXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpkaWRB
ZGRIb3Jpem9udGFsU2Nyb2xsYmFyKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3IuaDogTmV3IGFuaW1hdGlvbiBtZW1iZXIgZm9yIHNtb290aCBwcm9ncmFtbWF0aWMg
c2Nyb2xsaW5nLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1h
dG9yOjpjYW5jZWxBbmltYXRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6c2VydmljZVNjcm9sbEFuaW1hdGlvbnMpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjp3
aWxsRW5kTGl2ZVJlc2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvcjo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6ZGlkQWRk
SG9yaXpvbnRhbFNjcm9sbGJhcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
VHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGluZGljYXRlIHRoZSBzdGF0dXMg
b2Ygc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBGb2xsb3cgdGhlIENT
U09NIFZpZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGlu
dGVycnVwdCBpdCBhbmQgY29udGludWUgdGhlIHNjcm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJl
IGF0IHRoZSBmaW5hbCBwb3NpdGlvbikuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5o
OgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21JbnRlcm5hbHMp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21B
bmltYXRpb24pOiBUbyBhdm9pZCBpdGVyYXRlIGNhbGxpbmcsCisgICAgICAgIG1vdmUgdGhlIHJl
cXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShwb3NpdGlvbikgY2hlY2tpbmcgb3V0IG9mIHNldFNj
cm9sbE9mZnNldEZyb21BbmltYXRpb24oKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1cyBjb25zdCk6IE1haW50YWluIGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1
cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxCZWhhdmlvclN0
YXR1cyk6CisgICAgICAgICogcGxhdGZvcm0vZ2VuZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JHZW5lcmljOjp1cGRhdGVQb3Np
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmNhbmNlbEFuaW1hdGlvbnMpOiBDYWxs
IHBhcmVudCBtZW1iZXIgdG8gaGFuZGxlIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OnNldFNjcm9sbExlZnQpOiBBZGQgZmxhZyB0byBpbmRpY2F0ZSBhbmltYXRlZCBvciBub3QuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFNjcm9sbFRvcCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRTY3JvbGxQb3NpdGlvbik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9YUG9zaXRpb24pOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbik6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvUG9zaXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogRm9sbG93IHRo
ZSBDU1NPTSBWaWV3IHNwZWM6IElmIGEgc2Nyb2xsIGlzIGluCisgICAgICAgIHByb2dyZXNzLCB3
ZSBpbnRlcnJ1cHQgaXQgYW5kIGNvbnRpbnVlIHRoZSBzY3JvbGwgY2FsbCAoZXZlbiB3aGVuIHdl
IGFyZSBhdCB0aGUgZmluYWwKKyAgICAgICAgcG9zaXRpb24pLiBJdCdzIFNjcm9sbEJlaGF2aW9y
VHlwZTo6SW5zdGFudCBzY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOiBEaXR0by4gVGhpcyBpcyBzaW1pbGFyIHRv
IHNjcm9sbFRvT2Zmc2V0CisgICAgICAgIGJ1dCBhbmltYXRlcyB0aGUgc2Nyb2xsLiBJdCdzIFNj
cm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoIHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xs
UmVjdFRvVmlzaWJsZSk6IEFnYWluIGRvbid0IGRvIGFuIGVhcmx5IHJldHVybiBpZiBzY3JvbGwg
aXMgaW4KKyAgICAgICAgcHJvZ3Jlc3MuIFdlIGNhbGwgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0
aW9uIGluc3RlYWQgb2Ygc2Nyb2xsVG9PZmZzZXQgd2hlbiBhcHByb3ByaWF0ZS4KKyAgICAgICAg
Tm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gbWF5IG5vdCB3b3JrIHdlbGwgZm9yIHNldmVyYWwgbmVz
dGVkIHNjcm9sbCBib3hlcyB3aXRoIGF0IGxlYXN0IG9uZQorICAgICAgICBlbGVtZW50IHdpdGgg
c21vb3RoIGJlaGF2aW9yLiBJdCB3aWxsIGhhbmRsZWQgaW4gYnVnIEZvbGxvdy4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDogQWRkIHNjcm9sbCBiZWhhdmlvciB0byBTY3JvbGxU
ZWN0VG9WaXNpYmxlT3B0aW9ucy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KTogQWRk
IGFuaW1hdGVkIGZsYWcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3Jv
bGxUb3ApOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xs
VG9wKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjp1bmNvbnN0cmFpbmVkU2Nyb2xsVG8pOgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hl
biAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Ny
b2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2Fu
Zy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nIHNjcm9sbC1iZWhhdmlvciBjc3MgcHJvcGVy
dHkgYW5kIFNjcm9sbE9wdGlvbnMuCisKKyAgICAgICAgVGVzdHM6IExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UuaHRt
bAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZCBJREwgZmlsZXMgZm9yIFNjcm9sbE9w
dGlvbnMgYW5kIFNjcm9sbEJlaGF2aW9yLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CisgICAgICAgICogSGVhZGVycy5jbWFrZTogQWRkIGhlYWRlcnMgZm9yIFNjcm9sbEJlaGF2b3Ig
YW5kIFNjcm9sbE9wdGlvbnMuCisgICAgICAgICogU291cmNlcy50eHQ6IEFkZCBTY3JvbGxCZWhh
dm9yIGFuZCBTY3JvbGxPcHRpb25zIGltcGxlbWVudGF0aW9uLgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIGZpbGVzIHRvIHRoZSBidWlsZCBzeXN0ZW0u
CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6IEhhbmRsZSBz
Y3JvbGwtYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9y
Ojp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMu
anNvbjogQWRkIHNjcm9sbC1iZWhhdmlvci4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbjogQWRkIGtleXdvcmRzIGZvciBzY3JvbGwtYmVoYXZpb3IuCisgICAgICAgICogY3NzL3Bh
cnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcDogQWRkIHJ1bnRpbWUgY29uZmlnIGZvciBzY3JvbGwt
YmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJD
b250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIGNzcy9w
YXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlckNvbnRleHRIYXNoOjpoYXNoKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZh
c3RQYXRocy5jcHA6IFJlbW92ZSBzY3JvbGwtYmVoYXZpb3IgdGVtcGxhdGVzLiBJdCBpcyBoYW5k
bGVkIGluIHRoZSBzbG93IHBhdGggc2luY2UgcHJvcGVydHkgY2FuIGJlIGRpc2FibGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBhdGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5
QW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdv
cmRQcm9wZXJ0eUlEKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN1bWVTY3JvbGxCZWhhdmlvcik6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZSk6IFBhcnNlIHNjcm9s
bC1iZWhhdmlvciAob25seSBpZiBlbmFibGVkKS4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2
aW9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp1c2VTbW9vdGhTY3JvbGxpbmcpOiBI
ZWxwZXIgZnVuY2l0b24gdG8gZGV0ZXJtaW5lIHRoZSBzY3JvbGwgYmVoYXZpb3IgdG8gYXBwbHkg
dG8gYW4gZWxlbWVudCBmcm9tIHRoZSBDU1MgYW5kIERPTSBiZWhhdmlvci4KKyAgICAgICAgKiBw
YWdlL1Njcm9sbEJlaGF2aW9yLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZp
b3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOiBN
YWtlIHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb24uIEFsc28gcmVtb3ZlIHVu
bmVjZXNzYXJ5IGZvcndhcmQgZGVjbGFyYXRpb24uCisgICAgICAgICogcGFnZS9TY3JvbGxJbnRv
Vmlld09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRp
b24uCisgICAgICAgICogcGFnZS9TY3JvbGxPcHRpb25zLmg6IEFkZGVkLgorICAgICAgICAqIHBh
Z2UvU2Nyb2xsT3B0aW9ucy5pZGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRp
b25zLmg6IE1ha2UgdGhpcyBzdHJ1Y3QgaW5oZXJpdHMgZnJvbSBTY3JvbGxPcHRpb25zLgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsVG9PcHRpb25zOjpTY3JvbGxUb09wdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6bm9ybWFsaXplTm9uRmluaXRlQ29vcmRpbmF0ZXNPckZhbGxCYWNrVG8pOiBD
b3B5IHRoZSBjdXJyZW50IFNjcm9sbFRvT3B0aW9ucyBzbyB0aGF0IHRoZSBzY3JvbGwgYmVoYXZp
b3IgaXMgcHJlc2VydmVkLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbDogTWFr
ZSB0aGlzIGNsYXNzIGluaGVyaXQgZnJvbSBTY3JvbGxPcHRpb25zLgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MueWFtbDogTmV3IHNldHRpbmcgZm9yIENTU09NIFZpZXcgc21vb3RoIHNjcm9sbGlu
Zy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDogSGFuZGxlICdzbW9v
dGggc2Nyb2xsaW5nJyBib29sZWFuIGRhdGEuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6dXNlU21vb3RoU2Nyb2xsaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpzZXRVc2VTbW9vdGhTY3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5
bGU6OmluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoK
KyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U21vb3RoU2Nyb2xsaW5nKToKKwog
MjAxOS0xMi0xMyAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgRml4ZWQgY29tcGlsZSBlcnJvciBpbiBCYXNlQXVkaW9TaGFyZWRVbml0LmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDhjOWM2MmU5YzQuLmZjNTlmZjc2NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTE2LDggKzkxNiwxMCBAQCBKU19CSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsIFwK
ICAgICAkKFdlYkNvcmUpL3BhZ2UvUmVzaXplT2JzZXJ2ZXJFbnRyeS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvcGFnZS9TY3JlZW4uaWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsQmVoYXZp
b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgXAorICAgICQo
V2ViQ29yZSkvcGFnZS9TY3JvbGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Nj
cm9sbFRvT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TaGFyZURhdGEuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL3BhZ2UvVW5kb0l0ZW0uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4
IDhiODQ3ZTJhMTUuLjgzYmY3MmQ0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtODE3LDggKzgx
NywxMCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9S
ZW1vdGVGcmFtZS5oCiAgICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAogICAgIHBh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisgICAgcGFnZS9TY3JvbGxCZWhhdmlvci5oCiAg
ICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaAogICAgIHBhZ2UvU2Nyb2xsTG9naWNhbFBv
c2l0aW9uLmgKKyAgICBwYWdlL1Njcm9sbE9wdGlvbnMuaAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRp
b25zLmgKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luLmgKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2lu
RGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGJmN2MzNGVhN2EuLmM4YTNjNzQ0YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0xNjUwLDYgKzE2NTAsNyBAQCBwYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNw
cAogcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmNwcAogcGFnZS9TY3JlZW4uY3BwCitwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcAogcGFnZS9T
ZWN1cml0eU9yaWdpbi5jcHAKIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAogcGFnZS9TZWN1
cml0eVBvbGljeS5jcHAKQEAgLTE3NTUsNiArMTc1Niw3IEBAIHBsYXRmb3JtL1JlbW90ZUNvbW1h
bmRMaXN0ZW5lci5jcHAKIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKIHBs
YXRmb3JtL1NTTEtleUdlbmVyYXRvci5jcHAKIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAor
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0vU2Nyb2xsVmlldy5j
cHAKIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApA
QCAtMzM4MSw4ICszMzgzLDEwIEBAIEpTU1ZHWm9vbUFuZFBhbi5jcHAKIEpTU1ZHWm9vbUV2ZW50
LmNwcAogSlNTY3JlZW4uY3BwCiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCitKU1Njcm9sbEJl
aGF2aW9yLmNwcAogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwCiBKU1Njcm9sbExvZ2ljYWxQ
b3NpdGlvbi5jcHAKK0pTU2Nyb2xsT3B0aW9ucy5jcHAKIEpTU2Nyb2xsVG9PcHRpb25zLmNwcAog
SlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNwcAogSlNTZXJ2aWNlV29ya2VyLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzR1RLLnR4dAppbmRleCBjMmMyNzA5Yjg3Li41NGI1MzZlZDljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzR1RLLnR4dApAQCAtNjMsNyArNjMsNiBAQCBwYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9s
bGluZ1RyZWVTdGlja3lOb2RlLmNwcAogcGFnZS9zY3JvbGxpbmcvZ2VuZXJpYy9TY3JvbGxpbmdU
aHJlYWRHZW5lcmljLmNwcAogCiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25LaW5ldGljLmNwcAot
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0vVXNlckFnZW50UXVp
cmtzLmNwcAogCiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA4NDcyNDUxYjA4Li5kODU4ODA0ZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzk5LDYgKzIzOTksOCBAQAogCQk4MzQw
N0ZDMTFFOEQ5QzE3MDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0MDdGQzAxRThEOUMxMjAw
RTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQjAgLyog
SlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExvZ2lj
YWxQb3NpdGlvbi5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQzEgLyogSlNTY3Jv
bGxJbnRvVmlld09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0
aW9ucy5oICovOyB9OworCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyogSlNTY3JvbGxCZWhh
dmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNF
OUIzMDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLzsgfTsKKwkJODM0
NDc2RUYxREE1QkM1RTAwMkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1QTUxRTAwRkZFOEU1
IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFRDIg
LyogSlNTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9u
cy5oICovOyB9OwogCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQ4QkZB
QTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggKi87IH07CiAJCTgzNERGQUQw
MUY3REFFNUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRERkFDQzFGN0RBRTU2MDBDMjcyNUIgLyog
U2hhcmVkU3RyaW5nSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0yNDUzLDYgKzI0NTUsOCBAQAogCQk4M0M0NUI4RTFEQzJCNjhBMDA4ODcx
QkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJi
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
M0M1Nzk1RDFEQTVDMzAxMDA2RjlDODYgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFEQTU5QjYy
MDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMwMTAwNkY5Qzk3IC8q
IFNjcm9sbEludG9WaWV3T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3
T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAw
MzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9w
dGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
NTBDM0U3MURBNTlCNjIwMDM1NjQzNSAvKiBTY3JvbGxPcHRpb25zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMwMTAwNkZB
Q0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9u
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgz
RDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4
N0VEMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0Qz
NUFGMjFDNzE4RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4
RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CkBAIC0x
MDE3Niw5ICsxMDE4MCwxNCBAQAogCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcyNUIgLyogU2hhcmVk
U3RyaW5nSGFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFy
ZWRTdHJpbmdIYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1MEMzRTcx
REE1OUI2MjAwMzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9W
aWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxJbnRv
Vmlld09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1
OUI2MjAwMzU2NDI0IC8qIFNjcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTgzNTBDM0U3MURBNTlCNjIwMDM1NjQzNCAvKiBTY3JvbGxCZWhhdmlvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlv
bnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsT3B0aW9ucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyog
U2Nyb2xsVG9PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5
QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25z
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MjQgLyog
U2Nyb2xsQmVoYXZpb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9y
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTgxREE1OUI2MjAwMzU2
NDM1IC8qIFNjcm9sbE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbE9w
dGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
Y3JvbGxUb09wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUyMEM3
RDFBNzFCRkNDMDA2QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDU1NGb250RmFtaWx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzNTY1N0M2MUVDQUIwRTgwMENERTcyRCAvKiBKU0RPTU1hdHJpeEluaXQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXRyaXhJbml0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMzAwLDkgKzEwMzA5LDEzIEBACiAJCTgzRTk1
OUUxMUI4QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBv
c2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xs
TG9naWNhbFBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIz
MDAxREE1QTUxRTAwRkZEOEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEQ0
IC8qIEpTU2Nyb2xsQmVoYXZpb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNTY3JvbGxCZWhhdmlvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTgzRTlCMzAwMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxPcHRpb25zLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Ny
b2xsVG9PcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
U2Nyb2xsVG9PcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIz
MDExREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Nj
cm9sbEludG9WaWV3T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1Njcm9sbEludG9WaWV3T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
M0U5QjMwMTFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlv
bnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JvbGxPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAv
KiBKU1Njcm9sbFRvT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1Njcm9sbFRvT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTk4
QjFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4M0VFNTk4QzFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDc4NiwxMCArMjA3OTksMTUgQEAKIAkJ
CQlCQ0VDMDFCQTBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmNwcCAqLywKIAkJCQlCQ0VDMDFC
QjBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmggKi8sCiAJCQkJQkNFQzAxQkMwQzI3NERBQzAw
OUY0RUM5IC8qIFNjcmVlbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM0IC8q
IFNjcm9sbEJlaGF2aW9yLmNwcCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyog
U2Nyb2xsQmVoYXZpb3IuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MjQgLyogU2Ny
b2xsQmVoYXZpb3IuaWRsICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NTQzNSAvKiBTY3Jv
bGxJbnRvVmlld09wdGlvbnMuaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyog
U2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCAqLywKIAkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTU0
MjQgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8sCiAJCQkJODM1MEMzRTgxREE1OUI2MjAw
MzU1NDI0IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1
OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYy
MDAzNTY0MzUgLyogU2Nyb2xsT3B0aW9ucy5pZGwgKi8sCiAJCQkJODM1MEMzRTcxREE1OUI2MjAw
MzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5oICovLAogCQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1
NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMuaWRsICovLAogCQkJCUJDRDBFMEY3MEU5NzJDMzUwMDI2
NURFQSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgKi8sCkBAIC0yNTU4MywxMCArMjU2MDEsMTQgQEAK
IAkJCQk1OEIyRkEwMjIyMzJENjBBMDA5MzhENjMgLyogSlNSZXNpemVPYnNlcnZlckVudHJ5Lmgg
Ki8sCiAJCQkJQkNFQzAxQzAwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmNwcCAqLywKIAkJ
CQlCQ0VDMDFDMTBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCAqLywKKwkJCQk4M0U5QjMw
MDFEQTVBNTFFMDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAgKi8sCisJCQkJODNFOUIz
MDExREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLywKIAkJCQk4M0U5QjMw
MDFEQTVBNTFFMDBGRkQ4RTUgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwICovLAogCQkJ
CTgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oICov
LAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlv
bi5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNh
bFBvc2l0aW9uLmggKi8sCisJCQkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xs
T3B0aW9ucy5jcHAgKi8sCisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xs
T3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRv
T3B0aW9ucy5jcHAgKi8sCiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xs
VG9PcHRpb25zLmggKi8sCiAJCQkJN0M3M0ZCMEYxOTFFRjZGNDAwN0RFMDYxIC8qIEpTVXNlck1l
c3NhZ2VIYW5kbGVyLmNwcCAqLywKQEAgLTMwOTM1LDggKzMwOTU3LDEwIEBACiAJCQkJNUUyQzQz
NkMxQkNGMDcxRTAwMDFFMkJDIC8qIEpTUlRDVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNFQzAxQzMwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGREExNUVDRTEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9jZXNzb3JOb2RlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyogSlNTY3JvbGxC
ZWhhdmlvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0NDc2RUYxREE1QkM1RTAwMkI1RUMxIC8q
IEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzQ0NzZFRjFE
QTVCQzVFMDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICov
LAorCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVDMSAvKiBKU1Njcm9sbE9wdGlvbnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBKU1Njcm9sbFRvT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VEMDZBRDExQzc3NzU0ODAwRkRGQUYxIC8qIEpT
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4MkMy
NTYxRjMxNDNDRDAwNTlCQTdDIC8qIEpTU2VydmljZVdvcmtlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zMjEzOSw2ICszMjE2Myw3IEBACiAJCQkJNDRDOTkxODYwRjNEMUVCRTAwNTg2NjcwIC8qIFNj
cm9sbGJhclRoZW1lSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCODUzRTBFN0M3RjExMDBB
QjY5ODQgLyogU2Nyb2xsYmFyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTcxNDA2
MTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suaCBpbiBIZWFkZXJzICovLAor
CQkJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFBODRGMDUxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9sbENvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjA1QUVEMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxp
bmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNjJFRTgxNERBMjJBNzAwNDE1
NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTc1LDYg
KzMyMjAwLDcgQEAKIAkJCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyogU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUFGRThEMDE5Q0I4NjcyMDAwRjU2RDgg
LyogU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNTc5NUQxREE1
QzMwMTAwNkY5Qzg2IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUY0Nzg3NTU0MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JT
dGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ2NzI5MjgxRTBERTY4NTAwQUNDM0Q4IC8qIFNj
cm9sbFNuYXBPZmZzZXRzSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNTc5NUQxREE1QzMw
MTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDFj
NGUzNmYxNDkuLmQ0YWJmMjNiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMzkzLDYgKzMzOTMsMTAgQEAgUmVmUHRy
PENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHls
ZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwogICAgICAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVUb3VjaCk7CiAjZW5kaWYK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbEJlaGF2aW9yOgorICAgICAgICAgICAgaWYg
KCFzdHlsZS51c2VTbW9vdGhTY3JvbGxpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOworICAgICAgICAg
ICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVTbW9v
dGgpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGVyc3BlY3RpdmU6CiAgICAgICAgICAgICBp
ZiAoIXN0eWxlLmhhc1BlcnNwZWN0aXZlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IDQxNTc4YTk0ZWQuLmY5ODJkM2Y1ZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzU1Nyw2ICszNTU3LDE2IEBACiAg
ICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvU1ZHL3NoYXBlcy5o
dG1sIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAic2Nyb2xsLWJlaGF2aW9y
IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiYXV0byIsCisg
ICAgICAgICAgICAgICAgInNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3Bl
Y2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiY3Nzb20tdmlldyIs
CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20t
dmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0s
CiAgICAgICAgICJzaGFwZS1yZW5kZXJpbmciOiB7CiAgICAgICAgICAgICAiaW5oZXJpdGVkIjog
dHJ1ZSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCkBAIC02NDg5LDYgKzY0OTksMjIgQEAKICAg
ICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdWktNC8jcHJv
cGRlZi11c2VyLXNlbGVjdCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgInNj
cm9sbC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAgICAg
ICAgImF1dG8iLAorICAgICAgICAgICAgICAgICJzbW9vdGgiCisgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAiY29udmVy
dGVyIjogIlNtb290aFNjcm9sbGluZyIsCisgICAgICAgICAgICAgICAgIm5hbWUtZm9yLW1ldGhv
ZHMiOiAiVXNlU21vb3RoU2Nyb2xsaW5nIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJz
dGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJleHBlcmltZW50YWwiCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAg
ICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1z
Y3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICAgICJzY3Jv
bGwtcGFkZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAg
ICAgICAgICAgICAgImVuYWJsZS1pZiI6ICJFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQIiwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggOGRmZTNhYmIyMS4uZGE4MjY5ZTYz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTEzODgsNiArMTM4
OCwxMCBAQCBwYW4teQogcGluY2gtem9vbQogI2VuZGlmCiAKKy8vIHNjcm9sbC1iZWhhdmlvcgor
Ly8gYXV0bworc21vb3RoCisKIC8vIGhhbmdpbmctcHVuY3R1YXRpb24KIGFsbG93LWVuZAogZmly
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCmlu
ZGV4IDc1MzcxODhjYjkuLjcxZjlhYTYyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcApAQCAtNzUsNiArNzUsNyBAQCBDU1NQYXJzZXJDb250
ZXh0OjpDU1NQYXJzZXJDb250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJM
JiBzaGVldEJhcwogICAgIGF0dGFjaG1lbnRFbmFibGVkID0gUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQoKTsKICNlbmRpZgog
ICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkuZGVmZXJy
ZWRDU1NQYXJzZXJFbmFibGVkKCk7CisgICAgc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gZG9jdW1l
bnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCk7CiAgICAgdXNl
U3lzdGVtQXBwZWFyYW5jZSA9IGRvY3VtZW50LnBhZ2UoKSA/IGRvY3VtZW50LnBhZ2UoKS0+dXNl
U3lzdGVtQXBwZWFyYW5jZSgpIDogZmFsc2U7CiB9CiAKQEAgLTk5LDYgKzEwMCw3IEBAIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQYXJzZXJDb250
ZXh0JiBiKQogICAgICAgICAmJiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIuYXR0YWNobWVudEVu
YWJsZWQKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9PSBi
LmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAorICAgICAgICAmJiBhLnNjcm9sbEJlaGF2aW9yRW5h
YmxlZCA9PSBiLnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLmhhc0RvY3VtZW50
U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luCiAgICAgICAgICYm
IGEudXNlU3lzdGVtQXBwZWFyYW5jZSA9PSBiLnVzZVN5c3RlbUFwcGVhcmFuY2U7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmluZGV4IDg2NTI1ZmQ3
MGMuLmM3NGRjOTRjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
Q29udGV4dC5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBib29sIGF0dGFjaG1lbnRF
bmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRDU1NQYXJzZXJFbmFi
bGVkIHsgZmFsc2UgfTsKKyAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxlZCB7IGZhbHNlIH07
CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0IGdldE1hdGNoZWRD
U1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4geyBmYWxzZSB9OwpA
QCAtMTE2LDcgKzExNyw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFzaCB7CiAjaWYgRU5B
QkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAgICAgICYga2V5LmF0dGFjaG1lbnRFbmFi
bGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYKLSAgICAgICAgICAgICYg
a2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDEyOyAvLyBL
ZWVwIHRoaXMgbGFzdC4KKyAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAg
ICAgICAgICAgICAgICAgICAgIDw8IDEyCisgICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0aGlzIGxhc3QuCiAg
ICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJpdHMpOwogICAgICAgICByZXR1cm4gaGFzaDsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZh
c3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRo
cy5jcHAKaW5kZXggMzFkMTJhYjlhYi4uNDIxMjg4OWVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtNjM2LDEwICs2MzYsNiBA
QCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVl
KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZAogICAgICAgICAgICAgfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZVN0aWNreSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0U3RpY2t5OwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlSZXNpemU6IC8vIG5vbmUgfCBib3RoIHwgaG9yaXpvbnRhbCB8IHZlcnRpY2Fs
IHwgYXV0bwogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUgfHwgdmFsdWVJ
RCA9PSBDU1NWYWx1ZUJvdGggfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUhvcml6b250YWwgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVZlcnRpY2FsIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvOwotICAg
IC8vIEZJWE1FLU5FV1BBUlNFUjogSW52ZXN0aWdhdGUgdGhpcyBwcm9wZXJ0eS4KLSAgICAvLyBj
YXNlIENTU1Byb3BlcnR5U2Nyb2xsQmVoYXZpb3I6IC8vIGF1dG8gfCBzbW9vdGgKLSAgICAvLyAg
ICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmNzc29tU21vb3RoU2Nyb2xsRW5hYmxl
ZCgpKTsKLSAgICAvLyAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlE
ID09IENTU1ZhbHVlU21vb3RoOwogICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFwZVJlbmRlcmluZzoK
ICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NT
VmFsdWVPcHRpbWl6ZVNwZWVkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDcmlzcGVkZ2VzIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVHZW9tZXRyaWNQcmVjaXNpb247CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVN0cm9rZUxpbmVqb2luOgpAQCAtOTM5LDcgKzkzNSw2IEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBh
dGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCkKICAgICAv
LyBjYXNlIENTU1Byb3BlcnR5Rm9udEtlcm5pbmc6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eUh5
cGhlbnM6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93QW5jaG9yOgotICAgIC8vIGNh
c2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5U2Ny
b2xsU25hcFR5cGU6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGlnbkxhc3Q6CiAgICAg
Ly8gY2FzZSBDU1NQcm9wZXJ0eVRleHRDb21iaW5lVXByaWdodDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggZWJkMGVhZjVmNi4uNjNm
NWFiNTJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5jcHAKQEAgLTIzMjcsNiArMjMyNywxNCBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlTGlz
dD4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogCiAj
ZW5kaWYKIAorc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZVNjcm9sbEJl
aGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gdmFsdWVJRCA9
IHJhbmdlLnBlZWsoKS5pZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENTU1ZhbHVlQXV0byAmJiB2
YWx1ZUlEICE9IENTU1ZhbHVlU21vb3RoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4g
Y29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NT
UGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChyYW5nZSwgY3NzUGFyc2Vy
TW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTM5MjcsNiArMzkzNSwxMCBAQCBSZWZQ
dHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxTbmFwVHlwZToK
ICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxTbmFwVHlwZShtX3JhbmdlKTsKICNlbmRpZgor
ICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgaWYgKCFtX2NvbnRl
eHQuc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgIHJldHVybiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVybiBjb25zdW1lQ2xpcChtX3JhbmdlLCBtX2Nv
bnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCmluZGV4IDcwZDllMWIwYWUuLmJlNWE4NTI2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
QEAgLTgzMiw3ICs4MzIsNiBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KE9wdGlvbmFs
PFZhcmlhbnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgogICAgIGJvb2wgaW5z
aWRlRml4ZWQ7CiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJvdW5kcyA9IHJlbmRlcmVyKCktPmFi
c29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwogCi0gICAgLy8gRklYTUUod2Via2l0Lm9y
Zy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCiAgICAgU2Nyb2xsSW50b1ZpZXdP
cHRpb25zIG9wdGlvbnM7CiAgICAgaWYgKGFyZykgewogICAgICAgICBhdXRvIHZhbHVlID0gYXJn
LnZhbHVlKCk7CkBAIC04NTEsNyArODUwLDggQEAgdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmll
dyhPcHRpb25hbDxWYXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9ucz4+JiYgYXIKICAg
ICAgICAgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLAogICAgICAgICBpc0hvcml6b250YWwg
PyBhbGlnblggOiBhbGlnblksCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFsaWduWSA6IGFsaWdu
WCwKLSAgICAgICAgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8KKyAgICAgICAg
U2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8sCisgICAgICAgIG9wdGlvbnMuYmVo
YXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0bykKICAgICB9OwogICAgIHJlbmRlcmVy
KCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYWJzb2x1dGVCb3VuZHMsIGluc2lkZUZpeGVkLCB2aXNp
YmxlT3B0aW9ucyk7CiB9CkBAIC05MTIsNyArOTEyLDcgQEAgdm9pZCBFbGVtZW50OjpzY3JvbGxC
eShjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMpCiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xs
QnkoZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIHNjcm9sbEJ5KHsgeCwgeSB9KTsKKyAgICBz
Y3JvbGxCeShTY3JvbGxUb09wdGlvbnMoeCwgeSkpOwogfQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9s
bFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBp
bmcpCkBAIC05NDgsMTMgKzk0OCwxNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbFRvKGNvbnN0IFNj
cm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiAgICAgICAg
IGFkanVzdEZvckFic29sdXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsTGVmdCgpLCAqcmVuZGVyZXIp
LAogICAgICAgICBhZGp1c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVyZXItPnNjcm9sbFRvcCgpLCAq
cmVuZGVyZXIpCiAgICAgKTsKLSAgICByZW5kZXJlci0+c2V0U2Nyb2xsTGVmdChjbGFtcFRvSW50
ZWdlcihzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXItPnN0eWxlKCkuZWZm
ZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFtcGluZyk7Ci0gICAg
cmVuZGVyZXItPnNldFNjcm9sbFRvcChjbGFtcFRvSW50ZWdlcihzY3JvbGxUb09wdGlvbnMudG9w
LnZhbHVlKCkgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIGNsYW1waW5nKTsKKyAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbigK
KyAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAqIHJl
bmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksCisgICAgICAgIGNsYW1wVG9JbnRlZ2Vy
KHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2
ZVpvb20oKSkKKyAgICApOworICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9vdGhTY3JvbGxpbmco
c2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6OkF1dG8pLCAq
dGhpcyk7CisgICAgcmVuZGVyZXItPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkLCBjbGFtcGluZyk7CiB9CiAKIHZvaWQg
RWxlbWVudDo6c2Nyb2xsVG8oZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIHNjcm9sbFRvKHsg
eCwgeSB9KTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSkpOwogfQogCiB2b2lk
IEVsZW1lbnQ6OnNjcm9sbEJ5VW5pdHMoaW50IHVuaXRzLCBTY3JvbGxHcmFudWxhcml0eSBncmFu
dWxhcml0eSkKQEAgLTEyODgsMTMgKzEyOTIsMTkgQEAgdm9pZCBFbGVtZW50OjpzZXRTY3JvbGxM
ZWZ0KGludCBuZXdMZWZ0KQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkg
PT0gdGhpcykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5v
bk51bGxWaWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlv
bihJbnRQb2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+cGFnZVpvb21GYWN0
b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmlldygpLT5zY3JvbGxZ
KCkpKTsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFtZVdpdGhOb25OdWxs
VmlldygpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBkb2N1bWVudCgp
LT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQorICAgICAgICAgICAgYm9vbCBhbmltYXRl
ZCA9IGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKFNj
cm9sbEJlaGF2aW9yOjpBdXRvLCAqZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAg
ICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChzdGF0aWNf
Y2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFt
ZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmlldygpLT5zY3JvbGxZKCkpLCBhbmltYXRlZCk7Cisg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChhdXRvKiByZW5kZXJl
ciA9IHJlbmRlckJveCgpKSB7Ci0gICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxMZWZ0KHN0YXRp
Y19jYXN0PGludD4obmV3TGVmdCAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSks
IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyk7CisgICAgICAgIGludCBjbGFtcGVkTGVmdCA9IGNs
YW1wVG9JbnRlZ2VyKG5ld0xlZnQgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
OworICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2
aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxMZWZ0KGNsYW1w
ZWRMZWZ0LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkKTsKICAgICAgICAgaWYg
KGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVyKCkpCiAgICAgICAgICAgICBz
Y3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUodHJ1ZSk7CiAg
ICAgfQpAQCAtMTMwNSwxMyArMTMxNSwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbFRvcChp
bnQgbmV3VG9wKQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkgPT0gdGhp
cykgewotICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxW
aWV3KCkpCi0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQ
b2ludChmcmFtZS0+dmlldygpLT5zY3JvbGxYKCksIHN0YXRpY19jYXN0PGludD4obmV3VG9wICog
ZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSkpOwor
ICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkp
IHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9s
bGluZ0VsZW1lbnQoKT8KKyAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gZG9j
dW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVo
YXZpb3I6OkF1dG8sICpkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAg
IGZyYW1lLT52aWV3KCktPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZyYW1lLT52aWV3KCkt
PnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+cGFnZVpvb21GYWN0
b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKSwgYW5pbWF0ZWQpOworICAgICAgICB9
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSByZW5k
ZXJCb3goKSkgewotICAgICAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKHN0YXRpY19jYXN0PGlu
dD4obmV3VG9wICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlw
ZTo6UHJvZ3JhbW1hdGljKTsKKyAgICAgICAgaW50IGNsYW1wZWRUb3AgPSBjbGFtcFRvSW50ZWdl
cihuZXdUb3AgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOworICAgICAgICBi
b29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAq
dGhpcyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3AoY2xhbXBlZFRvcCwgU2Nyb2xs
VHlwZTo6UHJvZ3JhbW1hdGljLCBhbmltYXRlZCk7CiAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxh
YmxlQXJlYSA9IHJlbmRlcmVyLT5sYXllcigpKQogICAgICAgICAgICAgc2Nyb2xsYWJsZUFyZWEt
PnNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKHRydWUpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAppbmRleCAxNmMxNDE3OWUxLi5hZTI5ZGZhOWJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNTkyLDcgKzE1OTIsNyBAQCBkb3VibGUgRE9NV2luZG93
OjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbEJ5KGRv
dWJsZSB4LCBkb3VibGUgeSkgY29uc3QKIHsKLSAgICBzY3JvbGxCeSh7IHgsIHkgfSk7CisgICAg
c2Nyb2xsQnkoU2Nyb2xsVG9PcHRpb25zKHgsIHkpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnNj
cm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QKQEAgLTE2MTQsMTAg
KzE2MTQsMTAgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9u
cyYgb3B0aW9ucykgY29uc3QKIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGRvdWJsZSB4LCBk
b3VibGUgeSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpIGNvbnN0CiB7Ci0gICAgc2Nyb2xsVG8o
eyB4LCB5IH0sIGNsYW1waW5nKTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSks
IGNsYW1waW5nKTsKIH0KIAotdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRv
T3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0Cit2b2lkIERPTVdpbmRvdzo6
c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3JvbGxDbGFtcGluZyBj
bGFtcGluZykgY29uc3QKIHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgp
KQogICAgICAgICByZXR1cm47CkBAIC0xNjMwLDEyICsxNjMwLDIyIEBAIHZvaWQgRE9NV2luZG93
OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMsIFNjcm9sbENsYW1waW5n
KSBjb25zdAogICAgICAgICB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkueCgpLCB2aWV3
LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkueSgpCiAgICAgKTsKIAotICAgIGlmICghc2Nyb2xs
VG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Nyb2xsVG9PcHRpb25zLnRvcC52YWx1ZSgpICYm
IHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKSA9PSBJbnRQb2ludCgwLCAwKSkKKyAgICAv
LyBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiBmb3IgdGhlIGNvbW1vbiBjYXNlIG9mIHNjcm9sbGlu
ZyB0byAoMCwgMCkgd2hlbiB0aGUgc2Nyb2xsZXIgaXMgYWxyZWFkeSBhdCB0aGUgb3JpZ2luLgor
ICAgIC8vIElmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcywgdGhpcyBvcHRpbWl6
YXRpb24gaXMgc2tpcHBlZCB0byBlbnN1cmUgdGhhdCB0aGUgYW5pbWF0ZWQgc2Nyb2xsIGlzIHJl
YWxseSBzdG9wcGVkLgorICAgIGlmICh2aWV3LT5jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMo
KSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYgIXNjcm9sbFRvT3B0
aW9ucy5sZWZ0LnZhbHVlKCkgJiYgIXNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAmJiB2aWV3
LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkgPT0gSW50UG9pbnQoMCwgMCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOwogCiAgICAgSW50UG9pbnQgbGF5b3V0UG9zKHZpZXctPm1hcEZyb21DU1NUb0xheW91
dFVuaXRzKHNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkpLCB2aWV3LT5tYXBGcm9tQ1NTVG9M
YXlvdXRVbml0cyhzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkpKTsKKworICAgIC8vIEZJWE1F
OiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAgICAvLyBT
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQorICAgIGlm
IChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcoc2Ny
b2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6OkF1dG8pLCAqZG9j
dW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkpKSB7CisgICAgICAgIHZpZXctPnNjcm9sbFRvT2Zm
c2V0V2l0aEFuaW1hdGlvbihsYXlvdXRQb3MsIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgY2xh
bXBpbmcpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgdmlldy0+c2V0Q29udGVudHNT
Y3JvbGxQb3NpdGlvbihsYXlvdXRQb3MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
aW5kZXggMDQwMTJmOWVmZi4uNzMxZTMyMjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtMjI3OSw3ICsyMjc5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9sbEVsZW1lbnRUb1Jl
Y3QoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBzZXRT
Y3JvbGxQb3NpdGlvbihJbnRQb2ludChib3VuZHMueCgpIC0gY2VudGVyaW5nT2Zmc2V0WCAtIHJl
Y3QueCgpLCBib3VuZHMueSgpIC0gY2VudGVyaW5nT2Zmc2V0WSAtIHJlY3QueSgpKSk7CiB9CiAK
LXZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYg
c2Nyb2xsUG9zaXRpb24pCit2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sIGFuaW1hdGVkKQogewogICAgIExP
R19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRnJhbWVWaWV3OjpzZXRTY3JvbGxQ
b3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uIDw8ICIgLCBjbGVhcmluZyBhbmNob3IiKTsKIApA
QCAtMjI5Miw3ICsyMjkyLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihj
b25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAgICAgUGFnZSogcGFnZSA9IGZy
YW1lKCkucGFnZSgpOwogICAgIGlmIChwYWdlICYmIHBhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZl
bnRzKCkpCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVudFRlc3RNb25pdG9y
KHBhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKLSAgICBTY3JvbGxWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgaWYgKGFuaW1hdGVkKQorICAgICAgICBz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uKSwgY3VycmVudFNjcm9sbFR5cGUoKSk7CisgICAgZWxzZQorICAgICAgICBTY3Jv
bGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CiAKICAgICBzZXRDdXJy
ZW50U2Nyb2xsVHlwZShvbGRTY3JvbGxUeXBlKTsKIH0KQEAgLTM2NjAsNiArMzY2MywyNiBAQCB2
b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mIG5ld1Bvc2l0aW9u
KQogICAgIGRpZENoYW5nZVNjcm9sbE9mZnNldCgpOwogfQogCit2b2lkIEZyYW1lVmlldzo6c2Ny
b2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQoreworICAgIGF1dG8gcHJldmlvdXNT
Y3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJyZW50U2Nyb2xsVHlw
ZShzY3JvbGxUeXBlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lO
Q19TQ1JPTExJTkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhh
dmlvclR5cGU6OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShz
Y3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0Q3VycmVudFNj
cm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNl
bmRpZgorCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0
b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CisgICAgaWYgKG9mZnNldCAhPSB0aGlzLT5zY3JvbGxP
ZmZzZXQoKSkKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1h
dGlvbihvZmZzZXQpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlw
ZSk7Cit9CisKIGZsb2F0IEZyYW1lVmlldzo6YWRqdXN0U2Nyb2xsU3RlcEZvckZpeGVkQ29udGVu
dChmbG9hdCBzdGVwLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKGdyYW51bGFyaXR5ICE9IFNjcm9sbEJ5
UGFnZSB8fCBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKaW5kZXggZTM2Zjk5NjgwNC4uYjM3ZjA2MGUzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCkBAIC0yMjMsNyArMjIzLDcgQEAgcHVibGljOgogI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpeGVkVmlzaWJsZUNvbnRlbnRS
ZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICNlbmRpZgotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBmaW5hbDsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9u
JiwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIHJlc3RvcmVTY3JvbGxi
YXIoKTsKICAgICB2b2lkIHNjaGVkdWxlU2Nyb2xsVG9Gb2N1c2VkRWxlbWVudChTZWxlY3Rpb25S
ZXZlYWxNb2RlKTsKICAgICB2b2lkIHNjcm9sbFRvRm9jdXNlZEVsZW1lbnRJbW1lZGlhdGVseUlm
TmVlZGVkKCk7CkBAIC02NTksNiArNjU5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZW5kZXJM
YXllckRpZFNjcm9sbChjb25zdCBSZW5kZXJMYXllciYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiwgU2Ny
b2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3Jv
bGxDbGFtcGluZzo6Q2xhbXBlZCk7CisKIHByb3RlY3RlZDoKICAgICBib29sIHNjcm9sbENvbnRl
bnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJl
Y3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwogICAgIHZvaWQgc2Ny
b2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMC4uNGVkMjljYjQyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNjcm9sbEJlaGF2aW9yLmgiCisKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5j
bHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIHVzZVNtb290aFNj
cm9sbGluZyhTY3JvbGxCZWhhdmlvciBiZWhhdmlvciwgRWxlbWVudCYgYXNzb2NpYXRlZEVsZW1l
bnQpCit7CisgICAgaWYgKCFhc3NvY2lhdGVkRWxlbWVudC5kb2N1bWVudCgpLnNldHRpbmdzKCku
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCgpIHx8ICFhc3NvY2lhdGVkRWxlbWVudC5y
ZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nCisgICAgc3dpdGNoIChiZWhhdmlvcikg
eworICAgIGNhc2UgU2Nyb2xsQmVoYXZpb3I6OkF1dG86CisgICAgICAgIHJldHVybiBhc3NvY2lh
dGVkRWxlbWVudC5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZVNtb290aFNjcm9sbGluZygpOworICAg
IGNhc2UgU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBjYXNlIFNjcm9sbEJlaGF2aW9yOjpTbW9vdGg6CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Ny
b2xsQmVoYXZpb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xYmFlZjg4MWU4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5oCkBAIC0wLDAgKzEs
NDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxlbWVudDsKKworZW51
bSBjbGFzcyBTY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIEF1dG8gPSAwLAorICAgIElu
c3RhbnQsCisgICAgU21vb3RoCit9OworCitib29sIHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxC
ZWhhdmlvciwgRWxlbWVudCYgYXNzb2NpYXRlZEVsZW1lbnQpOworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjg5NzFhZTkzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmlkbApAQCAtMCwwICsxLDI2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2VudW0gU2Nyb2xs
QmVoYXZpb3IgeyAiYXV0byIsICJpbnN0YW50IiwgInNtb290aCIgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5oCmluZGV4IDkzOWNkNzM0MjUuLmYyNzVmMmZi
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25z
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaApAQCAt
MjAsMTIgKzIwLDExIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNjcm9sbExvZ2ljYWxQ
b3NpdGlvbi5oIgorI2luY2x1ZGUgIlNjcm9sbE9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBFbGVtZW50OwotCi1zdHJ1Y3QgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIHsK
K3N0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBPcHRp
b25hbDxTY3JvbGxMb2dpY2FsUG9zaXRpb24+IGJsb2NrUG9zaXRpb24geyBTY3JvbGxMb2dpY2Fs
UG9zaXRpb246OlN0YXJ0IH07CiAgICAgT3B0aW9uYWw8U2Nyb2xsTG9naWNhbFBvc2l0aW9uPiBp
bmxpbmVQb3NpdGlvbiB7IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6TmVhcmVzdCB9OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAppbmRleCBjZjlk
MWZkNzY3Li4xYjI0YzY4NmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9s
bEludG9WaWV3T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRv
Vmlld09wdGlvbnMuaWRsCkBAIC0xNyw4ICsxNyw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KICAqLwogCi0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQzKTogU3VwcG9ydCBT
Y3JvbGxCZWhhdmlvci4KLWRpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIHsKK2RpY3Rp
b25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7CiAgICAgW0ltcGxl
bWVudGVkQXM9YmxvY2tQb3NpdGlvbl0gU2Nyb2xsTG9naWNhbFBvc2l0aW9uIGJsb2NrID0gInN0
YXJ0IjsKICAgICBbSW1wbGVtZW50ZWRBcz1pbmxpbmVQb3NpdGlvbl0gU2Nyb2xsTG9naWNhbFBv
c2l0aW9uIGlubGluZSA9ICJuZWFyZXN0IjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9u
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmUxODY3YzYwMTUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaApAQCAt
MCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU2Nyb2xsT3B0aW9ucyB7CisgICAgT3B0aW9uYWw8U2Ny
b2xsQmVoYXZpb3I+IGJlaGF2aW9yIHsgU2Nyb2xsQmVoYXZpb3I6OkF1dG8gfTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Ny
b2xsT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMyOWQ2ZmYxMDgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaWRsCkBAIC0wLDAg
KzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
ZGljdGlvbmFyeSBTY3JvbGxPcHRpb25zIHsKKyAgICBTY3JvbGxCZWhhdmlvciBiZWhhdmlvciA9
ICJhdXRvIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0
aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaAppbmRleCBjZTFj
YmExYzdjLi5mNTc3NGQ0NGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9s
bFRvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmgK
QEAgLTI4LDE0ICsyOCwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNjcm9sbE9w
dGlvbnMuaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgU2Nyb2xsVG9PcHRpb25zIHsKK3N0cnVjdCBT
Y3JvbGxUb09wdGlvbnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBPcHRpb25hbDxkb3VibGU+IGxl
ZnQ7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiB0b3A7CisKKyAgICBTY3JvbGxUb09wdGlvbnMoKSA9
IGRlZmF1bHQ7CisgICAgU2Nyb2xsVG9PcHRpb25zKGRvdWJsZSB4LCBkb3VibGUgeSkKKyAgICAg
ICAgOiBsZWZ0KHgpCisgICAgICAgICwgdG9wKHkpCisgICAgeyB9CiB9OwogCiBpbmxpbmUgZG91
YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlvbmFsPGRvdWJsZT4g
dmFsdWUsIGRvdWJsZSBmYWxsYmFja1ZhbHVlKQpAQCAtNDcsNyArNTQsNyBAQCBpbmxpbmUgZG91
YmxlIG5vcm1hbGl6ZU5vbkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlvbmFsPGRvdWJsZT4g
dmFsdWUsIGRvdWJsZQogLy8gRklYTUUoaHR0cHM6Ly93ZWJraXQub3JnL2IvODgzMzkpOiBDb25z
aWRlciB1c2luZyBGbG9hdFBvaW50IG9yIERvdWJsZVBvaW50IGZvciBmYWxsYmFjayBhbmQgcmV0
dXJuIHZhbHVlcy4KIGlubGluZSBTY3JvbGxUb09wdGlvbnMgbm9ybWFsaXplTm9uRmluaXRlQ29v
cmRpbmF0ZXNPckZhbGxCYWNrVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiB2YWx1ZSwgZG91Ymxl
IHgsIGRvdWJsZSB5KQogewotICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zOworICAgIFNjcm9s
bFRvT3B0aW9ucyBvcHRpb25zID0gdmFsdWU7CiAgICAgb3B0aW9ucy5sZWZ0ID0gbm9ybWFsaXpl
Tm9uRmluaXRlVmFsdWVPckZhbGxCYWNrVG8odmFsdWUubGVmdCwgeCk7CiAgICAgb3B0aW9ucy50
b3AgPSBub3JtYWxpemVOb25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tUbyh2YWx1ZS50b3AsIHkpOwog
ICAgIHJldHVybiBvcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3Jv
bGxUb09wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRs
CmluZGV4IDUxMGJjMDcxYTYuLjJiOWI1NTQxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9s
bFRvT3B0aW9ucy5pZGwKQEAgLTI2LDggKzI2LDcgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8g
RklYTUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCi1kaWN0
aW9uYXJ5IFNjcm9sbFRvT3B0aW9ucyB7CitkaWN0aW9uYXJ5IFNjcm9sbFRvT3B0aW9ucyA6IFNj
cm9sbE9wdGlvbnMgewogICAgIHVucmVzdHJpY3RlZCBkb3VibGUgbGVmdDsKICAgICB1bnJlc3Ry
aWN0ZWQgZG91YmxlIHRvcDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggYjMy
OWYxMjQ3OS4uMWQ3OWY0NTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNjIy
LDYgKzYyMiw5IEBAIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6CiBDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCitDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBpbnB1dEV2ZW50c0VuYWJsZWQ6
CiAgIGluaXRpYWw6IHRydWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA0MjllZWU5YTk2
Li4wMmQ1ODk3NTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4LDcgKzI0OCwxNiBA
QCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVw
ZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUg
PSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
IT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29sIGluUHJvZ3JhbW1h
dGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxU
eXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFj
a0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSBpblByb2dy
YW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisKKyAgICBib29sIGFuaW1hdGVk
ID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhbmltYXRlZCA9IHNjcm9s
bGFibGVBcmVhLmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSA9PSBTY3JvbGxCZWhhdmlvclR5
cGU6OlNtb290aDsKKyAgICAvLyBUaGUgc2Nyb2xsIHBvc2l0aW9uIG9mIGFuaW1hdGVkIHNjcm9s
bGluZyB3aWxsIGJlIHNldCBieSB0aGUgVUkgcHJvY2Vzcy4gU28gc2hvdWxkbid0IHNldCBpdCBu
b3cuCisgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSAhYW5pbWF0ZWQgJiYgdXBkYXRlU2Nyb2xs
UG9zaXRpb247CisjZW5kaWYKKyAgICBpZiAodXBkYXRlU2Nyb2xsUG9zaXRpb24pCiAgICAgICAg
IHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3JvbGxpbmdOb2RlSUQsIHNj
cm9sbFBvc2l0aW9uLCB7IH0sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIAogICAgIC8vIElmIHRoaXMgZnJhbWUgdmlldydzIGRv
Y3VtZW50IGlzIGJlaW5nIHB1dCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIHdlIGRvbid0
IHdhbnQgdG8gdXBkYXRlIG91cgpAQCAtMjYwLDcgKzI2OSwxMiBAQCBib29sIEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJl
YSYgc2NybwogICAgIGlmICghc3RhdGVOb2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBp
blByb2dyYW1tYXRpY1Njcm9sbCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhdXRv
IHN0YXR1cyA9IGFuaW1hdGVkID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5pbWF0
aW9uIDogU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOworICAgIHNjcm9sbGFi
bGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKHN0YXR1cyk7CisjZW5kaWYKKworICAgIHN0
YXRlTm9kZS0+c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGluUHJv
Z3JhbW1hdGljU2Nyb2xsLCBhbmltYXRlZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI5
MSw2ICszMDUsMzIgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVw
ZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBtX3VwZGF0ZU5vZGVT
Y3JvbGxQb3NpdGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAg
aWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGZyYW1lVmlldyA9IGZy
YW1lVmlld0ZvclNjcm9sbGluZ05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05v
ZGVJRCgpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAg
ICAgICAgICAgZnJhbWVWaWV3LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlv
clN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Ly8gT3ZlcmZsb3ctc2Nyb2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0g
ZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQobm9kZUlEKSkgeworICAg
ICAgICBpZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAgICAgICAgIHNjcm9s
bGFibGVBcmVhLT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6
Tm90SW5BbmltYXRpb24pOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbFRpbWVyRmly
ZWQoKQogewogICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChtX3NjaGVk
dWxlZFNjcm9sbFVwZGF0ZS5ub2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLnNjcm9sbFBv
c2l0aW9uLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Ny
b2xsVHlwZTo6VXNlciwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRlTGF5ZXJQb3NpdGlv
bkFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4uM2RlMDFjYzI4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
Y3JvbGxpbmdTdGF0ZVRyZWVQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3Jv
bGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50
PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhTY3JvbGxpbmdOb2Rl
SUQsIHVuc2lnbmVkIGhvcml6b250YWxJbmRleCwgdW5zaWduZWQgdmVydGljYWxJbmRleCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3MTdiZmMyYTU1Li40ZTQwMTRlOWE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5n
U3RhdGVTY3IKICNlbmRpZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVO
b2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlv
bihzdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisjZW5k
aWYKICAgICAsIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2RlLmlzTW9uaXRvcmlu
Z1doZWVsRXZlbnRzKCkpCiB7CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxDb250
YWluZXJMYXllcikpCkBAIC0yMTksMTAgKzIyMiwxNSBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0IFNjcm9sbGFibGVB
cgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFtcyk7CiB9CiAKLXZv
aWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgcmVx
dWVzdGVkV2l0aEFuaW1hdGlvbikKIHsKICAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0g
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xs
OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bldpdGhBbmltYXRpb24gPSByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0ocmVxdWVzdGVkV2l0aEFuaW1hdGlvbik7CisjZW5kaWYKICAgICBzZXRQcm9wZXJ0
eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQogCkBAIC0zMTQsNiArMzIyLDEx
IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0
U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUCiAgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogICAgICAgICB0cy5kdW1wUHJvcGVy
dHkoInJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gcmVwcmVzZW50cyBwcm9ncmFtbWF0aWMgc2Ny
b2xsIiwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobV9yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVz
dGVkIHNjcm9sbCBwb3NpdGlvbiB3aXRoIGFuaW1hdGlvbiIsIG1fcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25XaXRoQW5pbWF0aW9uKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3BhcmVudFJlbGF0aXZl
U2Nyb2xsYWJsZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInBhcmVu
dCByZWxhdGl2ZSBzY3JvbGxhYmxlIHJlY3QiLCBtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJl
Y3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDQ5NjdhNmNlODEuLjZjNjkyYzFkYzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xMTEsNyArMTExLDEwIEBAIHB1YmxpYzoKIAog
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsgfQogICAgIGJvb2wgcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgY29uc3QgeyByZXR1cm4g
bV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGw7IH0K
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhB
bmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFu
aW1hdGlvbjsgfQorI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsLCBib29sIHJlcXVlc3RlZFdpdGhBbmltYXRpb24pOwogCiAgICAgYm9vbCBpc01v
bml0b3JpbmdXaGVlbEV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faXNNb25pdG9yaW5nV2hlZWxF
dmVudHM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzTW9uaXRvcmluZ1doZWVsRXZl
bnRzKGJvb2wpOwpAQCAtMTcxLDYgKzE3NCw5IEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFy
ZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogCiAgICAgYm9vbCBtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCB7IGZhbHNl
IH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb25XaXRoQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIGJvb2wgbV9pc01v
bml0b3JpbmdXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggMTUxYWMyOWY4YS4uN2FkZGZlZjRh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApA
QCAtODIsOCArODIsMTMgQEAgcHVibGljOgogICAgIC8vIFVwZGF0ZXMgRnJhbWVWaWV3L1JlbmRl
ckxheWVyIHNjcm9sbGluZyBzdGF0ZSBhbmQgR3JhcGhpY3NMYXllcnMuCiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
JiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb246OlN5bmMpID0gMDsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLy8gQ2Fs
bGVkIGZvciBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cyB1cGRhdGVzLgorICAgIHZpcnR1YWwgdm9p
ZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShX
ZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgLyppc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MqLykgeyB9CisjZW5kaWYKKwogICAgIC8vIENhbGxlZCBmb3IgcmVxdWVzdGVkIHNjcm9sbCBw
b3NpdGlvbiB1cGRhdGVzLgotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgLypzY3JvbGxQb3Np
dGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCovKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2Rl
SUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9zaXRpb24qLywgYm9vbCAvKnJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwqLywgYm9vbCAvKndpdGhBbmltYXRpb24qLyA9IGZhbHNlKSB7
IH0KIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxpbmcvem9vbWluZyBoYXMgY2F1c2VkIHRoZSB2
aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2aWV3cG9ydC1jb25zdHJhaW5lZCBsYXllcnMK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5GcmFtZVZpZXdwb3J0Q2hhbmdlZFZpYURlbGVn
YXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwgZG91YmxlIHNjYWxlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYxLi4xN2M3ZjJhOGZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3LDEyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVO
CiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRy
ZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCiB7CiAgICAgY29uc3QgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSBkb3duY2FzdDxT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CisgICAgYm9vbCB3aXRoQW5p
bWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB3aXRoQW5pbWF0
aW9uID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1h
dGlvbigpOworI2VuZGlmCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bikpCi0gICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbGlu
Z1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxpbmdTdGF0ZU5vZGUu
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCksIHdp
dGhBbmltYXRpb24pOwogCiAgICAgbV9pc0ZpcnN0Q29tbWl0ID0gZmFsc2U7CiB9CkBAIC0xNTcs
MjEgKzE2MSw0MSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxCeShj
b25zdCBGbG9hdFNpemUmIGRlbHRhLCBTY3JvbGxQb3NpdGlvbgogICAgIHNjcm9sbFRvKGN1cnJl
bnRTY3JvbGxQb3NpdGlvbigpICsgZGVsdGEsIFNjcm9sbFR5cGU6OlVzZXIsIGNsYW1wKTsKIH0K
IAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQ
b2ludCYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFt
cCBjbGFtcCkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0
IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0
aW9uQ2xhbXAgY2xhbXAsIGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbikKIHsKLSAgICBpZiAo
cG9zaXRpb24gPT0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24pCisgICAgaWYgKHBvc2l0aW9uID09
IG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICAgICAgLy8gU2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAg
ICAgICAgaWYgKHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpICYmIG5lZWRTeW5jU2Nyb2xsUG9zaXRp
b24pCisgICAgICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3Jv
bGwoKnRoaXMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpOworICAgICAgICBz
Y3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3NEaWRDaGFuZ2Uoc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgc2V0UmVxdWVz
dEFuaW1hdGVkU2Nyb2xsKGZhbHNlKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTShuZWVk
U3luY1Njcm9sbFBvc2l0aW9uKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47CisgICAgfQogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBJZiBkdXJpbmcgYSBzY3JvbGwgYW5pbWF0
aW9uLCBuZWVkIHRvIHN0b3AgaXQgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9uZS4KKyAgICBpZiAo
c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpKQorICAgICAgICBzZXROZWVkc1N0b3BDdXJyZW50
U2Nyb2xsQW5pbWF0aW9uKHRydWUpOworI2VuZGlmCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElz
SGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Nyb2xsVHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9n
cmFtbWF0aWMpOwotICAgIAorCiAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gPSBhZGp1c3Rl
ZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7Ci0gICAgCisKICAgICBMT0dfV0lUSF9T
VFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlICIg
PDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBzY3JvbGxUbyAiIDw8IHBvc2l0aW9uIDw8ICIgKGRl
bHRhIGZyb20gbGFzdCBjb21taXR0ZWQgcG9zaXRpb24gIiA8PCAobV9sYXN0Q29tbWl0dGVkU2Ny
b2xsUG9zaXRpb24gLSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgPDwgIikiKTsKIAogICAgIHVw
ZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CiAgICAgY3VycmVudFNjcm9s
bFBvc2l0aW9uQ2hhbmdlZCgpOwogCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQ
cm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKGZhbHNlKTsKKyAgICBzZXRSZXF1
ZXN0QW5pbWF0ZWRTY3JvbGwoZmFsc2UpOworI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKQpAQCAtMTc5LDYg
KzIwMywxMCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xs
UG9zaXRpb25DaGFuZ2VkKCkKICAgICByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCk7CiAgICAg
cmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgaWYgKCFyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlm
CiAgICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlmeVJlbGF0ZWROb2Rlc0FmdGVyU2Nyb2xsUG9zaXRp
b25DaGFuZ2UoKnRoaXMpOwogICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURp
ZFNjcm9sbCgqdGhpcyk7CiB9CkBAIC0yNjYsNiArMjk0LDM3IEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdT
dGF0ZVRyCiAgICAgdHMuZHVtcFByb3BlcnR5KCJzY3JvbGxhYmxlIGFyZWEgcGFyYW1ldGVycyIs
IG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0QW5pbWF0ZWRT
Y3JvbGwoYm9vbCBhbmltYXRlZCkKK3sKKyAgICBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCA9IGFu
aW1hdGVkOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpyZXF1ZXN0QW5p
bWF0ZWRTY3JvbGwoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3RBbmltYXRlZFNjcm9s
bDsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyhib29sIGluUHJvZ3Jlc3MpCit7CisgICAgbV9zY3JvbGxBbmltYXRpb25J
blByb2dyZXNzID0gaW5Qcm9ncmVzczsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzczsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29sIHN0b3ApCit7
CisgICAgbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uID0gc3RvcDsKK30KKworYm9v
bCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbjsKK30KKyNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDRjYmY0ZDFhZjAu
LmY5ZjMxMGRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJs
aWM6CiAgICAgRmxvYXRTaXplIHNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0KCkgY29uc3QgeyBy
ZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gLSBtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3Np
dGlvbjsgfQogCiAgICAgLy8gVGhlc2UgYXJlIGltcGVyYXRpdmU7IHRoZXkgYWRqdXN0IHRoZSBz
Y3JvbGxpbmcgbGF5ZXJzLgotICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNj
cm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xs
UG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOworICAgIHZvaWQgc2Nyb2xsVG8oY29uc3Qg
RmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlv
bkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMsIGJvb2wgbmVlZFN5
bmNTY3JvbGxQb3NpdGlvbiA9IGZhbHNlKTsKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEZsb2F0
U2l6ZSYsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRl
bnRFZGdlcyk7CiAKICAgICB2b2lkIHdhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmcoY29u
c3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UmVjdD4gb3ZlcnJpZGVMYXlv
dXRWaWV3cG9ydCA9IHsgfSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGlu
Z0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpOwpAQCAtOTEsNiArOTEsMTUgQEAgcHVibGljOgog
ICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbENvbnRhaW5lckxheWVyKCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxDb250YWluZXJMYXllcjsgfQogICAgIGNvbnN0IExheWVyUmVw
cmVzZW50YXRpb24mIHNjcm9sbGVkQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
b2xsZWRDb250ZW50c0xheWVyOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZv
aWQgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wpOworICAgIGJvb2wgcmVxdWVzdEFuaW1h
dGVkU2Nyb2xsKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNz
KGJvb2wpOworICAgIGJvb2wgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0OworICAg
IHZvaWQgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29sKTsKKyAgICBib29s
IG5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdDsKKyNlbmRpZgorCiBwcm90
ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nVHJlZSYsIFNj
cm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCkBAIC0xNDgsNiArMTU3LDEyIEBA
IHByaXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQ
YXJhbWV0ZXJzOwogICAgIGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9OwogCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsIHsgZmFs
c2UgfTsKKyAgICBib29sIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24geyBmYWxzZSB9OworI2Vu
ZGlmCisKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXI7CiAg
ICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCmluZGV4IGI3YzFkMjRlYjQuLjUy
M2E3N2YzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCkBA
IC0zMiwxMiArMzIsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGbG9hdFBvaW50
OwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CitlbnVtIGNsYXNzIFNjcm9sbENsYW1waW5nIDogdWlu
dDhfdDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0aW9uIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TY3JvbGxBbmltYXRpb24oKSB7IH07CiAgICAg
dmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHksIGZsb2F0IC8qIHN0ZXAgKi8sIGZsb2F0IC8qIG11bHRpcGxpZXIgKi8pIHsgcmV0dXJuIHRy
dWU7IH07CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBGbG9hdFBvaW50JikgeyB9Owog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaXNp
YmxlTGVuZ3RocygpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uU21vb3RoLmNwcAppbmRleCBkMDY0ZTY5Mzc5Li4yY2E1NzhhMzBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAK
QEAgLTI4LDggKzI4LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3JvbGxB
bmltYXRpb25TbW9vdGguaCIKIAotI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQotCiAjaW5j
bHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAKQEAgLTM4
LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0IGRvdWJsZSBmcmFt
ZVJhdGUgPSA2MDsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIHRpY2tUaW1lID0gMV9zIC8gZnJhbWVS
YXRlOwogc3RhdGljIGNvbnN0IFNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwgeyAxX21zIH07
CitzdGF0aWMgY29uc3QgZG91YmxlIHNtb290aEZhY3RvckZvclByb2dyYW1tYXRpY1Njcm9sbCA9
IDU7CiAKIFNjcm9sbEFuaW1hdGlvblNtb290aDo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoKFNjcm9s
bGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFdU
Rjo6RnVuY3Rpb248dm9pZCAoRmxvYXRQb2ludCYmKT4mJiBub3RpZnlQb3NpdGlvbkNoYW5nZWRG
dW5jdGlvbikKICAgICA6IFNjcm9sbEFuaW1hdGlvbihzY3JvbGxhYmxlQXJlYSkKQEAgLTY3LDkg
KzY2LDIyIEBAIGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwoU2Nyb2xsYmFyT3Jp
ZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51CiAgICAgcmV0dXJuIG5lZWRUb1Njcm9s
bDsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNjcm9sbChjb25zdCBGbG9hdFBv
aW50JiBwb3NpdGlvbikKK3sKKyAgICBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSA9IFNj
cm9sbEJ5UGFnZTsKKyAgICBib29sIG5lZWRUb1Njcm9sbCA9IHVwZGF0ZVBlckF4aXNEYXRhKG1f
aG9yaXpvbnRhbERhdGEsIGdyYW51bGFyaXR5LCBwb3NpdGlvbi54KCkgLSBtX2hvcml6b250YWxE
YXRhLmN1cnJlbnRQb3NpdGlvbiwgbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRp
b24oKS54KCksIG1fc2Nyb2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueCgpLCBz
bW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG5lZWRUb1Njcm9sbCB8PQor
ICAgICAgICB1cGRhdGVQZXJBeGlzRGF0YShtX3ZlcnRpY2FsRGF0YSwgZ3JhbnVsYXJpdHksIHBv
c2l0aW9uLnkoKSAtIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV9zY3JvbGxhYmxl
QXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKS55KCksIG1fc2Nyb2xsYWJsZUFyZWEubWF4aW11
bVNjcm9sbFBvc2l0aW9uKCkueSgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwp
OworICAgIGlmIChuZWVkVG9TY3JvbGwgJiYgIWFuaW1hdGlvblRpbWVyQWN0aXZlKCkpIHsKKyAg
ICAgICAgbV9zdGFydFRpbWUgPSBtX2hvcml6b250YWxEYXRhLnN0YXJ0VGltZTsKKyAgICAgICAg
YW5pbWF0aW9uVGltZXJGaXJlZCgpOworICAgIH0KK307CisKIHZvaWQgU2Nyb2xsQW5pbWF0aW9u
U21vb3RoOjpzdG9wKCkKIHsKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3AoKTsKKyAgICBtX3Nj
cm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVz
OjpOb3RJbkFuaW1hdGlvbik7CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRh
dGVWaXNpYmxlTGVuZ3RocygpCkBAIC0yNDcsNyArMjU5LDcgQEAgc3RhdGljIGlubGluZSB2b2lk
IGdldEFuaW1hdGlvblBhcmFtZXRlcnNGb3JHcmFudWxhcml0eShTY3JvbGxHcmFudWxhcml0eSBn
cmFudWwKICAgICB9CiB9CiAKLWJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVQZXJB
eGlzRGF0YShQZXJBeGlzRGF0YSYgZGF0YSwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHks
IGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3JvbGxQb3NpdGlvbiwgZmxvYXQgbWF4U2Nyb2xsUG9z
aXRpb24pCitib29sIFNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEoUGVy
QXhpc0RhdGEmIGRhdGEsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBkZWx0
YSwgZmxvYXQgbWluU2Nyb2xsUG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uLCBkb3Vi
bGUgc21vb3RoRmFjdG9yKQogewogICAgIGlmICghZGF0YS5zdGFydFRpbWUgfHwgIWRlbHRhIHx8
IChkZWx0YSA8IDApICE9IChkYXRhLmRlc2lyZWRQb3NpdGlvbiAtIGRhdGEuY3VycmVudFBvc2l0
aW9uIDwgMCkpIHsKICAgICAgICAgZGF0YS5kZXNpcmVkUG9zaXRpb24gPSBkYXRhLmN1cnJlbnRQ
b3NpdGlvbjsKQEAgLTI2NCw2ICsyNzYsMTIgQEAgYm9vbCBTY3JvbGxBbmltYXRpb25TbW9vdGg6
OnVwZGF0ZVBlckF4aXNEYXRhKFBlckF4aXNEYXRhJiBkYXRhLCBTY3JvbGxHcmFudWxhcmkKICAg
ICBDdXJ2ZSBjb2FzdFRpbWVDdXJ2ZTsKICAgICBnZXRBbmltYXRpb25QYXJhbWV0ZXJzRm9yR3Jh
bnVsYXJpdHkoZ3JhbnVsYXJpdHksIGFuaW1hdGlvblRpbWUsIHJlcGVhdE1pbmltdW1TdXN0YWlu
VGltZSwgYXR0YWNrVGltZSwgcmVsZWFzZVRpbWUsIGNvYXN0VGltZUN1cnZlLCBtYXhpbXVtQ29h
c3RUaW1lKTsKIAorICAgIGFuaW1hdGlvblRpbWUgKj0gc21vb3RoRmFjdG9yOworICAgIHJlcGVh
dE1pbmltdW1TdXN0YWluVGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgYXR0YWNrVGltZSAqPSBz
bW9vdGhGYWN0b3I7CisgICAgcmVsZWFzZVRpbWUgKj0gc21vb3RoRmFjdG9yOworICAgIG1heGlt
dW1Db2FzdFRpbWUgKj0gc21vb3RoRmFjdG9yOworCiAgICAgZGF0YS5kZXNpcmVkUG9zaXRpb24g
PSBuZXdQb3NpdGlvbjsKICAgICBpZiAoIWRhdGEuc3RhcnRUaW1lKQogICAgICAgICBkYXRhLmF0
dGFja1RpbWUgPSBhdHRhY2tUaW1lOwpAQCAtMzkyLDYgKzQxMCw4IEBAIHZvaWQgU2Nyb2xsQW5p
bWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckZpcmVkKCkKIAogICAgIGlmIChjb250aW51ZUFu
aW1hdGlvbikKICAgICAgICAgc3RhcnROZXh0VGltZXIoc3RkOjptYXgobWluaW11bVRpbWVySW50
ZXJ2YWwsIGRlbHRhVG9OZXh0RnJhbWUpKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2Nyb2xsYWJs
ZUFyZWEuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdElu
QW5pbWF0aW9uKTsKIAogICAgIG1fbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVuY3Rpb24oRmxvYXRQ
b2ludChtX2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV92ZXJ0aWNhbERhdGEuY3Vy
cmVudFBvc2l0aW9uKSk7CiB9CkBAIC00MDcsNSArNDI3LDMgQEAgYm9vbCBTY3JvbGxBbmltYXRp
b25TbW9vdGg6OmFuaW1hdGlvblRpbWVyQWN0aXZlKCkgY29uc3QKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCmluZGV4IDAyY2M0
ZWUyYmQuLjgxNzNmYTdlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbEFuaW1hdGlvblNtb290aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdGlvblNtb290aC5oCkBAIC0yNywxNCArMjcsMTMgQEAKIAogI2luY2x1ZGUgIlNjcm9s
bEFuaW1hdGlvbi5oIgogCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0KICNpbmNsdWRl
ICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0UG9pbnQ7CiBj
bGFzcyBTY3JvbGxhYmxlQXJlYTsKK2VudW0gY2xhc3MgU2Nyb2xsQ2xhbXBpbmcgOiB1aW50OF90
OwogCiBjbGFzcyBTY3JvbGxBbmltYXRpb25TbW9vdGggZmluYWw6IHB1YmxpYyBTY3JvbGxBbmlt
YXRpb24gewogcHVibGljOgpAQCAtNTEsNiArNTAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBm
bG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbChj
b25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Q3Vy
cmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKQEAgLTg5LDcgKzg5LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgaW50IHZpc2libGVMZW5ndGggeyAwIH07CiAgICAgfTsKIAot
ICAgIGJvb2wgdXBkYXRlUGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmLCBTY3JvbGxHcmFudWxhcml0
eSwgZmxvYXQgZGVsdGEsIGZsb2F0IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9hdCBtYXhTY3JvbGxQ
b3NpdGlvbik7CisgICAgYm9vbCB1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0YSYsIFNjcm9s
bEdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9zaXRpb24sIGZsb2F0
IG1heFNjcm9sbFBvc2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yID0gMSk7CiAgICAgYm9vbCBh
bmltYXRlU2Nyb2xsKFBlckF4aXNEYXRhJiwgTW9ub3RvbmljVGltZSBjdXJyZW50VGltZSk7CiAK
ICAgICB2b2lkIHJlcXVlc3RBbmltYXRpb25UaW1lckZpcmVkKCk7CkBAIC0xMDgsNCArMTA4LDMg
QEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxF
KFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ci5jcHAKaW5kZXggYTYxMTg2ODM3ZC4uNGQ1OThjNzVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZs
b2F0UG9pbnQuaCIKICNpbmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1X
aGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKQEAgLTUyLDYgKzUz
LDE4IEBAIFNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcihTY3JvbGxhYmxlQXJlYSYgc2Ny
b2xsYWJsZUFyZWEpCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJF
Ul9CQU5ESU5HKQogICAgICwgbV9zY3JvbGxDb250cm9sbGVyKCp0aGlzKQogI2VuZGlmCisgICAg
LCBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbChtYWtlVW5pcXVlPFNjcm9sbEFuaW1hdGlv
blNtb290aD4oc2Nyb2xsYWJsZUFyZWEsIG1fY3VycmVudFBvc2l0aW9uLCBbdGhpc10oRmxvYXRQ
b2ludCYmIHBvc2l0aW9uKSB7CisgICAgICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gbV9z
Y3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsVHlwZSgpOworICAgICAgICBtX3Njcm9sbGFibGVB
cmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyk7CisgICAg
ICAgIGJvb2wgdXBkYXRlZCA9IG1fc2Nyb2xsYWJsZUFyZWEucmVxdWVzdFNjcm9sbFBvc2l0aW9u
VXBkYXRlKHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpOworICAgICAgICBtX3Njcm9sbGFibGVB
cmVhLnNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CisgICAgICAgIGlm
ICh1cGRhdGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEZsb2F0U2l6ZSBkZWx0
YSA9IHBvc2l0aW9uIC0gbV9jdXJyZW50UG9zaXRpb247CisgICAgICAgIG1fY3VycmVudFBvc2l0
aW9uID0gV1RGTW92ZShwb3NpdGlvbik7CisgICAgICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChk
ZWx0YSk7CisgICAgfSkpCiB7CiB9CiAKQEAgLTc1LDYgKzg4LDE0IEBAIGJvb2wgU2Nyb2xsQW5p
bWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3Jh
bnVsYXJpdHksCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNj
cm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCkKK3sKKyAgICBtX2FuaW1hdGlv
blByb2dyYW1tYXRpY1Njcm9sbC0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3VycmVudFBvc2l0aW9u
KTsKKyAgICBhdXRvIG5ld1Bvc2l0aW9uID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFBvc2l0aW9u
RnJvbU9mZnNldChvZmZzZXQsIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsT3Jp
Z2luKCkpKTsKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c2Nyb2xsKG5ld1Bv
c2l0aW9uKTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbik7Cit9CisKIHZvaWQgU2Ny
b2xsQW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBv
aW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQogewogICAgIEZsb2F0UG9pbnQgbmV3UG9zaXRv
biA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0LCB0b0Zs
b2F0U2l6ZShtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CkBAIC0yNDUsNCArMjY2
LDMzIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlv
bkRlZmVycmFsRm9yUmVhc29uKFdoZWVsRXZlbnRUCiB9CiAjZW5kaWYKIAordm9pZCBTY3JvbGxB
bmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucygpCit7CisjaWYgIVVTRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRV9USU1FUikKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c3RvcCgp
OworI2VuZGlmCit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VTY3JvbGxBbmltYXRp
b25zKCkKK3sKKyNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQorICAgIG1f
YW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT5zZXJ2aWNlQW5pbWF0aW9uKCk7CisjZW5kaWYK
K30KKwordm9pZCBTY3JvbGxBbmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUoKQoreworICAgIG1f
YW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVuZ3RocygpOworfQor
Cit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcihTY3JvbGxiYXIq
KQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVu
Z3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xs
YmFyKFNjcm9sbGJhciopCit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGwtPnVw
ZGF0ZVZpc2libGVMZW5ndGhzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IGE1YzY5YzUzYjcuLjliN2Mw
OWI2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApAQCAtNDYs
NiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0UG9pbnQ7CiBjbGFz
cyBQbGF0Zm9ybVRvdWNoRXZlbnQ7CitjbGFzcyBTY3JvbGxBbmltYXRpb247CiBjbGFzcyBTY3Jv
bGxhYmxlQXJlYTsKIGNsYXNzIFNjcm9sbGJhcjsKIGNsYXNzIFdoZWVsRXZlbnRUZXN0TW9uaXRv
cjsKQEAgLTY4LDYgKzY5LDcgQEAgcHVibGljOgogICAgIC8vIFRoZSBiYXNlIGNsYXNzIGltcGxl
bWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0ZWx5LCBuZXZlciBhbmltYXRlcy4KICAg
ICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxh
cml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAKKyAgICB2b2lkIHNjcm9sbFRv
T2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVG9PZmZz
ZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNj
cm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAogICAgIFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxl
QXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWE7IH0KQEAgLTg1LDggKzg3LDgg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
KTsKICAgICBjb25zdCBGbG9hdFBvaW50JiBjdXJyZW50UG9zaXRpb24oKSBjb25zdCB7IHJldHVy
biBtX2N1cnJlbnRQb3NpdGlvbjsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNhbmNlbEFuaW1hdGlv
bnMoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsQW5pbWF0aW9ucygpOworICAgIHZpcnR1YWwgdm9pZCBz
ZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpOwogCiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRBcmVh
V2lsbFBhaW50KCkgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRW50ZXJlZENvbnRl
bnRBcmVhKCkgeyB9CkBAIC05NywxNiArOTksMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBtb3VzZUlzRG93bkluU2Nyb2xsYmFyKFNjcm9sbGJhciosIGJvb2wpIGNvbnN0IHsgfQogICAg
IHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRMaXZlUmVzaXplKCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGNvbnRlbnRzUmVzaXplZCgpIGNvbnN0IHsgfQotICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2
ZVJlc2l6ZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpOwogICAg
IHZpcnR1YWwgdm9pZCBjb250ZW50QXJlYURpZFNob3coKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
Y29udGVudEFyZWFEaWRIaWRlKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9ja092ZXJsYXlT
Y3JvbGxiYXJTdGF0ZVRvSGlkZGVuKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxi
YXJzQ2FuQmVBY3RpdmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9CisgICAgdmlydHVhbCB2
b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdmly
dHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopIHsgfQog
CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJQYXJ0TGF5ZXJzKFNjcm9sbGJh
ciopIHsgfQpAQCAtMTUxLDYgKzE1Myw4IEBAIHByb3RlY3RlZDoKICAgICBTY3JvbGxDb250cm9s
bGVyIG1fc2Nyb2xsQ29udHJvbGxlcjsKICNlbmRpZgogICAgIEZsb2F0UG9pbnQgbV9jdXJyZW50
UG9zaXRpb247CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQW5pbWF0aW9uPiBtX2FuaW1h
dGlvblByb2dyYW1tYXRpY1Njcm9sbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDg5MTE0OTEwM2QuLmY2ZDM1NjY1
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtNTQsNiArNTQsMjEg
QEAgZW51bSBjbGFzcyBTY3JvbGxQb3NpdGlvbkNsYW1wIDogdWludDhfdCB7CiAgICAgVG9Db250
ZW50RWRnZXMsCiB9OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKK2VudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JUeXBlIDogdWludDhfdCB7Cisg
ICAgSW5zdGFudCwKKyAgICBTbW9vdGgsCit9OworI2VuZGlmCisKK2VudW0gY2xhc3MgU2Nyb2xs
QmVoYXZpb3JTdGF0dXMgOiB1aW50OF90IHsKKyAgICBOb3RJbkFuaW1hdGlvbiwKKyAgICBJbk5v
bk5hdGl2ZUFuaW1hdGlvbiwKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKQorICAgIEluTmF0aXZlQW5pbWF0aW9uLAorI2VuZGlmCit9OworCiBpbmxp
bmUgU2Nyb2xsRGlyZWN0aW9uIGxvZ2ljYWxUb1BoeXNpY2FsKFNjcm9sbExvZ2ljYWxEaXJlY3Rp
b24gZGlyZWN0aW9uLCBib29sIGlzVmVydGljYWwsIGJvb2wgaXNGbGlwcGVkKQogewogICAgIHN3
aXRjaCAoZGlyZWN0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmlu
ZGV4IGIxMjZhOWMyYjcuLjFkMmMzMmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCkBAIC00NjEsMTAgKzQ2MSwxNCBAQCB2b2lkIFNjcm9sbFZpZXc6OmNvbXBsZXRl
VXBkYXRlc0FmdGVyU2Nyb2xsVG8oY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCiAgICAgdXBk
YXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpOwogfQogCi12b2lkIFNjcm9sbFZp
ZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlv
bikKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRp
b24mIHNjcm9sbFBvc2l0aW9uLCBib29sLyogYW5pbWF0ZWQqLykKIHsKICAgICBMT0dfV0lUSF9T
VFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
ICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNj
cm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlmIChwcm9oaWJpdHNT
Y3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00NzUsMTMgKzQ3OSwxNyBAQCB2b2lk
IFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3Jv
bGxQb3NpdGlvbikKIAogICAgIFNjcm9sbFBvc2l0aW9uIG5ld1Njcm9sbFBvc2l0aW9uID0gIWRl
bGVnYXRlc1Njcm9sbGluZygpID8gYWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRoaW5SYW5nZShzY3Jv
bGxQb3NpdGlvbikgOiBzY3JvbGxQb3NpdGlvbjsKIAotICAgIGlmICgoIWRlbGVnYXRlc1Njcm9s
bGluZygpIHx8IGN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6VXNlcikgJiYgbmV3
U2Nyb2xsUG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKKyAgICBpZiAoKCFkZWxl
Z2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlVz
ZXIpICYmIGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpOb3RJbkFuaW1hdGlvbiAmJiBuZXdTY3JvbGxQb3NpdGlvbiA9PSB0aGlzLT5zY3JvbGxQ
b3NpdGlvbigpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2
aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9u
KQorICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKKwogICAgIGlm
IChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUobmV3U2Nyb2xsUG9zaXRpb24pKQogICAgICAg
ICByZXR1cm47CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBvc2l0aW9uKTsKKyAg
ICBzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5Bbmlt
YXRpb24pOwogfQogCiBib29sIFNjcm9sbFZpZXc6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24gZGly
ZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTUzOCw3ICs1NDYsOCBA
QCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Nyb2xsUG9zaXRpb24m
IGRlc2lyZWRQb3NpdGlvbikKICAgICAKICAgICBpZiAoIW1hbmFnZXNTY3JvbGxiYXJzKCkpIHsK
ICAgICAgICAgaWYgKHNjcm9sbE9yaWdpbkNoYW5nZWQoKSkgewotICAgICAgICAgICAgU2Nyb2xs
YWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9t
UG9zaXRpb24oZGVzaXJlZFBvc2l0aW9uKSk7CisgICAgICAgICAgICBpZiAoIXJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZShkZXNpcmVkUG9zaXRpb24pKQorICAgICAgICAgICAgICAgIFNjcm9s
bGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJv
bVBvc2l0aW9uKGRlc2lyZWRQb3NpdGlvbikpOwogICAgICAgICAgICAgcmVzZXRTY3JvbGxPcmln
aW5DaGFuZ2VkKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5oCmluZGV4IDQzMDE2MGQ2YWUuLjUzOTgxMDgzOTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTI2MCw3ICsyNjAsNyBAQCBwdWJsaWM6CiAgICAg
U2Nyb2xsUG9zaXRpb24gY2FjaGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Nh
Y2hlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBGdW5jdGlvbnMgZm9yIHNjcm9sbGluZyB0
aGUgdmlldy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xs
UG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Ny
b2xsUG9zaXRpb24mLCBib29sIGFuaW1hdGVkID0gZmFsc2UpOwogICAgIHZvaWQgc2Nyb2xsQnko
Y29uc3QgSW50U2l6ZSYgcykgeyByZXR1cm4gc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRp
b24oKSArIHMpOyB9CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNjcm9sbHMgYnkgbGluZXMsIHBh
Z2VzIG9yIHBpeGVscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNw
cAppbmRleCA5NmQwZjMwMGIzLi4xNTA3MDRjMmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC03MSw2ICs3MSw5IEBAIFNjcm9sbGFibGVBcmVhOjpT
Y3JvbGxhYmxlQXJlYSgpCiAgICAgLCBtX3Njcm9sbE9yaWdpbkNoYW5nZWQoZmFsc2UpCiAgICAg
LCBtX2N1cnJlbnRTY3JvbGxUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihTY3JvbGxUeXBlOjpV
c2VyKSkKICAgICAsIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoZmFsc2UpCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICAsIG1f
Y3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oU2Nyb2xsQmVo
YXZpb3JUeXBlOjpJbnN0YW50KSkKKyNlbmRpZgogewogfQogCkBAIC0xNDIsNiArMTQ1LDEyIEBA
IGJvb2wgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBT
Y3JvbGxHcmFudWxhcml0eSBncmFudWxhCiAgICAgcmV0dXJuIHNjcm9sbEFuaW1hdG9yKCkuc2Ny
b2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7CiB9CiAKK3Zv
aWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBGbG9h
dFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQoreworICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Nyb2xs
VG9PZmZzZXRXaXRoQW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKKyAgICBzY3JvbGxBbmltYXRvcigp
LnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7Cit9CisKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9s
bFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9s
bENsYW1waW5nIGNsYW1waW5nKQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0
cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Nyb2xsVG9PZmZzZXRXaXRo
b3V0QW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKQEAgLTIyMSwxNiArMjMwLDE1IEBAIGJvb2wgU2Ny
b2xsYWJsZUFyZWE6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiB0
b3VjaEV2ZW50KQogLy8gTk9URTogT25seSBjYWxsZWQgZnJvbSBJbnRlcm5hbHMgZm9yIHRlc3Rp
bmcuCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzKGNv
bnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogeworICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRp
b25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKQorICAgICAgICByZXR1
cm47CisKICAgICBzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9uKG9mZnNldCk7CiB9CiAKIHZv
aWQgU2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24oY29uc3QgU2Ny
b2xsT2Zmc2V0JiBvZmZzZXQpCiB7Ci0gICAgU2Nyb2xsUG9zaXRpb24gcG9zaXRpb24gPSBzY3Jv
bGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0KTsKLSAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0
aW9uVXBkYXRlKHBvc2l0aW9uKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2Nyb2xsUG9zaXRp
b25DaGFuZ2VkKHBvc2l0aW9uKTsKKyAgICBzY3JvbGxQb3NpdGlvbkNoYW5nZWQoc2Nyb2xsUG9z
aXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjp3aWxs
U3RhcnRMaXZlUmVzaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5o
CmluZGV4IGQ3NDM4YzE1Y2QuLjU1NjcyZjgxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuaApAQCAtNjIsNyArNjIsMTEgQEAgaW5saW5lIGludCBvZmZzZXRGb3JP
cmllbnRhdGlvbihTY3JvbGxPZmZzZXQgb2Zmc2V0LCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmll
bnQKIAogY2xhc3MgU2Nyb2xsYWJsZUFyZWEgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2Nyb2xs
YWJsZUFyZWE+IHsKIHB1YmxpYzoKKyAgICBTY3JvbGxCZWhhdmlvclN0YXR1cyBjdXJyZW50U2Ny
b2xsQmVoYXZpb3JTdGF0dXMoKSB7IHJldHVybiBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1
czsgfQorICAgIHZvaWQgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0
dXMgc3RhdHVzKSB7IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzID0gc3RhdHVzOyB9CisK
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdy
YW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbENs
YW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3Jv
bGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICB2b2lkIHNjcm9sbFRv
T2Zmc2V0V2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwgZmxvYXQgb2Zmc2V0
KTsKIApAQCAtMjQyLDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsVHlwZSBjdXJyZW50
U2Nyb2xsVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbFR5cGU+KG1fY3Vy
cmVudFNjcm9sbFR5cGUpOyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsVHlwZShTY3JvbGxU
eXBlIHNjcm9sbFR5cGUpIHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihzY3JvbGxUeXBlKTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3VycmVudFNjcm9sbEJl
aGF2aW9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbEJlaGF2aW9yVHlw
ZT4obV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQgc2V0Q3VycmVudFNj
cm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVoYXZpb3JUeXBlKSB7
IG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3Jv
bGxCZWhhdmlvclR5cGUpOyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xsU2hvdWxkQ2xlYXJM
YXRjaGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0
YXRlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZShib29sIHNo
b3VsZENsZWFyKSB7IG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUgPSBzaG91bGRDbGVh
cjsgfQogCkBAIC0zNzgsNiArMzg3LDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2N1cnJl
bnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4IHsgMCB9OwogI2VuZGlmCiAKKyAgICBTY3JvbGxCZWhh
dmlvclN0YXR1cyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyB7IFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpOb3RJbkFuaW1hdGlvbiB9OworCiAgICAgLy8gVGhlcmUgYXJlIDggcG9zc2libGUg
Y29tYmluYXRpb25zIG9mIHdyaXRpbmcgbW9kZSBhbmQgZGlyZWN0aW9uLiBTY3JvbGwgb3JpZ2lu
IHdpbGwgYmUgbm9uLXplcm8gaW4gdGhlIHggb3IgeSBheGlzCiAgICAgLy8gaWYgdGhlcmUgaXMg
YW55IHJldmVyc2VkIGRpcmVjdGlvbiBvciB3cml0aW5nLW1vZGUuIFRoZSBjb21iaW5hdGlvbnMg
YXJlOgogICAgIC8vIHdyaXRpbmctbW9kZSAvIGRpcmVjdGlvbiAgICAgc2Nyb2xsT3JpZ2luLngo
KSBzZXQgICAgc2Nyb2xsT3JpZ2luLnkoKSBzZXQKQEAgLTQwMyw2ICs0MTQsOSBAQCBwcml2YXRl
OgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZCA6IDE7CiAgICAgdW5zaWduZWQg
bV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9sbFR5cGUKICAgICB1bnNpZ25lZCBtX3Nj
cm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9s
bEJlaGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0
b3JHZW5lcmljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvU2Nyb2xsQW5p
bWF0b3JHZW5lcmljLmNwcAppbmRleCAyMDhhZjdiODQ3Li5hZDMzMmMzMjgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3JvbGxBbmltYXRvckdl
bmVyaWMuY3BwCkBAIC0xNjIsNiArMTYyLDggQEAgdm9pZCBTY3JvbGxBbmltYXRvckdlbmVyaWM6
OndpbGxFbmRMaXZlUmVzaXplKCkKIAogdm9pZCBTY3JvbGxBbmltYXRvckdlbmVyaWM6OnVwZGF0
ZVBvc2l0aW9uKEZsb2F0UG9pbnQmJiBwb3NpdGlvbikKIHsKKyAgICBpZiAobV9zY3JvbGxhYmxl
QXJlYS5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocm91bmRlZEludFBvaW50KHBvc2l0aW9u
KSkpCisgICAgICAgIHJldHVybjsKICAgICBGbG9hdFNpemUgZGVsdGEgPSBwb3NpdGlvbiAtIG1f
Y3VycmVudFBvc2l0aW9uOwogICAgIG1fY3VycmVudFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlv
bik7CiAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGRlbHRhKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBmNTkxNzY3MmVlLi42
Mzc1M2FkMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLm1tCkBAIC0xMTU1LDYgKzExNTUsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFj
Ojpub3RpZnlDb250ZW50QXJlYVNjcm9sbGVkKGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiAKIHZv
aWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNhbmNlbEFuaW1hdGlvbnMoKQogeworICAgIFNjcm9sbEFu
aW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKCk7CiAgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VM
b2FkID0gZmFsc2U7CiAKICAgICBpZiAoc2Nyb2xsYmFyUGFpbnRUaW1lcklzQWN0aXZlKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGY4ZDNhNDkyNWEuLjZkMWY4
NTdjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC01ODEsMjAg
KzU4MSwyOCBAQCBzdGF0aWMgdm9pZCBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKFJlbmRlckxheWVy
JiBsYXllcikKICAgICBsYXllci5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9u
aXRvcihwYWdlLndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6
OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcgY2xhbXBpbmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3
TGVmdCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGlu
ZyBjbGFtcGluZykKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQog
ICAgICAgICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0g
ICAgbGF5ZXIoKS0+c2Nyb2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Nyb2xsVHlwZSwgY2xhbXBp
bmcpOworICAgIGxheWVyKCktPnNjcm9sbFRvWFBvc2l0aW9uKG5ld0xlZnQsIHNjcm9sbFR5cGUs
IGFuaW1hdGVkLCBjbGFtcGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3Ao
aW50IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGlu
ZykKK3ZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSBz
Y3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAg
ICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAgICAgICByZXR1cm47CiAg
ICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Nyb2xs
VG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgbGF5ZXIoKS0+
c2Nyb2xsVG9ZUG9zaXRpb24obmV3VG9wLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcp
OworfQorCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9z
aXRpb24mIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNj
cm9sbENsYW1waW5nIGNsYW1waW5nKQoreworICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkgfHwg
IWxheWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKCps
YXllcigpKTsKKyAgICBsYXllcigpLT5zY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxU
eXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCiB2b2lkIFJlbmRlckJveDo6YWJzb2x1dGVS
ZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0
ZWRPZmZzZXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggNDk1
NDgxNDA1NC4uMjIxOTI4MDU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApA
QCAtMjQ3LDggKzI0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBzY3JvbGxUb3AoKSBj
b25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwg
aW50IHNjcm9sbEhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0
KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3Jv
bGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3Jv
bGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRl
ZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAog
ICAgIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9tYXJn
aW5Cb3gudG9wKCk7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94LmJvdHRvbSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA1NDRmMjA2NDk1Li40N2JjZjdkNTFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI1NzcsMTYgKzI1NzcsMjQg
QEAgdm9pZCBSZW5kZXJMYXllcjo6YXBwbHlQb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb25JZk5lZWRl
ZCgpCiAgICAgbV9wb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb24gPSBXVEY6Om51bGxvcHQ7CiB9CiAK
LXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlIHNj
cm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5kZXJMYXllcjo6c2Ny
b2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRl
ZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7CiAgICAgU2Nyb2xsUG9zaXRpb24gcG9zaXRp
b24oeCwgbV9zY3JvbGxQb3NpdGlvbi55KCkpOwotICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9m
ZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICBz
Y3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcp
OwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xs
VHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVyTGF5
ZXI6OnNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wg
YW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIFNjcm9sbFBvc2l0aW9u
IHBvc2l0aW9uKG1fc2Nyb2xsUG9zaXRpb24ueCgpLCB5KTsKLSAgICBzY3JvbGxUb09mZnNldChz
Y3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7
CisgICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgYW5pbWF0ZWQsIGNs
YW1waW5nKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBT
Y3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmlt
YXRlZCwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgaWYgKGFuaW1hdGVkKQorICAg
ICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9u
KHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIGVsc2UKKyAgICAgICAgc2Ny
b2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlw
ZSwgY2xhbXBpbmcpOwogfQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xs
T2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjU5Niwy
MiArMjYwNCw2OCBAQCBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0
KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjbwogCiB2b2lkIFJlbmRlckxheWVy
OjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Nyb2xs
VHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRT
Y3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRpZgor
CisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5j
YW5jZWxBbmltYXRpb25zKCk7CisKICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNl
dCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZz
ZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9sbE9mZnNldDsKLSAgICBpZiAoY2xhbXBlZFNjcm9sbE9m
ZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNl
dCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgICAgIC8vIElmIFVJU2Nyb2xsVmlldyBpcyBw
ZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHNjcm9sbCBvZmZzZXQgb2YgdGhlIFdl
YiBwcm9jZXNzIG1pZ2h0IGJlIG92ZXJyaWRkZW4uCisgICAgICAgIC8vIFNvIHdlIG5lZWQgdG8g
Y2FsbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUgaGVyZSBhbmQgbGV0IGl0IGJlIGNoZWNr
ZWQgb24gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIC8vIElmIHRoZSBzY3JvbGwgb2Zmc2V0IG9u
IHRoZSBVSSBwcm9jZXNzIGlzIGRpZmZlcmVudCwgdGhlIGNvcnJlY3Qgc2Nyb2xsIG9mZnNldCBu
ZWVkcyB0byBzeW5jIGJhY2sgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAoY3VycmVu
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZl
QW5pbWF0aW9uKQorICAgICAgICAgICAgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9s
bFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CisjZW5kaWYKICAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVu
dFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKIAog
ICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0g
ICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2Uo
KS5zY3JvbGxpbmdDb29yZGluYXRvcigpKQotICAgICAgICBoYW5kbGVkID0gc2Nyb2xsaW5nQ29v
cmRpbmF0b3ItPnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgc2Nyb2xsUG9zaXRp
b25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpKTsKKyAgICBoYW5kbGVkID0gcmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Ny
b2xsT2Zmc2V0KSk7CiAjZW5kaWYKIAotICAgIGlmICghaGFuZGxlZCkKKyAgICBpZiAoIWhhbmRs
ZWQpIHsKICAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNsYW1wZWRTY3Jv
bGxPZmZzZXQsIGNsYW1waW5nKTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Ny
b2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBzZXRDdXJy
ZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworfQorCitib29sIFJlbmRlckxheWVy
OjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0
aW9uKQoreworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgaWYgKFNjcm9sbGluZ0Nv
b3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5zY3JvbGxpbmdDb29yZGlu
YXRvcigpKQorICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgcG9zaXRpb24pOworI2VuZGlmCisgICAgcmV0dXJuIGZh
bHNlOworfQogCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24o
Y29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcgY2xhbXBpbmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJy
ZW50U2Nyb2xsVHlwZSgpOworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAg
ICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3Ro
KTsKKyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJv
bU9mZnNldChvZmZzZXQpKSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91
c1Njcm9sbFR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBTY3Jv
bGxPZmZzZXQgbmV3U2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNs
YW1wZWQgPyBjbGFtcFNjcm9sbE9mZnNldChvZmZzZXQpIDogb2Zmc2V0OworICAgIGlmIChjdXJy
ZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25O
YXRpdmVBbmltYXRpb24pCisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9u
cygpOworICAgIGlmIChuZXdTY3JvbGxPZmZzZXQgIT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisg
ICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3U2Ny
b2xsT2Zmc2V0KTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUp
OwogfQogCkBAIC0yNjQ3LDcgKzI3MDEsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhj
b25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCiAjZW5kaWYKICAgICB9CiAgICAgCi0gICAg
aWYgKG1fc2Nyb2xsUG9zaXRpb24gPT0gbmV3UG9zaXRpb24pIHsKKyAgICBpZiAobV9zY3JvbGxQ
b3NpdGlvbiA9PSBuZXdQb3NpdGlvbiAmJiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9
PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pIHsKICAgICAgICAgLy8gRklY
TUU6IE5vdGhpbmcgZ3VhcmFudGVlcyB3ZSBnZXQgYSBzY3JvbGxUbygpIHdpdGggYW4gdW5jaGFu
Z2VkIHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgYSB1c2VyIGdlc3R1cmUuCiAgICAgICAgIC8vIFRo
ZSBTY3JvbGxpbmdDb29yZGluYXRvciBwcm9iYWJseSBuZWVkcyB0byBtZXNzYWdlIHRoZSBtYWlu
IHRocmVhZCB3aGVuIGEgZ2VzdHVyZSBlbmRzLgogICAgICAgICBpZiAocmVxdWlyZXNTY3JvbGxQ
b3NpdGlvblJlY29uY2lsaWF0aW9uKCkpIHsKQEAgLTI3OTIsMTAgKzI4NDYsMTEgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0
ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgTGF5b3V0UmVjdCByZXZlYWxSZWN0ID0gZ2V0UmVj
dFRvRXhwb3NlKGxheWVyQm91bmRzLCBsb2NhbEV4cG9zZVJlY3QsIGluc2lkZUZpeGVkLCBvcHRp
b25zLmFsaWduWCwgb3B0aW9ucy5hbGlnblkpOwogCiAgICAgICAgIFNjcm9sbE9mZnNldCBjbGFt
cGVkU2Nyb2xsT2Zmc2V0ID0gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KCkgKyB0b0lu
dFNpemUocm91bmRlZEludFJlY3QocmV2ZWFsUmVjdCkubG9jYXRpb24oKSkpOwotICAgICAgICBp
ZiAoY2xhbXBlZFNjcm9sbE9mZnNldCAhPSBzY3JvbGxPZmZzZXQoKSkgeworICAgICAgICBpZiAo
Y3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5v
dEluQW5pbWF0aW9uIHx8IGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkpIHsK
ICAgICAgICAgICAgIFNjcm9sbE9mZnNldCBvbGRTY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQo
KTsKLSAgICAgICAgICAgIHNjcm9sbFRvT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpOwotICAg
ICAgICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXREaWZmZXJlbmNlID0gc2Nyb2xsT2Zmc2V0KCkg
LSBvbGRTY3JvbGxPZmZzZXQ7CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gKGJveC0+ZWxl
bWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCAqYm94LT5lbGVt
ZW50KCkpKTsKKyAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gcm9t
T2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFu
aW1hdGVkKTsKKyAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSA9IGNs
YW1wZWRTY3JvbGxPZmZzZXQgLSBvbGRTY3JvbGxPZmZzZXQ7CiAgICAgICAgICAgICBsb2NhbEV4
cG9zZVJlY3QubW92ZSgtc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSk7CiAgICAgICAgICAgICBuZXdS
ZWN0ID0gTGF5b3V0UmVjdChib3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKEZsb2F0
UmVjdChsb2NhbEV4cG9zZVJlY3QpKSwgVXNlVHJhbnNmb3JtcykuYm91bmRpbmdCb3goKSk7CiAg
ICAgICAgIH0KQEAgLTI4MTUsMTAgKzI4NzAsMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xs
UmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQK
ICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0gZnJhbWVWaWV3LnZpc2libGVD
b250ZW50UmVjdChMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsKICAgICAgICAgICAgICAg
ICBMYXlvdXRSZWN0IGV4cG9zZVJlY3QgPSBnZXRSZWN0VG9FeHBvc2Uodmlld1JlY3QsIGFic29s
dXRlUmVjdCwgaW5zaWRlRml4ZWQsIG9wdGlvbnMuYWxpZ25YLCBvcHRpb25zLmFsaWduWSk7CiAK
LSAgICAgICAgICAgICAgICBJbnRQb2ludCBzY3JvbGxPZmZzZXQocm91bmRlZEludFBvaW50KGV4
cG9zZVJlY3QubG9jYXRpb24oKSkpOworICAgICAgICAgICAgICAgIEludFBvaW50IHNjcm9sbFBv
c2l0aW9uKHJvdW5kZWRJbnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkpKTsKICAgICAgICAg
ICAgICAgICAvLyBBZGp1c3Qgb2Zmc2V0cyBpZiB0aGV5J3JlIG91dHNpZGUgb2YgdGhlIGFsbG93
YWJsZSByYW5nZS4KLSAgICAgICAgICAgICAgICBzY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQu
Y29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1lVmlldy5jb250ZW50
c1NpemUoKSkpOwotICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihz
Y3JvbGxPZmZzZXQpOworICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9z
aXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1lVmlldy5j
b250ZW50c1NpemUoKSkpOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNl
IGNvbnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAgICAg
Ly8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKKyAg
ICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gb3duZXJFbGVtZW50LT5jb250ZW50RG9jdW1l
bnQoKSAmJiBvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQo
KSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgKm93bmVyRWxlbWVudC0+
Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBm
cmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGFuaW1hdGVkKTsKIAog
ICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxp
bmcgPT0gU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8IGZyYW1lVmlldy5z
YWZlVG9Qcm9wYWdhdGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHBh
cmVudExheWVyID0gb3duZXJFbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOwpA
QCAtMjg1Nyw3ICsyOTE1LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2li
bGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgICAg
ICAvLyBBdm9pZCBzY3JvbGxpbmcgdG8gdGhlIHJvdW5kZWQgdmFsdWUgb2YgcmV2ZWFsUmVjdC5s
b2NhdGlvbigpIGlmIHdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdG8gc2Nyb2xsCiAgICAgICAgICAg
ICBpZiAocmV2ZWFsUmVjdCAhPSB2aWV3UmVjdCkgewogICAgICAgICAgICAgICAgIFNjcm9sbE9m
ZnNldCBjbGFtcGVkU2Nyb2xsUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQocmV2ZWFsUmVjdC5s
b2NhdGlvbigpKS5jb25zdHJhaW5lZEJldHdlZW4obWluU2Nyb2xsUG9zaXRpb24sIG1heFNjcm9s
bFBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24o
Y2xhbXBlZFNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxk
IHdlIHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAgICAg
Ly8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKKyAg
ICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3Vt
ZW50RWxlbWVudCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCAqcmVu
ZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBm
cmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0aW9uLCBhbmltYXRl
ZCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVybW9z
dCB2aWV3IG9mIGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0aGlzIHZpZXcgd2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNmNhNDIyYjdiMi4uOGM5Nzc4
Mzc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTUwLDYgKzUw
LDcgQEAKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNp
bmNsdWRlICJSZW5kZXJQdHIuaCIKKyNpbmNsdWRlICJTY3JvbGxCZWhhdmlvci5oIgogI2luY2x1
ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CkBAIC0xMzQsNiArMTM1LDcgQEAgc3RydWN0IFNjcm9sbFJlY3RUb1Zpc2libGVP
cHRpb25zIHsKICAgICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCB7IFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCB9OwogICAgIGNvbnN0IFNjcm9sbEFsaWdubWVudCYg
YWxpZ25ZIHsgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkIH07CiAgICAgU2hv
dWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyBzaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xs
aW5nIHsgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfTsKKyAgICBTY3JvbGxC
ZWhhdmlvciBiZWhhdmlvciB7IFNjcm9sbEJlaGF2aW9yOjpBdXRvIH07CiB9OwogCiBjbGFzcyBS
ZW5kZXJMYXllciBmaW5hbCA6IHB1YmxpYyBTY3JvbGxhYmxlQXJlYSB7CkBAIC00MzksOSArNDQx
LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbEJ5UmVjdXJzaXZlbHkoY29uc3QgSW50U2l6
ZSYgZGVsdGEsIFNjcm9sbGFibGVBcmVhKiogc2Nyb2xsZWRBcmVhID0gbnVsbHB0cik7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYs
IFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0g
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xs
VG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYsIFNjcm9sbFR5cGUgPSBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6
OkNsYW1wZWQpOwogCi0gICAgdm9pZCBzY3JvbGxUb1hQb3NpdGlvbihpbnQgeCwgU2Nyb2xsVHlw
ZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7Ci0gICAgdm9pZCBz
Y3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3Jv
bGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRh
dGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2Nyb2xsVG9Y
UG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5n
ID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24o
aW50IHksIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYsIFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0g
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCiAgICAgLy8gVGhlc2UgYXJlIG9ubHkgdXNlZCBi
eSBtYXJxdWVlLgogICAgIHZvaWQgc2Nyb2xsVG9YT2Zmc2V0KGludCB4KSB7IHNjcm9sbFRvT2Zm
c2V0KFNjcm9sbE9mZnNldCh4LCBzY3JvbGxPZmZzZXQoKS55KCkpLCBTY3JvbGxUeXBlOjpQcm9n
cmFtbWF0aWMsIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggMjVjZDJkMzNhNy4uYzMzZTkwNjBmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtNzQzLDcg
Kzc0Myw3IEBAIGludCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxMZWZ0KCkgY29uc3QKICAgICByZXR1
cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlckxpc3RCb3g6OnNldFNjcm9sbExlZnQo
aW50LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKIH0KIApAQCAtNzYwLDcg
Kzc2MCw3IEBAIHN0YXRpYyB2b2lkIHNldHVwV2hlZWxFdmVudFRlc3RNb25pdG9yKFJlbmRlckxp
c3RCb3gmIHJlbmRlcmVyKQogICAgIHJlbmRlcmVyLnNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxF
dmVudFRlc3RNb25pdG9yKHJlbmRlcmVyLnBhZ2UoKS53aGVlbEV2ZW50VGVzdE1vbml0b3IoKSk7
CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9s
bFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3Ao
aW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpCiB7CiAgICAgLy8g
RGV0ZXJtaW5lIGFuIGluZGV4IGFuZCBzY3JvbGwgdG8gaXQuICAgIAogICAgIGludCBpbmRleCA9
IG5ld1RvcCAvIGl0ZW1IZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5oCmluZGV4IDY1ZDkyMjZiM2EuLjI1YzkwNjUxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTA2LDggKzEwNiw4IEBAIHByaXZhdGU6CiAgICAg
aW50IHNjcm9sbFRvcCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxXaWR0aCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwg
Ym9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGlu
dCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwogCiAgICAgYm9v
bCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25z
dCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50
JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5jcHAKaW5kZXggOWVlODg4ODY3MS4uNGRmN2QzMThkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAg
LTM3NiwxMyArMzc2LDEzIEBAIGludCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNjcm9s
bFRvcCgpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2Nyb2xsVG9wKCk7CiB9
CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGludCBu
ZXdMZWZ0LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBlLCBib29s
LCBTY3JvbGxDbGFtcGluZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxlbWVudCgpKQogICAgICAg
ICBpbm5lclRleHRFbGVtZW50KCktPnNldFNjcm9sbExlZnQobmV3TGVmdCk7CiB9CiAKLXZvaWQg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Ny
b2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCit2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZTo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1w
aW5nKQogewogICAgIGlmIChpbm5lclRleHRFbGVtZW50KCkpCiAgICAgICAgIGlubmVyVGV4dEVs
ZW1lbnQoKS0+c2V0U2Nyb2xsVG9wKG5ld1RvcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggM2Y1Nzg2ZGZl
NC4uNjY2YWEzMTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTcsOCArNTcsOCBAQCBwcml2YXRlOgog
ICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsV2lkdGgo
KSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcp
IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5
cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNjcm9sbFRv
cChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKICAgICBi
b29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0
aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gbnVsbHB0ciwgUmVuZGVyQm94KiBz
dGFydEJveCA9IG51bGxwdHIsIGNvbnN0IEludFBvaW50JiB3aGVlbEV2ZW50QWJzb2x1dGVQb2lu
dCA9IEludFBvaW50KCkpIGZpbmFsOwogICAgIGJvb2wgbG9naWNhbFNjcm9sbChTY3JvbGxMb2dp
Y2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIEVs
ZW1lbnQqKiBzdG9wRWxlbWVudCA9IDApIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDVkY2IyMWM2NDYuLjAwN2E0ZDEzOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03MzYs
NiArNzM2LDggQEAgcHVibGljOgogICAgIGJvb2wgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygp
IGNvbnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnVzZVRvdWNoT3ZlcmZsb3dTY3Jv
bGxpbmc7IH0KICNlbmRpZgogCisgICAgYm9vbCB1c2VTbW9vdGhTY3JvbGxpbmcoKSBjb25zdCB7
IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT51c2VTbW9vdGhTY3JvbGxpbmc7IH0KKwog
I2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgVGV4dFNpemVBZGp1c3RtZW50IHRleHRT
aXplQWRqdXN0KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFNpemVB
ZGp1c3Q7IH0KICAgICBBdXRvc2l6ZVN0YXR1cyBhdXRvc2l6ZVN0YXR1cygpIGNvbnN0OwpAQCAt
MTI2Nyw2ICsxMjY5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlVG91Y2hPdmVyZmxvd1Nj
cm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB1c2VUb3VjaE92
ZXJmbG93U2Nyb2xsaW5nLCB2KTsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHNldFVzZVNtb290aFNj
cm9sbGluZyhib29sIHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCB1c2VTbW9v
dGhTY3JvbGxpbmcsIHYpOyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIHZv
aWQgc2V0VGV4dFNpemVBZGp1c3QoVGV4dFNpemVBZGp1c3RtZW50IGFkanVzdG1lbnQpIHsgU0VU
X1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB0ZXh0U2l6ZUFkanVzdCwgYWRqdXN0bWVudCk7IH0K
ICAgICB2b2lkIHNldEF1dG9zaXplU3RhdHVzKEF1dG9zaXplU3RhdHVzKTsKQEAgLTE3MDQsNiAr
MTcwOCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNlVG91Y2hPdmVyZmxv
d1Njcm9sbGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorICAgIHN0YXRpYyBib29s
IGluaXRpYWxVc2VTbW9vdGhTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgc3Rh
dGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIoKSB7IHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7IH0KICAgICBzdGF0
aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgaW5pdGlhbEFwcGxlQ29sb3JGaWx0ZXIoKSB7IHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGZiMzIwODIzMzcuLmQyYTUzMWZhMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBiYWNrZmFjZVZp
c2liaWxpdHkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQmFja2Zh
Y2VWaXNpYmlsaXR5KCkpKQogICAgICwgdXNlckRyYWcoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJl
bmRlclN0eWxlOjppbml0aWFsVXNlckRyYWcoKSkpCiAgICAgLCB0ZXh0T3ZlcmZsb3coc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVGV4dE92ZXJmbG93KCkpKQorICAg
ICwgdXNlU21vb3RoU2Nyb2xsaW5nKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6
aW5pdGlhbFVzZVNtb290aFNjcm9sbGluZygpKSkKICAgICAsIG1hcmdpbkJlZm9yZUNvbGxhcHNl
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihNYXJnaW5Db2xsYXBzZTo6Q29sbGFwc2UpKQogICAgICwg
bWFyZ2luQWZ0ZXJDb2xsYXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTWFyZ2luQ29sbGFwc2U6
OkNvbGxhcHNlKSkKICAgICAsIGFwcGVhcmFuY2Uoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRl
clN0eWxlOjppbml0aWFsQXBwZWFyYW5jZSgpKSkKQEAgLTE4MCw2ICsxODEsNyBAQCBpbmxpbmUg
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25z
dCBTdHlsZVJhcmVOb25JbgogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KG8uYmFja2ZhY2VWaXNp
YmlsaXR5KQogICAgICwgdXNlckRyYWcoby51c2VyRHJhZykKICAgICAsIHRleHRPdmVyZmxvdyhv
LnRleHRPdmVyZmxvdykKKyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhvLnVzZVNtb290aFNjcm9s
bGluZykKICAgICAsIG1hcmdpbkJlZm9yZUNvbGxhcHNlKG8ubWFyZ2luQmVmb3JlQ29sbGFwc2Up
CiAgICAgLCBtYXJnaW5BZnRlckNvbGxhcHNlKG8ubWFyZ2luQWZ0ZXJDb2xsYXBzZSkKICAgICAs
IGFwcGVhcmFuY2Uoby5hcHBlYXJhbmNlKQpAQCAtMjc4LDYgKzI4MCw3IEBAIGJvb2wgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIGJhY2tmYWNlVmlzaWJpbGl0eSA9PSBvLmJhY2tmYWNl
VmlzaWJpbGl0eQogICAgICAgICAmJiB1c2VyRHJhZyA9PSBvLnVzZXJEcmFnCiAgICAgICAgICYm
IHRleHRPdmVyZmxvdyA9PSBvLnRleHRPdmVyZmxvdworICAgICAgICAmJiB1c2VTbW9vdGhTY3Jv
bGxpbmcgPT0gby51c2VTbW9vdGhTY3JvbGxpbmcKICAgICAgICAgJiYgbWFyZ2luQmVmb3JlQ29s
bGFwc2UgPT0gby5tYXJnaW5CZWZvcmVDb2xsYXBzZQogICAgICAgICAmJiBtYXJnaW5BZnRlckNv
bGxhcHNlID09IG8ubWFyZ2luQWZ0ZXJDb2xsYXBzZQogICAgICAgICAmJiBhcHBlYXJhbmNlID09
IG8uYXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggMTljNTkxYjJkMS4uMTZhMjg1
MTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xODEsNiArMTgxLDcgQEAgcHVibGljOgog
CiAgICAgdW5zaWduZWQgdXNlckRyYWcgOiAyOyAvLyBVc2VyRHJhZwogICAgIHVuc2lnbmVkIHRl
eHRPdmVyZmxvdyA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IGxpbmVzIHRoYXQgc3BpbGwgb3V0IHNo
b3VsZCBiZSB0cnVuY2F0ZWQgd2l0aCAiLi4uIgorICAgIHVuc2lnbmVkIHVzZVNtb290aFNjcm9s
bGluZyA6IDE7IC8vIFNjcm9sbEJlaGF2aW9yCiAgICAgdW5zaWduZWQgbWFyZ2luQmVmb3JlQ29s
bGFwc2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIG1hcmdpbkFmdGVyQ29s
bGFwc2UgOiAyOyAvLyBNYXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIGFwcGVhcmFuY2UgOiA2
OyAvLyBFQXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVC
dWlsZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252
ZXJ0ZXIuaAppbmRleCA3ZjNmMGNiYzRlLi5lMzgyMDRmNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTI5LDYgKzEyOSw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgYm9vbCBjb252ZXJ0T3ZlcmZsb3dTY3JvbGxpbmcoQnVpbGRlclN0YXRl
JiwgY29uc3QgQ1NTVmFsdWUmKTsKICNlbmRpZgogICAgIHN0YXRpYyBGb250RmVhdHVyZVNldHRp
bmdzIGNvbnZlcnRGb250RmVhdHVyZVNldHRpbmdzKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1Zh
bHVlJik7CisgICAgc3RhdGljIGJvb2wgY29udmVydFNtb290aFNjcm9sbGluZyhCdWlsZGVyU3Rh
dGUmLCBjb25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBGb250U2VsZWN0aW9uVmFsdWUgY29u
dmVydEZvbnRXZWlnaHRGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgRm9u
dFNlbGVjdGlvblZhbHVlIGNvbnZlcnRGb250U3RyZXRjaEZyb21WYWx1ZShjb25zdCBDU1NWYWx1
ZSYpOwogICAgIHN0YXRpYyBPcHRpb25hbDxGb250U2VsZWN0aW9uVmFsdWU+IGNvbnZlcnRGb250
U3R5bGVGcm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKQEAgLTE0MDMsNiArMTQwNCwxMSBAQCBp
bmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0T3ZlcmZsb3dTY3JvbGxpbmcoQnVp
bGRlclN0YXRlJiwgY29uc3QgQ1NTVgogfQogI2VuZGlmCiAKK2lubGluZSBib29sIEJ1aWxkZXJD
b252ZXJ0ZXI6OmNvbnZlcnRTbW9vdGhTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NT
VmFsdWUmIHZhbHVlKQoreworICAgIHJldHVybiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4o
dmFsdWUpLnZhbHVlSUQoKSA9PSBDU1NWYWx1ZVNtb290aDsKK30KKwogaW5saW5lIFNWR0xlbmd0
aFZhbHVlIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTVkdMZW5ndGhWYWx1ZShCdWlsZGVyU3Rh
dGUmLCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIFNWR0xlbmd0aFZhbHVl
Ojpmcm9tQ1NTUHJpbWl0aXZlVmFsdWUoZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVl
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZmEzYjRlMzg2My4uZDIx
MmYxNzdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTc0Niw3ICsx
NzQ2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjp1bmNvbnN0cmFpbmVkU2Nyb2xs
VG8oRWxlbWVudCYgZWxlbWVudCwgZG91YmxlIHgsIGQKICAgICBpZiAoIWRvY3VtZW50IHx8ICFk
b2N1bWVudC0+dmlldygpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yIH07CiAKLSAgICBlbGVtZW50LnNjcm9sbFRvKHsgeCwgeSB9LCBTY3JvbGxDbGFtcGlu
Zzo6VW5jbGFtcGVkKTsKKyAgICBlbGVtZW50LnNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucyh4LCB5
KSwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBmZWIwZDM2YTk3Li5mYWM1NDY2YmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBA
CisyMDE5LTEyLTExICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBuYXRpdmUgc2Ny
b2xsIGludGVyZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMg
V2FuZy4KKworICAgICAgICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBlcmlt
ZW50YWwgZmVhdHVyZS4gT24gaW9zIHBsYXRmb3JtLCB1c2UgbmF0aXZlIGFuaW1hdGVkIHNjcm9s
bGluZworICAgICAgICBpbnRlcmZhY2VzIHRvIHBlcmZvcm1hbmNlIHNtb290aCBzY3JvbGwgYW5k
IHNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisKKyAgICAgICAg
KEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKToKKyAg
ICAgICAgKEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6ZHVtcCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW06CisgICAgICAgIChwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVs
KTogSGVscCBmdW5jdGlvbiB0byBjaGVjayBpZiB0d28gZmxvYXQgcG9pbnRzIGFyZSBub3QgZXF1
YWwgYnV0IGluIHRoZSBzYW1lIGRldmljZSBwaXhlbC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9z
Y3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46YW5pbWF0ZWQ6XSk6IEFk
ZCBhbmltYXRlZCBmbGFnIHRvIHN0YXJ0IGEgYW5pbWF0ZWQgc2Nyb2xsIGlmIG5lZWRlZC4KKyAg
ICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246XSk6
IFNlbmQgc3JvbGwgZW5kIG1lc3NhZ2UgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoLVtX
S1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbE9yaWdpbjpdKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFs
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOiBQcm92aWRlIGludGVyZmFj
ZSBmb3IgYW5pbWF0ZWQgc2Nyb2xsaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKTogQWRk
IGFuaW1hdGVkIGZsYWcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOiBT
eW5jIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJl
cXVlc3RzU2Nyb2xsKTogQWRkIGFuaW1hdGVkIHNjcm9sbGluZyBpbmZvIHRvIG1fcmVxdWVzdGVk
U2Nyb2xsSW5mby4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFu
Z2UpOiBTeW5jIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgdG8gdGhlIFdlYiBwcm9jZXNzLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxp
bmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0
by4gSXQncyBzcGVjaWZpYyB0byB0aGUgcm9vdCBub2RlLgorICAgICAgICAqIFVJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlk
U2Nyb2xsKTogQWRkIGFuaW1hdGVkIGluZm8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxp
bmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRp
b246XSk6IFNlbmQgc2NvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAo
V2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0
ZUFmdGVyQ2hpbGRyZW4pOiBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBXZWIgcHJvY2Vz
cyBpc24ndCBlcXVhbCB0byB0aGUgVUkgcHJvY2VzcywKKyAgICAgICAgdGhlIHNjcm9sbCBwb3Np
dGlvbiBzaG91bGQgYmUgc3luY2hyb25pemVkLCBldmVuIHRoZXJlJ3Mgbm8gc2Nyb2xsaW5nIHBl
cmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycyk6IENh
bGxpbmcgdGhlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcgaW50ZXJmYWNlIGZvciBzbW9vdGgg
c2Nyb2xsLgorICAgICAgICBJZiB0aGVyZSdzIGEgc2Nyb2xsIGFuaW1hdGlvbiBwZXJmb3JtaW5n
LCBpdCBzaG91bGQgYmUgc3RvcHBlZCBmaXJzdCwgdGhlbiBzdGFydCBhIG5ldyBzY3JvbGxpbmcu
CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6
OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24pOiBTeW5jIHNjcm9sbCBlbmQgaW5m
byB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbCk6IFRvIGNh
bGwgZGlmZmVyZW50IGZ1bmN0aW9ucyBmb3Igc21vb3RoIGFuZCBpbnN0YW50IHNjcm9sbC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Ny
b2xsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGxXaXRo
QW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKToKKwor
MjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBBZGQg
Q1NTT00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4KKworICAg
ICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhl
IHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sOgorCiAyMDE5LTEyLTEzICBKaW0gTWFzb24gIDxqbWFzb25AaWJpbnguY29tPgog
CiAgICAgICAgIFtHVEtdIFdlYktpdEdUSyBidWlsZCBoYW5ncyBvbiBnLWlyLXNjYW5uZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcApp
bmRleCBkN2IxZTE5MzcyLi44NzdkMjlhMzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xNTIsNiArMTUyLDkgQEAgdm9p
ZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdAogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zLCBzY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnMpCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBTQ1JP
TExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKQorI2Vu
ZGlmCiAKICAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLnNjcm9sbENvbnRh
aW5lckxheWVyKCkpOwpAQCAtMjYwLDcgKzI2MywxMiBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9s
bAogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIG5vZGUuc2V0UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwpOworICAgICAgICBib29sIHNjcm9sbFdpdGhBbmltYXRpb24gPSBmYWxzZTsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNjcm9sbFdp
dGhBbmltYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgICAg
IG5vZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwsIHNjcm9sbFdpdGhBbmltYXRpb24pOwogICAgIH0KIAogICAg
IGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OlNjcm9sbENvbnRhaW5lckxheWVyKSkgewpAQCAtNjA4LDYgKzYxNiw5IEBAIHN0YXRpYyB2b2lk
IGR1bXAoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYg
bm9kZSwgYm9vbCBjCiAgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllc09ubHkgfHwgbm9kZS5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbikpIHsKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xs
LXBvc2l0aW9uIiwgbm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpKTsKICAgICAgICAgdHMu
ZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLWlzLXByb2dyYW1hdGljIiwg
bm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwo
KSk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJy
ZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLXdpdGgtYW5pbWF0aW9uIiwgbm9kZS5yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSk7CisjZW5kaWYKICAgICB9CiAKICAgICBpZiAo
IWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDJlN2I0YjRmZTQuLmZlYjJjM2Y4NDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTMyNCw2ICsx
MzI0LDEzIEBAIEJsb2NraW5nT2ZTbWFsbFBsdWdpbnNFbmFibGVkOgogICBodW1hblJlYWRhYmxl
RGVzY3JpcHRpb246ICJTdG9wIHBsdWdpbnMgc21hbGxlciB0aGFuIGEgY2VydGFpbiB0aHJlc2hv
bGQgZnJvbSBsb2FkaW5nLiIKICAgY2F0ZWdvcnk6IGludGVybmFsCiAKK0NTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQor
ICBodW1hblJlYWRhYmxlTmFtZTogIkNTU09NIFZpZXcgU21vb3RoIFNjcm9sbGluZyIKKyAgaHVt
YW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIERPTSBBUEkgYW5kIENTUyBwcm9wZXJ0eSBm
b3IgJ3Ntb290aCcgc2Nyb2xsIGJlaGF2aW9yIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisK
IFdlYkFuaW1hdGlvbnNFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogdHJ1
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5k
ZXggZTZkMjNmY2Y0MC4uMTA4ZDViZmEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xNjMyLDYgKzE2MzIsMTEgQEAgc3RhdGljIGlu
bGluZSBib29sIHBvaW50c0VxdWFsSW5EZXZpY2VQaXhlbHMoQ0dQb2ludCBhLCBDR1BvaW50IGIs
IGZsb2F0IGRldmljZVMKICAgICAgICAgJiYgZmFicyhhLnkgKiBkZXZpY2VTY2FsZUZhY3RvciAt
IGIueSAqIGRldmljZVNjYWxlRmFjdG9yKSA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpl
cHNpbG9uKCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBwb2ludHNFcXVhbEluUm91bmRUb0Rl
dmljZVBpeGVsKENHUG9pbnQgYSwgQ0dQb2ludCBiLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikK
K3sKKyAgICByZXR1cm4gQ0dSb3VuZChhLnggKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3Vu
ZChiLnggKiBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICAgICAgJiYgQ0dSb3VuZChhLnkgKiBkZXZp
Y2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChiLnkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CiBz
dGF0aWMgQ0dTaXplIHJvdW5kU2Nyb2xsVmlld0NvbnRlbnRTaXplKGNvbnN0IFdlYktpdDo6V2Vi
UGFnZVByb3h5JiBwYWdlLCBDR1NpemUgY29udGVudFNpemUpCiB7CiAgICAgZmxvYXQgZGV2aWNl
U2NhbGVGYWN0b3IgPSBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCk7CkBAIC0yMzU2LDkgKzIzNjEs
MTAgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChX
ZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKICAgICByZXR1cm4gY29udGVudE9mZnNldC5j
b25zdHJhaW5lZEJldHdlZW4oV2ViQ29yZTo6RmxvYXRQb2ludCgpLCBXZWJDb3JlOjpGbG9hdFBv
aW50KG1heGltdW1Db250ZW50T2Zmc2V0KSk7CiB9CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVu
dFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9s
bE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luCistICh2b2lkKV9zY3JvbGxU
b0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlv
biBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDoo
Qk9PTClhbmltYXRlZAogewotICAgIGlmIChfY29tbWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9u
IHx8IF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlICE9IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0
VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpCisgICAgLy8gQW5pbWF0ZWQgc2Nyb2xsaW5nIHNob3Vs
ZG4ndCBiZSBza2lwcGVkLgorICAgIGlmICghYW5pbWF0ZWQgJiYgKF9jb21taXREaWRSZXN0b3Jl
U2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpE
eW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykpCiAgICAgICAgIHJldHVybjsK
IAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZnNldCA9IFdlYkNvcmU6OlNjcm9s
bGFibGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHRvRmxv
YXRTaXplKHNjcm9sbE9yaWdpbikpOwpAQCAtMjM3MiwxMyArMjM3OCwyMSBAQCBzdGF0aWMgV2Vi
Q29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9p
bnQgY29udGVudE9mZgogCiAgICAgW19zY3JvbGxWaWV3IF9zdG9wU2Nyb2xsaW5nQW5kWm9vbWlu
Z0FuaW1hdGlvbnNdOwogCi0gICAgaWYgKCFDR1BvaW50RXF1YWxUb1BvaW50KGNvbnRlbnRPZmZz
ZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdKSkK
LSAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldEluU2Ny
b2xsVmlld0Nvb3JkaW5hdGVzXTsKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhleSBhcmUg
bm90IGVxdWFsLCBidXQgaW4gdGhlIHNhbWUgZGV2aWNlIHBpeGVsLCBzbyBfc2Nyb2xsVmlldyB3
b24ndCBjaGFuZ2UuCisgICAgLy8gV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIHJvdW5kIHRvIGRl
dmljZSBwaXhlbCBoZXJlLgorICAgIGlmICghcG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhl
bChjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFtfc2Nyb2xsVmlldyBjb250
ZW50T2Zmc2V0XSwgX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpKQorICAgICAgICBbX3Njcm9s
bFZpZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0
ZXMgYW5pbWF0ZWQ6YW5pbWF0ZWRdOwogICAgIGVsc2UgewogICAgICAgICAvLyBJZiB3ZSBoYXZl
bid0IGNoYW5nZWQgYW55dGhpbmcsIHRoZXJlIHdvdWxkIG5vdCBiZSBhbnkgVmlzaWJsZUNvbnRl
bnRSZWN0IHVwZGF0ZSBzZW50IHRvIHRoZSBjb250ZW50LgogICAgICAgICAvLyBUaGUgV2ViUHJv
Y2VzcyB3b3VsZCBrZWVwIHRoZSBpbnZhbGlkIGNvbnRlbnRPZmZzZXQgYXMgaXRzIHNjcm9sbCBw
b3NpdGlvbi4KICAgICAgICAgLy8gVG8gc3luY2hyb25pemUgdGhlIFdlYlByb2Nlc3Mgd2l0aCB3
aGF0IGlzIG9uIHNjcmVlbiwgd2Ugc2VuZCB0aGUgVmlzaWJsZUNvbnRlbnRSZWN0IGFnYWluLgog
ICAgICAgICBfcGFnZS0+cmVzZW5kTGFzdFZpc2libGVDb250ZW50UmVjdHMoKTsKKyAgICAgICAg
Ly8gSWYgX3Njcm9sbFZpZXcgd29uJ3QgY2hhbmdlLCB3ZSBzdGlsbCBuZWVkIHRvIHRlbGwgdGhl
IFdlYiBwcm9jZXNzIHRoYXQgdGhlIGFuaW1hdGlvbiBzdG9wcGVkLgorICAgICAgICBpZiAoYW5p
bWF0ZWQpIHsKKyAgICAgICAgICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eSogY29vcmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOwor
ICAgICAgICAgICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9y
LT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFu
Z2UoZmFsc2UpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0yODk0LDYgKzI5MDgsMTAgQEAg
c3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3Jl
OjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGlu
Z0FuaW1hdGlvbjooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewogICAgIFtzZWxmIF9kaWRG
aW5pc2hTY3JvbGxpbmddOworCisgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7
CisgICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5nVHJl
ZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsKIH0K
IAogLSAodm9pZClfc2Nyb2xsVmlld0RpZEludGVycnVwdERlY2VsZXJhdGluZzooVUlTY3JvbGxW
aWV3ICopc2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA4YTI4N2VmNzIwLi42NTg2OWVkMTUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
SW50ZXJuYWwuaApAQCAtMTI5LDcgKzEyOSw3IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxl
cjsKIAogLSAoUmVmUHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdDsK
IAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0
UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3Jv
bGxPcmlnaW47CistICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29y
ZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBv
aW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDooQk9PTClhbmltYXRlZDsKIC0gKEJPT0wpX3Njcm9s
bFRvUmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0KXRhcmdldFJlY3Qgb3JpZ2luOihXZWJDb3JlOjpG
bG9hdFBvaW50KW9yaWdpbiBtaW5pbXVtU2Nyb2xsRGlzdGFuY2U6KGZsb2F0KW1pbmltdW1TY3Jv
bGxEaXN0YW5jZTsKIAogLSAoZG91YmxlKV9pbml0aWFsU2NhbGVGYWN0b3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZTg0ODI0ZmQ4NS4uZGUzZDMzNjc5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTgxLDYgKzE4MSw4IEBAIHB1YmxpYzoK
ICAgICAvLyBUZWxsIHRoZSB2aWV3IHRvIHNjcm9sbCB0byB0aGUgZ2l2ZW4gcG9zaXRpb24sIGFu
ZCB3aGV0aGVyIHRoaXMgd2FzIGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4KICAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgPSAwOwogCisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3Jp
Z2luKSB7IH0KKwogICAgIC8vIFJldHVybiB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gKG5v
dCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgV2ViQ29yZSBzY3JvbGwgcG9zaXRpb24sIGJl
Y2F1c2Ugb2Ygc2NhbGluZywgaW5zZXRzIGV0Yy4pCiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9h
dFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCAzODBmMTI0NDQzLi4wYTQyZjk0NDk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpA
QCAtMjI0LDggKzIyNCwxNCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
OmNvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFucwogCiAgICAgLy8gSGFu
ZGxlIHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gdXBkYXRlcyBmcm9tIHRoZSBzY3JvbGxpbmcg
dHJlZSB0cmFuc2FjdGlvbiBhZnRlciBkaWRDb21taXRMYXllclRyZWUoKQogICAgIC8vIGhhcyB1
cGRhdGVkIHRoZSB2aWV3IHNpemUgYmFzZWQgb24gdGhlIGNvbnRlbnQgc2l6ZS4KLSAgICBpZiAo
cmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlKQotICAgICAg
ICBtX3dlYlBhZ2VQcm94eS5yZXF1ZXN0U2Nyb2xsKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24sIGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbE9yaWdpbigpKTsK
KyAgICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRl
KSB7CisgICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xs
SW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbgorICAgICAgICAgICAgLCBsYXllclRyZWVUcmFu
c2FjdGlvbi5zY3JvbGxPcmlnaW4oKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAg
ICAgICAsIHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdFdpdGhBbmltYXRpb24KKyNlbmRpZgor
ICAgICAgICAgICAgKTsKKyAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
IAogICAgIGlmIChtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDQ4MjNmNzZhOTcu
LjhjZjFkODRhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6Ogog
fQogCiAvLyBUaGlzIGNvbWVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlLgotdm9pZCBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3Jv
bGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Njcm9sbFBv
c2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4s
IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
bikKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5v
ZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBv
aW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91
dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCiB7
CiAgICAgLy8gU2Nyb2xsIHVwZGF0ZXMgZm9yIHRoZSBtYWluIGZyYW1lIGFyZSBzZW50IHZpYSBX
ZWJQYWdlUHJveHk6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoKQogICAgIC8vIHNvIGRvbid0
IHNlbmQgdGhlbSBoZXJlLgpAQCAtMjIyLDIxICsyMjIsMzYgQEAgdm9pZCBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdO
b2RlSUQKICAgICBtX3dlYlBhZ2VQcm94eS5zY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RpZFNjcm9s
bCgpOwogI2VuZGlmCiAKLSAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3Jh
bW1hdGljU2Nyb2xsKCkpCisgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dy
YW1tYXRpY1Njcm9sbCgpICYmICFpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OlNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoc2Nyb2xsZWRO
b2RlSUQsIG5ld1Njcm9sbFBvc2l0aW9uLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID09
IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpKTsKIH0KIAotdm9pZCBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xs
KFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKK3ZvaWQgUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9s
bChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9s
bFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFu
aW1hdGlvbikKIHsKICAgICBpZiAoc2Nyb2xsZWROb2RlSUQgPT0gcm9vdFNjcm9sbGluZ05vZGVJ
RCgpICYmIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbykgewogICAgICAgICBtX3JlcXVlc3RlZFNjcm9s
bEluZm8tPnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgPSB0cnVlOwogICAgICAgICBtX3Jl
cXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGw7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAg
bV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0V2l0aEFuaW1hdGlvbiA9IHdpdGhBbmltYXRp
b247CisjZW5kaWYKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwogICAgIH0KIH0KIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGlu
Z1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNj
cm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShz
Y3JvbGxlZE5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKSk7Cit9CisKK3ZvaWQg
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5v
ZGUocm9vdFNjcm9sbGluZ05vZGVJRCgpLCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsK
K30KKyNlbmRpZgorCiBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Ny
b2xsaW5nVHJlZUFzVGV4dCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhNzY5
NDNmMjQuLjgxMTVlNDc3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaApAQCAtNTUsOSArNTUsMTQgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5Jik7CiAgICAgdmlydHVh
bCB+UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOwogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzKTsKKyNlbmRpZgorCiAgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJvY2VzcyB0aGF0IHRo
ZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNjcm9sbGluZyB0cmVl
KQotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29u
c3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBX
ZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLSAgICB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xs
UG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3
cG9ydE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBp
bnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IGZhbHNlKTsKKyAgICB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSk7CiAKICAgICBXZWJDb3Jl
OjpUcmFja2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3RyaW5n
JiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKIApAQCAtODAsNiArODUsOSBA
QCBwdWJsaWM6CiAgICAgc3RydWN0IFJlcXVlc3RlZFNjcm9sbEluZm8gewogICAgICAgICBib29s
IHJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgeyB9OwogICAgICAgICBib29sIHJlcXVlc3RJ
c1Byb2dyYW1tYXRpY1Njcm9sbCB7IH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAg
ICAgYm9vbCByZXF1ZXN0V2l0aEFuaW1hdGlvbiB7IH07CisjZW5kaWYKICAgICAgICAgV2ViQ29y
ZTo6RmxvYXRQb2ludCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICB9OwogICAgIHZvaWQg
Y29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
VHJhbnNhY3Rpb24mLCBSZXF1ZXN0ZWRTY3JvbGxJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5jcHAKaW5kZXggYWZhYmJjMWVhZS4uZDU3M2EzMWYwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcApAQCAtMTA0LDEyICsxMDQsMTYgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdU
cmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZSYKICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkpCiAg
ICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2luID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZT4obm9kZSkubGF5b3V0Vmlld3BvcnQoKS5sb2NhdGlvbigpOwogCi0gICAg
bV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5v
ZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91
dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyAgICBib29s
IGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IG5vZGUubmVlZHNT
dG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpICYmICFub2RlLnJlcXVlc3RBbmltYXRlZFNjcm9s
bCgpOworI2VuZGlmCisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1Ry
ZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9s
bFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uLCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbik7CiB9CiAKLXZvaWQgUmVtb3Rl
U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdO
b2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3Jv
bGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0
IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwsIGJvb2wgd2l0aEFuaW1hdGlvbikKIHsKLSAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBvc2l0
aW9uLCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyAgICBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9s
bFBvc2l0aW9uLCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCB3aXRoQW5pbWF0aW9uKTsK
IH0KIAogUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVT
Y3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEIG5vZGVJRCkKQEAgLTE0Myw2ICsxNDcsMTMgQEAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBS
ZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2QK
ICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQp
OwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uo
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MpCit7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1Ry
ZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGVJRCwgaXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKTsKK30KKyNlbmRpZgorCiB2b2lkIFJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCBu
b2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKQogewogICAgIG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5n
ZShub2RlSUQsIGhvcml6b250YWwsIHZlcnRpY2FsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5o
CmluZGV4IDIzYmFjMDZhM2IuLjBmOWUwOTQ5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
aApAQCAtNTIsNyArNTIsMTEgQEAgcHVibGljOgogICAgIGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkmIHNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKSBjb25zdCB7IHJldHVy
biBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7IH0KIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBXZWJD
b3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gV2ViQ29yZTo6U2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzY3JvbGxpbmdUcmVl
Tm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRp
Y1Njcm9sbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3
aXRoQW5pbWF0aW9uID0gZmFsc2UpIG92ZXJyaWRlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNz
RGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3MpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9p
bnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9y
aXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCmluZGV4
IGU2MzdkNjE1MzIuLjAwYjRkYmNkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCkBAIC01Nyw2ICs1Nyw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbERpZEVuZCgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xs
Vmlld1dpbGxTdGFydFBhbkdlc3R1cmUoKSBjb25zdDsKICAgICB2b2lkIHNjcm9sbFZpZXdEaWRT
Y3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsT2Zmc2V0LCBib29sIGluVXNl
ckludGVyYWN0aW9uKTsKKyAgICB2b2lkIHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRp
b24oKTsKIAogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5zaWdu
ZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0OwogICAgIENBTGF5ZXIgKnNj
cm9sbExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxMYXllci5nZXQoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLm1tCmluZGV4IGU3Njg5ODM3NTguLjg0ODg2M2E4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAg
LTE1Miw2ICsxNTIsMTEgQEAKICAgICB9CiB9CiAKKy0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFNj
cm9sbGluZ0FuaW1hdGlvbjooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldworeworICAgIF9zY3Jv
bGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9u
KCk7Cit9CisKICNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCiAtIChDR1BvaW50KV9zY3JvbGxW
aWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihD
R1BvaW50KW9mZnNldCB0cmFuc2xhdGlvbjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFydFBvaW50
OihDR1BvaW50KXN0YXJ0IGxvY2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGhv
cml6b250YWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0eTooaW5v
dXQgZG91YmxlICopdnYKIHsKQEAgLTMwMCwxNSArMzA1LDM2IEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0
IFNjcm9sCiAKICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewog
ICAgICAgICBhdXRvIHNjcm9sbFR5cGUgPSBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgPyBTY3JvbGxUeXBlOjpQ
cm9ncmFtbWF0aWMgOiBTY3JvbGxUeXBlOjpVc2VyOwotICAgICAgICBzY3JvbGxpbmdOb2RlKCku
c2Nyb2xsVG8oc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCksIHNj
cm9sbFR5cGUpOworICAgICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKQorICAgICAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNl
dFJlcXVlc3RBbmltYXRlZFNjcm9sbCh0cnVlKTsKKyAgICAgICAgLy8gSWYgdGhlIHNjcm9sbCBw
b3NpdGlvbnMgYXJlIG5vdCB0aGUgc2FtZSwgdGhlcmUncyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhl
IHNjcm9sbCBvZmZzZXQgZnJvbSB0aGUgV2ViIHByb2Nlc3MgaGFzIGJlZW4gb3ZlcnJpZGRlbi4K
KyAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCB0aGUgc2Nyb2xsIHBvc2l0aW9uIG5lZWQgdG8gYmUg
c2VudCB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIGJvb2wgc2hvdWxkU3luY1Njcm9sbFBv
c2l0aW9uID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbFBvc2l0aW9uKCkgIT0gc2Nyb2xsaW5n
Tm9kZSgpLmN1cnJlbnRTY3JvbGxQb3NpdGlvbigpOworICAgICAgICBzY3JvbGxpbmdOb2RlKCku
c2Nyb2xsVG8oc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCksIHNj
cm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzLCBzaG91bGRTeW5j
U2Nyb2xsUG9zaXRpb24pOwogICAgIH0KIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TOjpyZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkKIHsKLSAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZz
ZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07Ci0gICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUworICAgIGJvb2wgYW5pbWF0aW9uSW5Qcm9ncmVzcyA9IHNjcm9sbGlu
Z05vZGUoKS5zY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCk7CisgICAgYm9vbCBuZWVkVG9TdG9w
QW5pbWF0aW9uID0gc2Nyb2xsaW5nTm9kZSgpLm5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRp
b24oKTsKKyAgICBpZiAobmVlZFRvU3RvcEFuaW1hdGlvbiAmJiBhbmltYXRpb25JblByb2dyZXNz
KSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xs
VmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsVmlldygpLmNvbnRlbnRPZmZzZXQgYW5pbWF0
ZWQ6Tk9dOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgfQorCisgICAg
aWYgKHNjcm9sbGluZ05vZGUoKS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSkgeworICAgICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXcoKSBzZXRDb250
ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCkgYW5pbWF0ZWQ6
WUVTXTsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworCisgICAgICAgIHNjcm9s
bGluZ05vZGUoKS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKHRydWUpOworICAgIH0gZWxz
ZSBpZiAoIWFuaW1hdGlvbkluUHJvZ3Jlc3MgfHwgbmVlZFRvU3RvcEFuaW1hdGlvbikgeworICAg
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXcoKSBz
ZXRDb250ZW50T2Zmc2V0OnNjcm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOwor
ICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgfQogfQogCiB2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFdpbGxTdGFydCgpIGNvbnN0
CkBAIC0zMzUsNiArMzYxLDE1IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUzo6c2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBGbG9hdFBvaW50CiAgICAgc2Nyb2xs
aW5nTm9kZSgpLndhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmcoc2Nyb2xsUG9zaXRpb24s
IHsgfSwgaW5Vc2VySW50ZXJhY3Rpb24gPyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpT
eW5jIDogU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIH0KIAordm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xs
aW5nQW5pbWF0aW9uKCkKK3sKKyAgICBhdXRvJiBub2RlID0gc2Nyb2xsaW5nTm9kZSgpOworICAg
IGlmICghKG5vZGUucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgJiYgbm9kZS5zY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKCkpKSB7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVl
Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShub2RlLnNjcm9sbGluZ05v
ZGVJRCgpLCBmYWxzZSk7CisgICAgICAgIG5vZGUuc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cyhmYWxzZSk7CisgICAgfQorfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVJT1M6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKHVuc2lnbmVkIGhvcml6
b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBjb25zdAogewogICAgIGlmIChtX3VwZGF0aW5nRnJv
bVN0YXRlTm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IGUzYjQ1MjM5OTcuLjA2NjE0Y2Q0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtMTc2Nyw5ICsxNzY3LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRW
aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFJlZ2lvbiYgcmVnaW9uKQogICAgIHBhZ2VDbGllbnQoKS5z
ZXRWaWV3TmVlZHNEaXNwbGF5KHJlZ2lvbik7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dCYgc2Nyb2xsT3JpZ2luKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4s
IGNvbnN0IGJvb2wgd2l0aEFuaW1hdGlvbikKIHsKLSAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNj
cm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBpZiAod2l0aEFuaW1hdGlv
bikKKyAgICAgICAgcGFnZUNsaWVudCgpLnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKHNjcm9s
bFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGVsc2UKKyAgICAgICAgcGFnZUNsaWVudCgp
LnJlcXVlc3RTY3JvbGwoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CiB9CiAKIFdlYkNv
cmU6OkZsb2F0UG9pbnQgV2ViUGFnZVByb3h5Ojp2aWV3U2Nyb2xsUG9zaXRpb24oKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhZTM4NTIyMjFkLi5hZjA3
ZWE0OTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjEzLDcg
KzYxMyw3IEBAIHB1YmxpYzoKICAgICBQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KCkgY29uc3Q7CiAK
ICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJik7Ci0g
ICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKTsKKyAgICB2b2lk
IHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4sIGJvb2wgd2l0aEFuaW1hdGlv
biA9IGZhbHNlKTsKICAgICAKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3Np
dGlvbigpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oCmluZGV4IGQ2YzhjMzhkNGEuLjUxOThlZjQ0MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC01Nyw2ICs1Nyw3
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0
ZURyYXdpbmdBcmVhUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
ZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpIG92ZXJyaWRlOwogICAg
IHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3Np
dGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCByZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdp
bikgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24o
KSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplKCkgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBpc1ZpZXdXaW5kb3dBY3RpdmUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA0ZGYzYWQ1NTU1Li43
ZjAyMzQ5ZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tCkBAIC05Niw3ICs5NiwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRW
aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFJlZ2lvbiYpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJl
cXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBzY3JvbGxPcmlnaW4pCiB7Ci0gICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Ny
b2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbl07Cisg
ICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRp
b24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBhbmltYXRlZDpOT107Cit9CisKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQoreworICAgIFtt
X3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNj
cm9sbE9yaWdpbjpzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6WUVTXTsKIH0KIAogV2ViQ29yZTo6Rmxv
YXRQb2ludCBQYWdlQ2xpZW50SW1wbDo6dmlld1Njcm9sbFBvc2l0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOGU2NDkz
NTU0NS4uM2QzNDVkNzY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTczLDYgKzczLDEwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgc3luY0xheWVy
UG9zaXRpb24pOwogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9k
ZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVk
IHZlcnRpY2FsKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxB
bmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
LCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKKwogICAgIFdlYlBh
Z2UqIG1fd2ViUGFnZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgppbmRleCAyYzA5OGExMDk3
Li41MzdmZDM0ZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw5IEBACiBt
ZXNzYWdlcyAtPiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvciB7CiAgICAgU2Nyb2xsUG9zaXRp
b25DaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgc2Ny
b2xsUG9zaXRpb24sIGJvb2wgc3luY0xheWVyUG9zaXRpb24pOwogICAgIEN1cnJlbnRTbmFwUG9p
bnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCB1bnNpZ25lZCBob3Jpem9u
dGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBz
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCBi
b29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KaW5kZXggODM1NDQxZDMxOS4uNjg5ZDU1NjI2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ci5tbQpAQCAtMTA0LDYgKzEwNCwxMyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFNjcm9sbGluZwogICAgIHNl
dEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzKG5vZGVJRCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwog
fQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykK
K3sKKyAgICBzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKG5vZGVJRCwgaXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggNzYzN2JmZjUzNS4uMGZmNzc1YzBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNo
ZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9y
IHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAg
ICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEFkZCBy
dW4gdGltZSBmbGFnIGZvciBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOiBIYW5kbGUgQ1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nIGJ5LgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAg
ICAgIChbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOiBEaXNhYmxlIENTU09NVmlld1Ntb290
aFNjcm9sbGluZyBieSBkZWZhdWx0LgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkXSk6IEdldHRlci4KKyAgICAgICAgKC1bV2ViUHJlZmVy
ZW5jZXMgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDpdKTogU2V0dGVyLgorICAg
ICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6
CisKIDIwMTktMTItMTIgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OIChyMjI5OTMwLCByMjMxMDYzKTogV2ViS2l0TGVnYWN5LnhjY29uZmln
IG92ZXJ3cml0ZXMgT1RIRVJfQ0ZMQUdTLCBPVEhFUl9DUExVU1BMVVNGTEFHUyBhbmQgT1RIRVJf
TERGTEFHUyBmcm9tIEJhc2UueGNjb25maWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDQ0MWI1
YTg3NzYuLmM2NzlmYmQ2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTg4LDYgKzE4OCw3
IEBACiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAi
V2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgorI2RlZmluZSBXZWJLaXRD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09N
Vmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1vZGVybk1lZGlhQ29u
dHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFi
bGVkIgogI2RlZmluZSBXZWJLaXRSZW1vdGVQbGF5YmFja0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAi
V2ViS2l0UmVtb3RlUGxheWJhY2tFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTdWJ0bGVDcnlwdG9F
bmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWQiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA0
N2Y3Yzc1ZGRhLi5jZDIzNjc0NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY2Myw2ICs2NjMsNyBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogICAgICAgICBAWUVTLCBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
UHJlZmVyZW5jZUtleSwKKyAgICAgICAgQE5PLCBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQFlFUywgV2ViS2l0TmVlZHNTdG9yYWdl
QWNjZXNzRnJvbUZpbGVVUkxzUXVpcmtLZXksCiAgICAgICAgIEBOTywgV2ViS2l0QWxsb3dDcm9z
c09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHNLZXksCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKQEAgLTMxODEsNiArMzE4MiwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNz
SUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpX
ZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0g
KEJPT0wpQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZAoreworICAgIHJldHVybiBbc2Vs
ZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQ
cmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5
OldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30K
KwogLSAoQk9PTCl3ZWJBbmltYXRpb25zRW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBfYm9v
bFZhbHVlRm9yS2V5OldlYktpdFdlYkFuaW1hdGlvbnNFbmFibGVkUHJlZmVyZW5jZUtleV07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaAppbmRleCA1OTc1OGUyMzM1Li4wOTExOTMxZGMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
QEAgLTYzMiw2ICs2MzIsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVN
b2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogCiBAcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOworQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRNYXJrdXBFbmFibGVkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDQ3YWFlMzI4ZGIu
LjY2NzAzNTllMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KQEAgLTI5OTIsNiArMjk5Miw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxl
TG9hZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQo
W3ByZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNl
dFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQoW3ByZWZlcmVuY2VzIHN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kc0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxp
bmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkXSk7
CisgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbcHJlZmVy
ZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNl
dE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBt
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOwogCiAgICAgc3dpdGNo
IChbcHJlZmVyZW5jZXMgc3RvcmFnZUJsb2NraW5nUG9saWN5XSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCmluZGV4IDQyMDE0ZDk5ZDUuLmU3Y2E2ZjcyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxj
YXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBi
ZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisK
KyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAg
ICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6IEhhbmRsZSBzbW9vdGgg
c2Nyb2xsaW5nIG9wdGlvbi4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDog
RGl0dG8uCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOiBEaXR0by4KKyAgICAgICAgKFdl
YlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAgICAgICAgKFdlYlBy
ZWZlcmVuY2VzOjpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKToKKyAgICAgICAgKFdl
YlByZWZlcmVuY2VzOjpzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKToKKyAgICAg
ICAgKiBXZWJQcmVmZXJlbmNlcy5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJWaWV3LmNwcDogRGl0
dG8uCisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorCiAyMDE5
LTEyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUGFnZUNv
bmZpZ3VyYXRpb246OmRyYWdDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IGE3MTc2MjIyMWIuLmNjZmY5ZjA1OTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJp
dmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjIzLDYgKzIyMyw4IEBAIGludGVyZmFjZSBJV2ViUHJl
ZmVyZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1CiAgICAgSFJFU1VMVCBz
ZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNV
TFQgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKICAg
ICBIUkVTVUxUIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJs
ZWQpOworICAgIEhSRVNVTFQgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbb3V0LCBy
ZXR2YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgZmV0Y2hBUElLZWVwQWxpdmVF
bmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCogZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzZXRGZXRj
aEFQSUtlZXBBbGl2ZUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgc3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCAqZW5hYmxlZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmlu
ZGV4IDA5OTM3NDIwZTQuLjA4YzQ1NjcyN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yMDksNiArMjA5LDcgQEAKICNk
ZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFNlcnZl
clRpbWluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5h
YmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQiCisj
ZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5
ICJXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIgogCiAjZGVmaW5lIFdlYktp
dFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFJlc2l6ZU9ic2VydmVy
RW5hYmxlZCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmlu
ZGV4IDk1ZWJlYTI2OGMuLmM4ZTIyNWFhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTMzOSw2ICszMzksOCBAQCB2b2lkIFdlYlByZWZlcmVuY2Vz
Ojppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVl
KGRlZmF1bHRzLCBDRlNUUihXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5
KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRz
LCBDRlNUUihXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtl
eSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0
cywgQ0ZTVFIoV2ViS2l0Q29yZU1hdGhNTEVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVh
bkZhbHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJL
aXRSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFs
c2UpOwpAQCAtMjI4Myw2ICsyMjg1LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldENv
cmVNYXRoTUxFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJF
U1VMVCBXZWJQcmVmZXJlbmNlczo6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChfT3V0
XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIEVf
UE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0dXJuIFNfT0s7Cit9
CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJu
IFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnJlcXVlc3RJZGxlQ2FsbGJhY2tF
bmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggMWRhYWE3MzAyNS4uNjA2NmU0
NjQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0yNzEs
NiArMjcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9P
TCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRfIEJPT0wqKTsKKyAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKEJPT0wp
OwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRl
eCBhMDQ0OGJiMDEzLi5kMmIyMmYwNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cApAQCAtNTMxOCw2ICs1MzE4LDExIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5j
ZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0dXJu
IGhyOwogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoISFlbmFi
bGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhy
OworICAgIHNldHRpbmdzLnNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoISFlbmFi
bGVkKTsKKwogICAgIGhyID0gcHJlZmVyZW5jZXMtPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoJmVu
YWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmQ0MmI4MmIxYy4u
NWUzNjdmODNkMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNo
ZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9y
IHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAg
ICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoVGVzdE9wdGlvbnM6OlRlc3RP
cHRpb25zKTogUGFyc2UgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZC4KKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOiBBZGQgQ1NTT01WaWV3U21vb3RoU2Nyb2xs
aW5nRW5hYmxlZCwgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChzZXRXZWJQcmVmZXJlbmNlc0ZvclRl
c3RPcHRpb25zKTogU2V0IENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQgZnJvbSB0aGUg
dGVzdCBvcHRpb25zLgorCiAyMDE5LTEyLTEzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KIAogICAgICAgICBQcmVmaXggQ1NTIHNlbGVjdG9ycyB3aXRoIGFsbCBhcHBsaWNhYmxl
IENTUyBncm91cGluZ3Mgd2hlbiBnZW5lcmF0aW5nIGEgQ2hhbmdlTG9nCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggN2M5YWU1OTk0YS4uMjM3Yzk4ODc4ZiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtMTQyLDYgKzE0Miw4IEBAIFRlc3RPcHRpb25z
OjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0
cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gcGFy
c2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09
ICJleHBlcmltZW50YWw6UmVzaXplT2JzZXJ2ZXJFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJs
ZVJlc2l6ZU9ic2VydmVyID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAg
ICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xs
aW5nRW5hYmxlZCIpCisgICAgICAgICAgICBlbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcg
PSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImV4cGVyaW1lbnRhbDpDb3JlTWF0aE1MRW5hYmxlZCIpCiAgICAgICAgICAgICBlbmFi
bGVDb3JlTWF0aE1MID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAg
ICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVxdWVzdElkbGVDYWxsYmFja0VuYWJs
ZWQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5kZXggZTUzMzVlODMxMS4uZjdlOGQy
OTExZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCkBAIC01MCw2ICs1MCw3IEBAIHN0
cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBlbmFibGVDU1NMb2dpY2FsIHsgZmFsc2UgfTsK
ICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
ZW5hYmxlUmVzaXplT2JzZXJ2ZXIgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlQ1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUNvcmVNYXRoTUwgeyBm
YWxzZSB9OwogICAgIGJvb2wgZW5hYmxlUmVxdWVzdElkbGVDYWxsYmFjayB7IGZhbHNlIH07CiAg
ICAgYm9vbCBlbmFibGVBc3luY0NsaXBib2FyZEFQSSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggY2NmZmUwNTVkMy4uNjdjYWVhNzE4
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTAy
OSw2ICsxMDI5LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9u
cyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBwcmVmZXJlbmNlcy5DU1NMb2dpY2Fs
RW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTTG9naWNhbDsKICAgICBwcmVmZXJlbmNlcy5hZENs
aWNrQXR0cmlidXRpb25FbmFibGVkID0gb3B0aW9ucy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVk
OwogICAgIHByZWZlcmVuY2VzLnJlc2l6ZU9ic2VydmVyRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxl
UmVzaXplT2JzZXJ2ZXI7CisgICAgcHJlZmVyZW5jZXMuQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nOwogICAgIHBy
ZWZlcmVuY2VzLmNvcmVNYXRoTUxFbmFibGVkID0gb3B0aW9ucy5lbmFibGVDb3JlTWF0aE1MOwog
ICAgIHByZWZlcmVuY2VzLnJlcXVlc3RJZGxlQ2FsbGJhY2tFbmFibGVkID0gb3B0aW9ucy5lbmFi
bGVSZXF1ZXN0SWRsZUNhbGxiYWNrOwogICAgIHByZWZlcmVuY2VzLmFzeW5jQ2xpcGJvYXJkQVBJ
RW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQXN5bmNDbGlwYm9hcmRBUEk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385717</attachid>
            <date>2019-12-15 07:08:31 -0800</date>
            <delta_ts>2019-12-15 09:13:55 -0800</delta_ts>
            <desc>native-animation-for-review</desc>
            <filename>upload_42.diff</filename>
            <type>text/plain</type>
            <size>151579</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMWRlZjAxNGM4Li4wYjlkZDgzNmY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0g
aXMgYmFzZWQgb24gQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5j
IHNjcm9sbCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJl
Zm9yZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0
byBmYXN0L3Njcm9sbGluZy9pb3MvLCB0aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAgICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAg
ICAod2FpdEZvclNjcm9sbEVuZCk6CisgICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNj
cm9sbFdpbmRvdyk6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sLgorCiAyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNh
dGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJl
aGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1i
ZWhhdmlvci5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Ny
b2xsLWJlaGF2aW9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBh
MDk2OGUwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcwpAQCAtMCwwICsxLDg3IEBACitmdW5jdGlv
biBvYnNlcnZlU2Nyb2xsaW5nKGVsZW1lbnRzLCBjYWxsYmFjaykgeworICBpZiAoIUFycmF5Lmlz
QXJyYXkoZWxlbWVudHMpKQorICAgICAgZWxlbWVudHMgPSBbZWxlbWVudHNdOworICB2YXIgbGFz
dENoYW5nZWRGcmFtZSA9IDA7CisgIHZhciBsYXN0TGVmdCA9IG5ldyBNYXAoKTsKKyAgdmFyIGxh
c3RUb3AgPSBuZXcgTWFwKCk7CisgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAg
ICBsYXN0TGVmdC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICBsYXN0VG9w
LnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbFRvcCk7CisgIH0pOworICBmdW5jdGlvbiB0aWNr
KGZyYW1lcykgeworICAgIC8vIFdlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIDUw
MCBmcmFtZXMgb3IgdW50aWwgMjAgZnJhbWVzIHdpdGgKKyAgICAvLyBubyBjaGFuZ2UgaGF2ZSBi
ZWVuIG9ic2VydmVkLgorICAgIGlmIChmcmFtZXMgPj0gNTAwIHx8IGZyYW1lcyAtIGxhc3RDaGFu
Z2VkRnJhbWUgPiAyMCkgeworICAgICAgY2FsbGJhY2sodHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgIHZhciBzY3JvbGxIYXBwZW5lZCA9IGVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IHsKKyAg
ICAgICAgcmV0dXJuIGVsZW1lbnQuc2Nyb2xsTGVmdCAhPSBsYXN0TGVmdC5nZXQoZWxlbWVudCkg
fHwgZWxlbWVudC5zY3JvbGxUb3AgIT0gbGFzdFRvcC5nZXQoZWxlbWVudCk7CisgICAgICB9KTsK
KyAgICAgIGlmIChzY3JvbGxIYXBwZW5lZCkgeworICAgICAgICBsYXN0Q2hhbmdlZEZyYW1lID0g
ZnJhbWVzOworICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7CisgICAgICAg
ICAgbGFzdExlZnQuc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsTGVmdCk7CisgICAgICAgICAg
bGFzdFRvcC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOworICAgICAgICB9KTsKKyAg
ICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgfQorICAgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKHRpY2suYmluZChudWxsLCBmcmFtZXMgKyAxKSk7CisgICAgfQorICB9CisgIHRpY2soMCk7
Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JTY3JvbGxFbmQoZWxlbWVudHMpIHsKKyAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywg
KGRvbmUpID0+IHsKKyAgICAgIGlmIChkb25lKQorICAgICAgICByZXNvbHZlKCk7CisgICAgfSk7
CisgIH0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KSB7Cisg
IC8vIFRyeSB2YXJpb3VzIG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlz
IHJlc2V0IGltbWVkaWF0ZWx5LgorICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOwor
ICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rp
b24gcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KSB7CisgIC8vIFRyeSB2YXJp
b3VzIG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVk
aWF0ZWx5LgorICBzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0ID0gMDsKKyAgc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wID0gMDsKKyAgc2Nyb2xsaW5nV2luZG93LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAw
LCBiZWhhdmlvcjogImluc3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsIGNsYXNzTmFtZSkgeworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5y
ZW1vdmUoImF1dG9CZWhhdmlvciIsICJzbW9vdGhCZWhhdmlvciIpOworICBzdHlsZWRFbGVtZW50
LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZp
b3IpCisgICAgYXJncy5iZWhhdmlvciA9IGJlaGF2aW9yOworICBzd2l0Y2ggKHNjcm9sbEZ1bmN0
aW9uKSB7CisgICAgY2FzZSAic2Nyb2xsSW50b1ZpZXciOgorICAgICAgYXJncy5pbmxpbmUgPSAi
c3RhcnQiOworICAgICAgYXJncy5ibG9jayA9ICJzdGFydCI7CisgICAgICBlbGVtZW50VG9SZXZl
YWwuc2Nyb2xsSW50b1ZpZXcoYXJncyk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg
ICAgYXJncy5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgICAgIGFyZ3MudG9wID0gZWxl
bWVudFRvUmV2ZWFsVG9wOworICAgICAgc2Nyb2xsaW5nRWxlbWVudFtzY3JvbGxGdW5jdGlvbl0o
YXJncyk7CisgICAgICBicmVhazsKKyAgfQorfQorCitmdW5jdGlvbiBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZp
b3IpCisgICAgYXJncy5iZWhhdmlvciA9IGJlaGF2aW9yOworICBhcmdzLmxlZnQgPSBlbGVtZW50
VG9SZXZlYWxMZWZ0OworICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgc2Nyb2xs
aW5nV2luZG93W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1k
ZWZhdWx0LWNzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uOGQ0Y2E2NDE1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorCitQQVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBk
ZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKK1BBU1MgU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVt
ZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1j
c3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zNWM2NTAzYWIy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0Vu
YWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1ZSBvZiBzY3JvbGwt
YmVoYXZpb3I8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpm
d2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9s
bGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2
aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93
OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICB9Cis8L3N0
eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFz
cz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAw
MHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgor
ICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVp
Z2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlz
cGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBo
ZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2
PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZh
ciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0g
MjUwOworICB2YXIgc2Nyb2xsRnVuY3Rpb24gPSAic2Nyb2xsIjsKKworICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICB9
LCAiSW5zdGFudCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJl
aGF2aW9yIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVt
ZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMC4uNTNhOTYxZWY1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzNiBAQAorCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhh
dmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kMzhkZmZkZWNlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVt
ZW50Lmh0bWwKQEAgLTAsMCArMSwxNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgor
PHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xs
KiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIGFuIGVsZW1lbnQ8L3RpdGxlPgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOp
ZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYt
c2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAg
LnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAg
ICBoZWlnaHQ6IDIwMHB4OworICB9CisgIC5hdXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhh
dmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlv
cjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBp
ZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRo
OiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1
ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVu
dFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjog
LTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9z
cGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQg
PSBvdmVyZmxvd05vZGU7CisgIHZhciBzdHlsZWRFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2
YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9
IDI1MDsKKworICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRv
VmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2
ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Jg
KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxp
bmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRv
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVt
ZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3Rh
bnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAg
IH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAy
KTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwg
IkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQi
LCAwLCAwKTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIGFuIGVsZW1lbnQgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTdjYWVhMjdiYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgUGFnZSBs
b2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9y
IAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4g
ZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQg
c2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kMzI1YjRiOWUyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXJvb3QuaHRtbApAQCAtMCwwICsxLDE2OSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVu
dC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJh
bWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0Bp
Z2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cu
b3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1i
b3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpz
Ij48L3NjcmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5h
dXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3Ro
QmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgor
PGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9S
ZXZlYWwiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsg
d2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwv
ZGl2PgorPHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRl
ZCIpOworICB2YXIgc2Nyb2xsaW5nRWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIHBhZ2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xs
aW5nRWxlbWVudCA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVu
dCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0
aCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRoKSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50
LnN0eWxlLmhlaWdodCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAg
ICBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAg
ICBlbGVtZW50VG9SZXZlYWxUb3AgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAg
ICBlbGVtZW50VG9SZXZlYWwuc3R5bGUubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgi
OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAi
cHgiOworCisgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsgfSk7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3Jv
bGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7Cisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0
aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAg
ICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVt
ZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAg
ICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRU
b1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5n
RWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOwor
CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgi
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
IH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBt
YWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM4MjM4NWFhYjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisKK1BB
U1MgUGFnZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBB
Ym9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdp
bmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjkwNTdiMGNk
MTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09N
Vmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Nj
cm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycg
YmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBvbiB0aGUgd2luZG93IG9mIHRoZSBtYWluIGZy
YW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2Fs
ZT0xLGluaXRpYWwtc2NhbGU9MSI+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6ly
aWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3Jv
bGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5
IHsKKyAgICBtYXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJl
aGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2
aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2
IGlkPSJwYWdlQ29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9w
OiAwOyI+CisgIDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxv
YWRlZCA9IGFzeW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdXaW5kb3cs
IHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsK
KyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19k
b25lKGZ1bmN0aW9uKCkgeworICAgIHNjcm9sbGluZ1dpbmRvdyA9IHdpbmRvdzsKKyAgICBzdHls
ZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50LnN0
eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJweCI7CisgICAgcGFn
ZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYgKyAi
cHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkg
KiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkg
KiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVm
dCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1JldmVh
bFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlc2V0
U2Nyb2xsRm9yV2luZG93KHdpbmRvdyk7IH0pOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8i
LCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhh
dmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7Cisg
ICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxs
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOwor
ICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7Cisg
ICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93
LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5k
b3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBv
ZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhh
dmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9s
bEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRv
dy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5n
V2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24s
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
ICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21v
b3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVu
dFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7
CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3Jv
bGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xs
aW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9u
IHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDQz
YTgyMGU1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3
aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNj
cm9sbGludG92aWV3LW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAuLjQ1YjVkOGQ3YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBA
IC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJu
YWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rp
bmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3Igd2l0aCBzY3JvbGxJbnRvVmlldyBmb3IgbmVzdGVk
IHNjcm9sbGluZyBub2RlczwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAg
b3ZlcmZsb3c6IGF1dG87CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuc21vb3RoQmVoYXZp
b3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9CisgIC5ncmFkaWVudCB7Cisg
ICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7CisgIH0K
Kzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2PgorICA8ZGl2IGNsYXNzPSJz
Y3JvbGxhYmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQ1MHB4Ij4KKyAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3
aWR0aDogNDAwcHgiPgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDog
MTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFi
bGUiIHN0eWxlPSJ3aWR0aDogMzUwcHgiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIg
c3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICA8ZGl2
IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDMwMHB4Ij4KKyAgICAgICAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0
eWxlPSJ3aWR0aDogMjUwcHgiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0
eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMjAwcHgiPgorICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBw
eDsiPjwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxl
PSJ3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2Pgor
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsg
aGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsi
PjwvZGl2PgorICAgICAgICAgIDwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50
IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhl
aWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3Jh
ZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8
L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIFRoZSBDU1NPTS1WaWV3IHNw
ZWMgYW5kIGltcGxlbWVudGF0aW9ucyBmb2xsb3cgZGlmZmVyZW50IGFsZ29yaXRobXMgKHNjcm9s
bHMgcGVyZm9ybWVkIGluIHBhcmFsbGVsLCBhcyBpbm5lci10by1vdXRlciBzZXF1ZW5jZSBvciBh
cyBvdXRlci10by1pbm5lciBzZXF1ZW5jZSkuCisgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20v
dzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMzEyNworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZh
ciBkaXZzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNjcm9sbGFibGUiKTsKKyAgICAg
IGRpdnMuZm9yRWFjaCgoc2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICByZXNldFNjcm9sbChz
Y3JvbGxhYmxlRGl2KTsKKyAgICAgIH0pOworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbElu
dG9WaWV3KHtpbmxpbmU6ICJzdGFydCIsIGJsb2NrOiAic3RhcnQiLCBiZWhhdmlvcjogImF1dG8i
fSk7CisgICAgICB2YXIgc2Nyb2xsVG9wID0gbmV3IE1hcCgpOworICAgICAgdmFyIGlzU21vb3Ro
ID0gbmV3IE1hcCgpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7Cisg
ICAgICAgIHNjcm9sbFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxU
b3ApOworICAgICAgICBpc1Ntb290aC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5j
bGFzc0xpc3QuY29udGFpbnMoInNtb290aEJlaGF2aW9yIikpOworICAgICAgICAvLyBJZiBzY3Jv
bGwgb3BlcmF0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgc2Nyb2xsIGJveGVz
IHdpdGggaW5zdGFudCBiZWhhdmlvciBtaWdodCBhbHNvIG5lZWQgdG8gd2FpdCBmb3IgdGhlaXIg
cHJlZGVjZXNzb3JzLgorICAgICAgICBpZiAoaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQor
ICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2KSwg
NTAwLCAiRWxlbWVudCB3aXRoIHNtb290aCBiZWhhdmlvciBzaG91bGQgbm90IHNjcm9sbCBpbW1l
ZGlhdGVseSIpOworICAgICAgfSk7CisKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcoQXJyYXkuZnJv
bShkaXZzKSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgIGRpdnMu
Zm9yRWFjaCgoc2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bl9lcXVhbChzY3JvbGxUb3AuZ2V0KHNjcm9sbGFibGVEaXYpLCBzY3JvbGxhYmxlRGl2LnNjcm9s
bFRvcCwgIlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICBpZiAoIWlz
U21vb3RoLmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAgICAgICAgYXNzZXJ0X2FueShhc3Nl
cnRfZXF1YWxzLCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgWzAsIDUwMF0sICJFbGVtZW50IHdp
dGggaW5zdGFudCBiZWhhdmlvciBzaG91bGQganVtcCB0byB0aGUgZmluYWwgcG9zaXRpb24iKTsK
KyAgICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGFibGVEaXYuc2Nyb2xsVG9wLCA1MDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAg
ICAgICAgICAgIHNjcm9sbFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3Jv
bGxUb3ApOworICAgICAgICAgIH0pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICBy
ZWplY3QoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH0sICJzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3Rl
ZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODU1YTZhNjEwZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIFNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwg
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwg
MjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNj
cm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNj
cm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5n
IHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAg
CitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcg
ZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1
MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlv
bnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAo
NTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4g
cGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNp
bmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBz
Y3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcg
c21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xs
SW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290
aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbElu
dG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGgg
c2Nyb2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBTY3JvbGwgcG9z
aXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4gaW5zdGFudCBz
Y3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMGE0MWI4YjA4ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21v
b3RoLXBvc2l0aW9ucy5odG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcg
YW4gZWxlbWVudCB3aXRoIHNtb290aCBiZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1l
b3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6ly
aWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3Jv
bGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Ny
b2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhl
aWdodDogMjAwcHg7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+
Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJz
Y3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7
IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAg
PHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6
IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdo
dDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8
c2NyaXB0PgorICAvLyBGb3Igc21vb3RoIGJlaGF2aW9yLCBldm9sdXRpb24gb2Ygc2Nyb2xsIHBv
c2l0aW9ucyBvdmVyIHRpbWUgaXMgbm90IHNwZWNpZmllZCBieSBDU1NPTSBWaWV3LgorICAvLyBU
aGlzIHRlc3QgcmVsaWVzIG9uIHRoZSBtaW5pbWFsIGFzc3VtcHRpb24gdGhhdCBzY3JvbGwgcG9z
aXRpb24gZnVuY3Rpb25zIGFyZSBtb25vdG9uaWMuCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwg
InNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaChmdW5jdGlvbihzY3JvbGxGdW5j
dGlvbikgeworICAgIFt7bGVmdDowLCB0b3A6MH0sIHtsZWZ0OjEwMDAsIHRvcDowfSwge2xlZnQ6
MCwgdG9wOjUwMH0sIHtsZWZ0OjEwMDAsIHRvcDo1MDB9XS5mb3JFYWNoKChpbml0aWFsKSA9PiB7
CisgICAgICB2YXIgZmluYWxMZWZ0ID0gNTAwOworICAgICAgdmFyIGZpbmFsVG9wID0gMjUwOwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCBpbml0aWFsLmxlZnQsIGluaXRpYWwudG9wKTsKKyAg
ICAgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAg
IHZhciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMob2xkTGVmdCwgaW5pdGlhbC5sZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgYmUgYXQgaW5p
dGlhbCBwb3NpdGlvbiIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCBpbml0aWFs
LnRvcCwgIlNjcm9sbFRvcCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIpOworICAgICAg
ICAgIGlmIChzY3JvbGxGdW5jdGlvbiA9PT0gInNjcm9sbEJ5IikKKyAgICAgICAgICAgIHNjcm9s
bE5vZGUob3ZlcmZsb3dOb2RlLCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCAt
IGluaXRpYWwubGVmdCwgZmluYWxUb3AgLSBpbml0aWFsLnRvcCk7CisgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAic21v
b3RoIiwgZmluYWxMZWZ0LCBmaW5hbFRvcCk7CisgICAgICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhv
dmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAg
ICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICBh
c3NlcnRfbGVzc190aGFuX2VxdWFsKE1hdGguaHlwb3QoZmluYWxMZWZ0IC0gbmV3TGVmdCwgZmlu
YWxUb3AgLSBuZXdUb3ApLCBNYXRoLmh5cG90KGZpbmFsTGVmdCAtIG9sZExlZnQsIGZpbmFsVG9w
IC0gb2xkVG9wKSwgIlNjcm9sbCBwb3NpdGlvbiBzaG91bGQgbW92ZSB0b3dhcmRzIHRoZSBmaW5h
bCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3TGVmdCwgZmluYWxMZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVh
Y2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1Rv
cCwgZmluYWxUb3AsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7Cisg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAg
ICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAg
ICAgICAgICByZWplY3QoZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZG9uZSkK
KyAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAg
ICAgIH0sIGBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKCR7aW5pdGlhbC5sZWZ0fSwgJHtpbml0aWFsLnRvcH0pIHRvICgke2ZpbmFsTGVmdH0s
ICR7ZmluYWxUb3B9KSB1c2luZyAke3Njcm9sbEZ1bmN0aW9ufSgpIGApOworICAgIH0pOworICB9
KTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7
CisgICAgICB2YXIgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBzY3Jv
bGxEaXJlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93
Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxU
b3A7CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhvbGRUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAi
c21vb3RoIiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2Rl
LCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQg
PSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZs
b3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsK
KyAgICAgICAgICAgIGlmIChzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkKSB7CisgICAgICAgICAgICAg
IGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQg
a2VlcHMgZGVjcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2Vx
dWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICBzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkID0gbmV3
TGVmdCA8PSBvbGRMZWZ0ICYmIG5ld1RvcCA8PSBvbGRUb3A7CisgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAi
U2Nyb2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNz
X3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIp
OworICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7Cisg
ICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAg
ICAgIGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxO
b2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCA1MDAsIDI1MCk7CisgICAgICAg
ICAgICAgICAgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAg
ICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24i
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hv
dWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9sZExl
ZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBjYXRj
aChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChkb25l
KQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Nyb2xs
IHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIg
c21vb3RoIHNjcm9sbGluZyIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRTY3Jv
bGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZhbHNl
OworICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZh
ciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhv
bGRMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAg
ICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAg
ICB0cnkgeworICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7
CisgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAg
ICAgaWYgKCFpbml0aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfbGVz
c190aGFuX2VxdWFsKG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNp
bmciKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1Rv
cCwgIlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdM
ZWZ0ID4gMTAwMCAmJiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0
aGUgaW5pdGlhbCBzY3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQg
PSB0cnVlOworICAgICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xs
IiwgImluc3RhbnQiLCA1MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVmdCA9IG92ZXJm
bG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9k
ZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAs
ICJTY3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZp
bmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAg
aWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Ny
b2xsTGVmdCBzaG91bGQgc3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgc3RheSBhdCBmaW5hbCBw
b3NpdGlvbiIpOworICAgICAgICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAg
ICAgICAgICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAg
IHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBh
Ym9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yNzk5ZmRjYzI5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1Mg
aWZyYW1lIGxvYWRlZCAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJh
bWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxp
bmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMC4uOTZkMTFhYjk2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5o
dG1sCkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUg
IGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5
bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xs
T3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9y
IG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIg
Y29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdh
bmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJl
aGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rp
dj4KKzxpZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIg
c3JjZG9jPSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAg
bWFyZ2luOiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhh
dmlvcjogYXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1i
ZWhhdmlvcjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBz
dHlsZT0nd2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1n
cmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxh
eTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNw
YW4gaWQ9J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVy
dGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5k
OiBibGFjazsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lm
cmFtZT4KKzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFt
ZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxlZEVsZW1lbnQsIGVsZW1l
bnRUb1JldmVhbDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVt
ZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlmcmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdF
bGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAg
ICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9s
bFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rp
b24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOwor
ICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1
bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlv
cmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNj
cm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0p
OworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9s
bEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJl
aGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAg
ICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVu
Y3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3Nl
cnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZl
YWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9
LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwLi4wNWViMzI3MmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5k
b3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2lu
ZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMzMzNkNjRmODUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1l
LXdpbmRvdy5odG1sCkBAIC0wLDAgKzEsMTcxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50
ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rp
bmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xs
LWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOp
ZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYt
c2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9Imxv
ZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0
PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkg
eworICAgICAgbWFyZ2luOiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNj
cm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAg
IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+Cisg
ICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHls
ZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48
L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1i
bG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1s
PiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rl
c3QoImlmcmFtZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVu
dCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAg
dmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgIHNj
cm9sbGluZ1dpbmRvdyA9IGlmcmFtZU5vZGUuY29udGVudFdpbmRvdzsKKyAgICBzdHlsZWRFbGVt
ZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVs
ZW1lbnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJlbGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9s
bEJ5Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7Cisg
ICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Ny
b2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Ny
b2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIp
OworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3Jg
KTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JX
aW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
c2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAg
ICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAg
ICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVy
biB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9
KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGlu
Z1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7Cisg
ICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVh
bFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0s
ICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUg
d2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93
KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRv
dywgInNjcm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9s
bEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9
PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9
KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7CisKKyAgfSkpOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNWI0ODg2OWEwZC4uZTI3OThiNjY0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY0IEBACisyMDE5LTEyLTExICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBu
YXRpdmUgc2Nyb2xsIGludGVyZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZy
w6lkw6lyaWMgV2FuZy4KKworICAgICAgICBUaGlzIHBhdGNoIHN1cHBvcnQgbmF0aXZlIHNjcm9s
bCBhbmltYXRpb24gb24gaU9TIHBsYXRmb3JtLiBJdCByZWxpZXMgb24gVUlTY3JvbGxWaWV3J3MK
KyAgICAgICAgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gc3VwcG9ydCBhbmQgaXMgZXhlY3V0ZWQg
aW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3cuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9v
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXdpbmRvdy5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6
IFJlcXVlc3RzIGEgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gYnkgY2FsbGluZyBhbmltYXRlZCBy
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKS4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6IEFkZCBhIGZs
YWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAg
ICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyk6IFVwZGF0ZSB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMgZnJvbSB0
aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKTogQWRkIG1fcmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb25XaXRoQW5pbWF0aW9uIHRvIGluZGljYXRlIGl0J3MgYW5pbWF0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0
aEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1Ry
ZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogVXBkYXRlIHRoZSBz
Y3JvbGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBBZGQgYSBmbGFnIHRvIGluZGljYXRl
IGlmIHRoaXMgaXMgYW4gYW5pbWF0ZWQgc2Nyb2xsIG9yIG5vdC4KKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTog
QWRkIGEgZmxhZyB0byBpbmRpY2F0ZSB0aGUgc2Nyb2xsIGlzIGFuaW1hdGVkIG9yIG5vdC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyk6IElm
IG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24gaXMgdHJ1ZSwgc2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9u
IHRvIHRoZSBXZWIgcHJvY2VzcywgZXZlbiBpZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGRvZXNuJ3Qg
Y2hhbmdlLgorICAgICAgICBNYWludGFpbiB0aGUgc3RhdHVzIG9mIG1fc3RvcFNjcm9sbEFuaW1h
dGlvbiBhbmQgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6IEFu
aW1hdGVkIHNjcm9sbCB3b24ndCBjaGFuZ2UgdGhlIHNjcm9sbCBwb3NpdGlvbiBpbW1lZGlhdGVs
eSwgc28gZG9uJ3Qgbm90aWZ5IHRoZSBzY3JvbGxpbmcgaW5mbyBub3cuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xs
KTogbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgaW5kaWNhdGVzIHRoYXQgdGhpcyBpcyBhbiBhbmlt
YXRlZCBzY3JvbGwgcmVxdWVzdC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgY29uc3QpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKTogTWFpbnRhaW4gdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKTogSWYgdGhl
IE5vZGUgaXMgcGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24sIHRoZSBwcmV2aW91cyBzY3Jv
bGwgYW5pbWF0aW9uIHNob3VsZCBzdG9wIGZpcnN0LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24gY29u
c3QpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZS5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6IEFkZCBTY3JvbGxC
ZWhhdmlvclR5cGUgdG8gaW5kaWNhdGUgaXQncyBpbnN0YW50IG9yIHNtb290aCBzY3JvbGwuCisg
ICAgICAgIEFkZCBTY3JvbGxCZWhhdmlvclN0YXR1cyB0byBpbmRpY2F0ZSB0aGUgc3RhdHVzIG9m
IHNjcm9sbGluZy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKTogVXBkYXRlIFNjcm9sbEJl
aGF2aW9yVHlwZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEpOiBBZGQgbV9jdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVh
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6Y3VycmVudFNjcm9sbEJlaGF2
aW9yVHlwZSBjb25zdCk6IE1haW50YWluIGN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldCk6IFNlbmQgYSBxdWVzdCBvZiBuYXRpdmUg
c2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0V2l0
aEFuaW1hdGlvbik6IFJlcXVlc3RzIGEgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gYnkgY2FsbGlu
ZyBhbmltYXRlZCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKS4KKwogMjAxOS0xMi0xMCAg
Q2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBX
ZWIgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDkzOWNlNGJlZTIuLjcz
MWUzMjI5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTM2NjgsNiArMzY2OCwx
NCBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNj
cm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGxUeQogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBl
ID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxU
eXBlKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJ
TkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6
OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3Np
dGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUo
cHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAg
ICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5j
ZWxBbmltYXRpb25zKCk7CiAgICAgaWYgKG9mZnNldCAhPSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNDI5ZWVlOWE5Ni4uMDJkNTg5NzU3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5jcHAKQEAgLTI0OCw3ICsyNDgsMTYgQEAgYm9vbCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEm
IHNjcm8KIAogICAgIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgp
LmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJh
Y2tGb3J3YXJkQ2FjaGU7CiAgICAgYm9vbCBpblByb2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbGFi
bGVBcmVhLmN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwot
ICAgIGlmIChpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGUpCisKKyAg
ICBib29sIHVwZGF0ZVNjcm9sbFBvc2l0aW9uID0gaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5C
YWNrRm9yd2FyZENhY2hlOworCisgICAgYm9vbCBhbmltYXRlZCA9IGZhbHNlOworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgYW5pbWF0ZWQgPSBzY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Ny
b2xsQmVoYXZpb3JUeXBlKCkgPT0gU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGg7CisgICAgLy8g
VGhlIHNjcm9sbCBwb3NpdGlvbiBvZiBhbmltYXRlZCBzY3JvbGxpbmcgd2lsbCBiZSBzZXQgYnkg
dGhlIFVJIHByb2Nlc3MuIFNvIHNob3VsZG4ndCBzZXQgaXQgbm93LgorICAgIHVwZGF0ZVNjcm9s
bFBvc2l0aW9uID0gIWFuaW1hdGVkICYmIHVwZGF0ZVNjcm9sbFBvc2l0aW9uOworI2VuZGlmCisg
ICAgaWYgKHVwZGF0ZVNjcm9sbFBvc2l0aW9uKQogICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlv
bkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNl
dCk7CiAKICAgICAvLyBJZiB0aGlzIGZyYW1lIHZpZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQg
aW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB3ZSBkb24ndCB3YW50IHRvIHVwZGF0ZSBvdXIK
QEAgLTI2MCw3ICsyNjksMTIgQEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1
ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIXN0
YXRlTm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGVOb2RlLT5zZXRSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9ncmFtbWF0aWNTY3JvbGwp
OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYXV0byBzdGF0dXMgPSBhbmltYXRlZCA/
IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2ZUFuaW1hdGlvbiA6IFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpOb3RJbkFuaW1hdGlvbjsKKyAgICBzY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhh
dmlvclN0YXR1cyhzdGF0dXMpOworI2VuZGlmCisKKyAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCwgYW5p
bWF0ZWQpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yOTEsNiArMzA1LDMyIEBAIHZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2NoZWR1bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFm
dGVyQXN5bmNTY3JvbGwoU2NyCiAgICAgbV91cGRhdGVOb2RlU2Nyb2xsUG9zaXRpb25UaW1lci5z
dGFydE9uZVNob3QoMF9zKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoU2Ny
b2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmICghbV9wYWdlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvKiBmcmFtZVZpZXcgPSBmcmFtZVZpZXdGb3JTY3JvbGxpbmdO
b2RlKG5vZGVJRCk7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChub2RlSUQgPT0gZnJhbWVWaWV3LT5zY3JvbGxpbmdOb2RlSUQoKSkgeworICAgICAgICBp
ZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAgICAgICAgIGZyYW1lVmlldy0+
c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0
aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIE92ZXJmbG93LXNjcm9sbCBh
cmVhLgorICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IGZyYW1lVmlldy0+c2Nyb2xsYWJs
ZUFyZWFGb3JTY3JvbGxMYXllcklEKG5vZGVJRCkpIHsKKyAgICAgICAgaWYgKCFpc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpCisgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xs
QmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAg
ICB9Cit9CisjZW5kaWYKKwogdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVT
Y3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGxUaW1lckZpcmVkKCkKIHsKICAgICB1cGRhdGVT
Y3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwobV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUubm9k
ZUlELCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5zY3JvbGxQb3NpdGlvbiwgbV9zY2hlZHVsZWRT
Y3JvbGxVcGRhdGUubGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbFR5cGU6OlVzZXIsIG1fc2No
ZWR1bGVkU2Nyb2xsVXBkYXRlLnVwZGF0ZUxheWVyUG9zaXRpb25BY3Rpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5oCmluZGV4IDliZTY5YWFmYjEuLjNkZTAxY2MyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgK
QEAgLTUyLDYgKzUyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5nU3RhdGVUcmVlUHJv
cGVydGllc0NoYW5nZWQoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVVcGRh
dGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3Jp
Z2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MoU2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cisj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
QWN0aXZlU2Nyb2xsU25hcEluZGljZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9u
dGFsSW5kZXgsIHVuc2lnbmVkIHZlcnRpY2FsSW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5j
cHAKaW5kZXggNzE3YmZjMmE1NS4uNGU0MDE0ZTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
Y3BwCkBAIC01Niw2ICs1Niw5IEBAIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2NyCiAjZW5kaWYKICAg
ICAsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKHN0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnMoKSkKICAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsKHN0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwoKSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICwg
bV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oc3RhdGVOb2RlLnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKQorI2VuZGlmCiAgICAgLCBtX2lzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKHN0YXRlTm9kZS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQogewog
ICAgIGlmIChoYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpAQCAtMjE5
LDEwICsyMjIsMTUgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9s
bGFibGVBcmVhUGFyYW1ldGVycyhjb25zdCBTY3JvbGxhYmxlQXIKICAgICBzZXRQcm9wZXJ0eUNo
YW5nZWQoU2Nyb2xsYWJsZUFyZWFQYXJhbXMpOwogfQogCi12b2lkIFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYg
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9s
bCkKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHJlcXVlc3RlZFdpdGhBbmltYXRpb24p
CiB7CiAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uOwogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uID0gcmVx
dWVzdGVkV2l0aEFuaW1hdGlvbjsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlcXVlc3RlZFdp
dGhBbmltYXRpb24pOworI2VuZGlmCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKTsKIH0KIApAQCAtMzE0LDYgKzMyMiwxMSBAQCB2b2lkIFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNjcm9sbGlu
Z1N0YXRlVAogICAgIGlmIChtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dy
YW1tYXRpY1Njcm9sbCkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQgc2Nyb2xs
IHBvc2l0aW9uIHJlcHJlc2VudHMgcHJvZ3JhbW1hdGljIHNjcm9sbCIsIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0
aW9uKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24g
d2l0aCBhbmltYXRpb24iLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbik7
CisjZW5kaWYKKwogICAgIGlmICghbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0LmlzRW1w
dHkoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJwYXJlbnQgcmVsYXRpdmUgc2Nyb2xsYWJs
ZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUuaAppbmRleCA0OTY3YTZjZTgxLi42YzY5MmMxZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuaApAQCAtMTExLDcgKzExMSwxMCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBGbG9hdFBvaW50
JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb247IH0KICAgICBib29sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGJvb2wgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb247IH0KKyNlbmRpZgor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3Qg
RmxvYXRQb2ludCYsIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCByZXF1
ZXN0ZWRXaXRoQW5pbWF0aW9uKTsKIAogICAgIGJvb2wgaXNNb25pdG9yaW5nV2hlZWxFdmVudHMo
KSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzOyB9CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRJc01vbml0b3JpbmdXaGVlbEV2ZW50cyhib29sKTsKQEAgLTE3MSw2
ICsxNzQsOSBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9s
bGFibGVBcmVhUGFyYW1ldGVyczsKIAogICAgIGJvb2wgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
blJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgeyBmYWxzZSB9OworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlv
biB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMg
eyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCmluZGV4IDE1MWFjMjlmOGEuLjdhZGRmZWY0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTgyLDggKzgyLDEzIEBAIHB1
YmxpYzoKICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5kZXJMYXllciBzY3JvbGxpbmcgc3Rh
dGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9k
ZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSA9IDA7CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIENhbGxlZCBmb3Igc2Nyb2xsIGFuaW1h
dGlvbiBzdGF0dXMgdXBkYXRlcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJ
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBib29sIC8qaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKi8pIHsgfQorI2VuZGlmCisK
ICAgICAvLyBDYWxsZWQgZm9yIHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gdXBkYXRlcy4KLSAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdO
b2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9zaXRpb24qLywgYm9vbCAvKnJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50
JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xs
Ki8sIGJvb2wgLyp3aXRoQW5pbWF0aW9uKi8gPSBmYWxzZSkgeyB9CiAKICAgICAvLyBEZWxlZ2F0
ZWQgc2Nyb2xsaW5nL3pvb21pbmcgaGFzIGNhdXNlZCB0aGUgdmlld3BvcnQgdG8gY2hhbmdlLCBz
byB1cGRhdGUgdmlld3BvcnQtY29uc3RyYWluZWQgbGF5ZXJzCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBtYWluRnJhbWVWaWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGF5
b3V0Vmlld3BvcnQsIGRvdWJsZSBzY2FsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXgg
NzNkY2EyOGVmMS4uMTdjN2YyYThmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMTA3
LDggKzEwNywxMiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTgogdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0
YXRlTm9kZSYgc3RhdGVOb2RlKQogewogICAgIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZSYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlPihzdGF0ZU5vZGUpOworICAgIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlOworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgd2l0aEFuaW1hdGlvbiA9IHNjcm9sbGluZ1N0YXRl
Tm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKTsKKyNlbmRpZgogICAg
IGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKQotICAgICAgICBzY3JvbGxp
bmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChzY3JvbGxpbmdOb2RlSUQo
KSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbGlu
Z1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwoKSk7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpLCB3aXRoQW5pbWF0aW9uKTsKIAogICAg
IG1faXNGaXJzdENvbW1pdCA9IGZhbHNlOwogfQpAQCAtMTU3LDIxICsxNjEsNDEgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0
YSwgU2Nyb2xsUG9zaXRpb24KICAgICBzY3JvbGxUbyhjdXJyZW50U2Nyb2xsUG9zaXRpb24oKSAr
IGRlbHRhLCBTY3JvbGxUeXBlOjpVc2VyLCBjbGFtcCk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXApCit2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
biwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wLCBib29s
IG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24pCiB7Ci0gICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVu
dFNjcm9sbFBvc2l0aW9uKQorICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3Np
dGlvbikgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIC8vIFNlbmQgdGhlIHNj
cm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIGlmIChyZXF1ZXN0QW5p
bWF0ZWRTY3JvbGwoKSAmJiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQorICAgICAgICAgICAgc2Ny
b2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzLCBTY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9s
bGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKHNjcm9sbGlu
Z05vZGVJRCgpLCBmYWxzZSk7CisgICAgICAgIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChmYWxz
ZSk7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0obmVlZFN5bmNTY3JvbGxQb3NpdGlvbik7
CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgLy8gSWYgZHVyaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgbmVlZCB0byBzdG9wIGl0
IGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuCisgICAgaWYgKHNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MoKSkKKyAgICAgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbih0cnVl
KTsKKyNlbmRpZgogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGlj
U2Nyb2xsKHNjcm9sbFR5cGUgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKLSAgICAKKwog
ICAgIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uID0gYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihwb3Np
dGlvbiwgY2xhbXApOwotICAgIAorCiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3Ry
ZWFtIDw8ICJTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSAiIDw8IHNjcm9sbGluZ05vZGVJRCgp
IDw8ICIgc2Nyb2xsVG8gIiA8PCBwb3NpdGlvbiA8PCAiIChkZWx0YSBmcm9tIGxhc3QgY29tbWl0
dGVkIHBvc2l0aW9uICIgPDwgKG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uIC0gbV9jdXJy
ZW50U2Nyb2xsUG9zaXRpb24pIDw8ICIpIik7CiAKICAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJl
bnRTY3JvbGxQb3NpdGlvbigpOwogICAgIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKTsK
IAogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKGZh
bHNlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc2V0TmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbihmYWxzZSk7CisgICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGZh
bHNlKTsKKyNlbmRpZgogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJy
ZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKQEAgLTE3OSw2ICsyMDMsMTAgQEAgdm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiAg
ICAgcmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpOwogICAgIHJlcG9zaXRpb25SZWxhdGVkTGF5
ZXJzKCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghcmVxdWVzdEFuaW1h
dGVkU2Nyb2xsKCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIHNjcm9sbGluZ1RyZWUo
KS5ub3RpZnlSZWxhdGVkTm9kZXNBZnRlclNjcm9sbFBvc2l0aW9uQ2hhbmdlKCp0aGlzKTsKICAg
ICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMpOwogfQpA
QCAtMjY2LDYgKzI5NCwzNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpkdW1w
UHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcgogICAgIHRzLmR1bXBQ
cm9wZXJ0eSgic2Nyb2xsYWJsZSBhcmVhIHBhcmFtZXRlcnMiLCBtX3Njcm9sbGFibGVBcmVhUGFy
YW1ldGVycyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wgYW5pbWF0ZWQp
Cit7CisgICAgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgPSBhbmltYXRlZDsKK30KKworYm9vbCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGw7Cit9CisKK3ZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9vbCBp
blByb2dyZXNzKQoreworICAgIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGluUHJvZ3Jl
c3M7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3M7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3Rv
cEN1cnJlbnRTY3JvbGxBbmltYXRpb24oYm9vbCBzdG9wKQoreworICAgIG1fbmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbiA9IHN0b3A7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdAoreworICAg
IHJldHVybiBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb247Cit9CisjZW5kaWYKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCA0Y2JmNGQxYWYwLi5mOWYzMTBkYjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIEZsb2F0U2l6ZSBz
Y3JvbGxEZWx0YVNpbmNlTGFzdENvbW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFNjcm9s
bFBvc2l0aW9uIC0gbV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb247IH0KIAogICAgIC8vIFRo
ZXNlIGFyZSBpbXBlcmF0aXZlOyB0aGV5IGFkanVzdCB0aGUgc2Nyb2xsaW5nIGxheWVycy4KLSAg
ICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlw
ZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29u
dGVudEVkZ2VzKTsKKyAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxU
eXBlID0gU2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0
aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzLCBib29sIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24gPSBm
YWxzZSk7CiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmLCBTY3JvbGxQb3NpdGlv
bkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOwogCiAgICAgdm9p
ZCB3YXNTY3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0
aW9uLCBPcHRpb25hbDxGbG9hdFJlY3Q+IG92ZXJyaWRlTGF5b3V0Vmlld3BvcnQgPSB7IH0sIFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
OjpTeW5jKTsKQEAgLTkxLDYgKzkxLDE1IEBAIHB1YmxpYzoKICAgICBjb25zdCBMYXllclJlcHJl
c2VudGF0aW9uJiBzY3JvbGxDb250YWluZXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xs
Q29udGFpbmVyTGF5ZXI7IH0KICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxl
ZENvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsg
fQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNldFJlcXVlc3RBbmltYXRl
ZFNjcm9sbChib29sKTsKKyAgICBib29sIHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sKTsKKyAgICBib29sIHNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSBjb25zdDsKKyAgICB2b2lkIHNldE5lZWRzU3RvcEN1
cnJlbnRTY3JvbGxBbmltYXRpb24oYm9vbCk7CisgICAgYm9vbCBuZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uKCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Ny
b2xsaW5nTm9kZUlEKTsKIApAQCAtMTQ4LDYgKzE1NywxMiBAQCBwcml2YXRlOgogICAgIFNjcm9s
bGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKICAgICBib29s
IG1faXNGaXJzdENvbW1pdCB7IHRydWUgfTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgYm9vbCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9uZWVkc1N0b3BD
dXJyZW50U2Nyb2xsQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgTGF5ZXJSZXBy
ZXNlbnRhdGlvbiBtX3Njcm9sbENvbnRhaW5lckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRp
b24gbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKaW5kZXggZjQ1N2IxNTYxZS4uZjZkMzU2NjVmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC01NCwxMSArNTQsMTkgQEAgZW51bSBjbGFzcyBTY3JvbGxQ
b3NpdGlvbkNsYW1wIDogdWludDhfdCB7CiAgICAgVG9Db250ZW50RWRnZXMsCiB9OwogCi0vLyBG
SVhNRTogQWRkIGFub3RoZXIgc3RhdHVzIEluTmF0aXZlQW5pbWF0aW9uIHRvIGluZGljYXRlIG5h
dGl2ZSBzY3JvbGxpbmcgaXMgaW4gcHJvZ3Jlc3MuCi0vLyBTZWU6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvclR5cGUg
OiB1aW50OF90IHsKKyAgICBJbnN0YW50LAorICAgIFNtb290aCwKK307CisjZW5kaWYKKwogZW51
bSBjbGFzcyBTY3JvbGxCZWhhdmlvclN0YXR1cyA6IHVpbnQ4X3QgewogICAgIE5vdEluQW5pbWF0
aW9uLAogICAgIEluTm9uTmF0aXZlQW5pbWF0aW9uLAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgSW5OYXRpdmVBbmltYXRpb24sCisjZW5k
aWYKIH07CiAKIGlubGluZSBTY3JvbGxEaXJlY3Rpb24gbG9naWNhbFRvUGh5c2ljYWwoU2Nyb2xs
TG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgaXNWZXJ0aWNhbCwgYm9vbCBpc0ZsaXBw
ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDhlNmIwYzY1MzUu
LjFkMmMzMmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00
NjUsNiArNDY1LDEwIEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sLyoKIHsKICAgICBMT0dfV0lUSF9T
VFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
ICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNj
cm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlmIChwcm9oaWJpdHNT
Y3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggYThiNjAzN2ZiYy4uMTUwNzA0YzJkMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNzEsNiArNzEsOSBAQCBT
Y3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEoKQogICAgICwgbV9zY3JvbGxPcmlnaW5DaGFu
Z2VkKGZhbHNlKQogICAgICwgbV9jdXJyZW50U2Nyb2xsVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oU2Nyb2xsVHlwZTo6VXNlcikpCiAgICAgLCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0
YXRlKGZhbHNlKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JP
TExJTkcpCisgICAgLCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCkpCisjZW5kaWYKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggN2Q5NzkwNzE4NS4uNTU2
NzJmODFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0y
NDYsNiArMjQ2LDExIEBAIHB1YmxpYzoKICAgICBTY3JvbGxUeXBlIGN1cnJlbnRTY3JvbGxUeXBl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsVHlwZT4obV9jdXJyZW50U2Nyb2xs
VHlwZSk7IH0KICAgICB2b2lkIHNldEN1cnJlbnRTY3JvbGxUeXBlKFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSkgeyBtX2N1cnJlbnRTY3JvbGxUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcm9s
bFR5cGUpOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQorICAgIFNjcm9sbEJlaGF2aW9yVHlwZSBjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsQmVoYXZpb3JUeXBlPihtX2N1cnJl
bnRTY3JvbGxCZWhhdmlvclR5cGUpOyB9CisgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsQmVoYXZp
b3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZSBzY3JvbGxCZWhhdmlvclR5cGUpIHsgbV9jdXJyZW50
U2Nyb2xsQmVoYXZpb3JUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcm9sbEJlaGF2aW9y
VHlwZSk7IH0KKyNlbmRpZgorCiAgICAgYm9vbCBzY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGU7IH0KICAg
ICB2b2lkIHNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKGJvb2wgc2hvdWxkQ2xlYXIp
IHsgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSA9IHNob3VsZENsZWFyOyB9CiAKQEAg
LTQwOSw2ICs0MTQsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hh
bmdlZCA6IDE7CiAgICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9s
bFR5cGUKICAgICB1bnNpZ25lZCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAg
IHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCmluZGV4IDlmZDRmMmFiYTYuLjQ3YmNmN2Q1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjYwNCwxMiArMjYwNCwyNCBAQCBTY3JvbGxPZmZz
ZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Ny
b2xsT2Zmc2V0KSBjbwogCiB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBT
Y3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxD
bGFtcGluZyBjbGFtcGluZykKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xs
QmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRpZgorCiAgICAgaWYgKGN1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1h
dGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CiAKICAg
ICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9s
bE9mZnNldDsKLSAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZz
ZXQoKSkKKyAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQo
KSkgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
CisgICAgICAgIC8vIElmIFVJU2Nyb2xsVmlldyBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1h
dGlvbiwgdGhlIHNjcm9sbCBvZmZzZXQgb2YgdGhlIFdlYiBwcm9jZXNzIG1pZ2h0IGJlIG92ZXJy
aWRkZW4uCisgICAgICAgIC8vIFNvIHdlIG5lZWQgdG8gY2FsbCByZXF1ZXN0U2Nyb2xsUG9zaXRp
b25VcGRhdGUgaGVyZSBhbmQgbGV0IGl0IGJlIGNoZWNrZWQgb24gdGhlIFVJIHByb2Nlc3MuCisg
ICAgICAgIC8vIElmIHRoZSBzY3JvbGwgb2Zmc2V0IG9uIHRoZSBVSSBwcm9jZXNzIGlzIGRpZmZl
cmVudCwgdGhlIGNvcnJlY3Qgc2Nyb2xsIG9mZnNldCBuZWVkcyB0byBzeW5jIGJhY2sgdG8gdGhl
IFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkg
PT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICAgICAg
cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFt
cGVkU2Nyb2xsT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAg
IGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRD
dXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKQEAgLTI2NDEsNiArMjY1MywxNCBAQCB2b2lk
IFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zm
c2V0JiBvZmZzZXQsIFNjcm9sbAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVu
dFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKIAor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAg
c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7
CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21P
ZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNT
Y3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgU2Nyb2xs
T2Zmc2V0IG5ld1Njcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkID8gY2xhbXBTY3JvbGxPZmZzZXQob2Zmc2V0KSA6IG9mZnNldDsKICAgICBpZiAoY3VycmVu
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0
aXZlQW5pbWF0aW9uKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggOWI1OWNmNmJhNi4uZmFjNTQ2NmJmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1OSBAQAorMjAxOS0xMi0xMSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0
aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcgYXMgYW4g
ZXhwZXJpbWVudGFsIGZlYXR1cmUuIE9uIGlvcyBwbGF0Zm9ybSwgdXNlIG5hdGl2ZSBhbmltYXRl
ZCBzY3JvbGxpbmcKKyAgICAgICAgaW50ZXJmYWNlcyB0byBwZXJmb3JtYW5jZSBzbW9vdGggc2Ny
b2xsIGFuZCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorCisg
ICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29k
ZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46
OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAocG9pbnRzRXF1YWxJblJvdW5kVG9EZXZp
Y2VQaXhlbCk6IEhlbHAgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdHdvIGZsb2F0IHBvaW50cyBhcmUg
bm90IGVxdWFsIGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwuCisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsT3JpZ2luOmFuaW1hdGVk
Ol0pOiBBZGQgYW5pbWF0ZWQgZmxhZyB0byBzdGFydCBhIGFuaW1hdGVkIHNjcm9sbCBpZiBuZWVk
ZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0
aW9uOl0pOiBTZW5kIHNyb2xsIGVuZCBtZXNzYWdlIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmln
aW46XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJ
bnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnQ6OnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKTogUHJvdmlkZSBp
bnRlcmZhY2UgZm9yIGFuaW1hdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJl
ZSk6IEFkZCBhbmltYXRlZCBmbGFnLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKTogU3luYyB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJl
ZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhbmltYXRlZCBzY3JvbGxpbmcgaW5mbyB0byBtX3Jl
cXVlc3RlZFNjcm9sbEluZm8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNz
RGlkQ2hhbmdlKTogU3luYyBzY3JvbGxBbmltYXRpb25JblByb2dyZXNzIHRvIHRoZSBXZWIgcHJv
Y2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdl
KTogRGl0dG8uIEl0J3Mgc3BlY2lmaWMgdG8gdGhlIHJvb3Qgbm9kZS4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVl
Tm9kZURpZFNjcm9sbCk6IEFkZCBhbmltYXRlZCBpbmZvLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2Rl
SXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogRGl0dG8uCisgICAgICAgICog
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9z
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06CisgICAgICAgICgtW1dL
U2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5n
QW5pbWF0aW9uOl0pOiBTZW5kIHNjb2xsIGVuZCBpbmZvIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAg
ICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29t
bWl0U3RhdGVBZnRlckNoaWxkcmVuKTogSWYgdGhlIHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgV2Vi
IHByb2Nlc3MgaXNuJ3QgZXF1YWwgdG8gdGhlIFVJIHByb2Nlc3MsCisgICAgICAgIHRoZSBzY3Jv
bGwgcG9zaXRpb24gc2hvdWxkIGJlIHN5bmNocm9uaXplZCwgZXZlbiB0aGVyZSdzIG5vIHNjcm9s
bGluZyBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXll
cnMpOiBDYWxsaW5nIHRoZSBuYXRpdmUgYW5pbWF0ZWQgc2Nyb2xsaW5nIGludGVyZmFjZSBmb3Ig
c21vb3RoIHNjcm9sbC4KKyAgICAgICAgSWYgdGhlcmUncyBhIHNjcm9sbCBhbmltYXRpb24gcGVy
Zm9ybWluZywgaXQgc2hvdWxkIGJlIHN0b3BwZWQgZmlyc3QsIHRoZW4gc3RhcnQgYSBuZXcgc2Ny
b2xsaW5nLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uKTogU3luYyBzY3JvbGwg
ZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwp
OiBUbyBjYWxsIGRpZmZlcmVudCBmdW5jdGlvbnMgZm9yIHNtb290aCBhbmQgaW5zdGFudCBzY3Jv
bGwuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVx
dWVzdFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Ny
b2xsV2l0aEFuaW1hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9k
ZSk6CisKIDIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgog
CiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4
IGQ3YjFlMTkzNzIuLjg3N2QyOWEzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKQEAgLTE1Miw2ICsxNTIsOSBAQCB2b2lkIEFy
Z3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0CiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMsIHNjcm9sbGFibGVBcmVhUGFyYW1l
dGVycykKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pCiAg
ICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFNDUk9MTElO
R19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisjZW5kaWYK
IAogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuc2Nyb2xsQ29udGFpbmVy
TGF5ZXIoKSk7CkBAIC0yNjAsNyArMjYzLDEyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsCiAg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9s
bCk7CisgICAgICAgIGJvb2wgc2Nyb2xsV2l0aEFuaW1hdGlvbiA9IGZhbHNlOworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Nyb2xsV2l0aEFu
aW1hdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgbm9k
ZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xsV2l0aEFuaW1hdGlvbik7CiAgICAgfQogCiAgICAgaWYg
KG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Ny
b2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjE2LDkgQEAgc3RhdGljIHZvaWQgZHVt
cChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2Rl
LCBib29sIGMKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKSkgewogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9z
aXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB0cy5kdW1w
UHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0aWMiLCBub2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVl
c3RlZC1zY3JvbGwtcG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICghY2hh
bmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggZTZkMjNmY2Y0MC4uMTA4
ZDViZmEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC0xNjMyLDYgKzE2MzIsMTEgQEAgc3RhdGljIGlubGluZSBib29sIHBvaW50c0Vx
dWFsSW5EZXZpY2VQaXhlbHMoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVMKICAg
ICAgICAgJiYgZmFicyhhLnkgKiBkZXZpY2VTY2FsZUZhY3RvciAtIGIueSAqIGRldmljZVNjYWxl
RmFjdG9yKSA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCk7CiB9CiAKK3N0
YXRpYyBpbmxpbmUgYm9vbCBwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKENHUG9pbnQg
YSwgQ0dQb2ludCBiLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICByZXR1cm4gQ0dS
b3VuZChhLnggKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChiLnggKiBkZXZpY2VTY2Fs
ZUZhY3RvcikKKyAgICAgICAgJiYgQ0dSb3VuZChhLnkgKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0g
Q0dSb3VuZChiLnkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CiBzdGF0aWMgQ0dTaXplIHJvdW5k
U2Nyb2xsVmlld0NvbnRlbnRTaXplKGNvbnN0IFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBD
R1NpemUgY29udGVudFNpemUpCiB7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBwYWdl
LmRldmljZVNjYWxlRmFjdG9yKCk7CkBAIC0yMzU2LDkgKzIzNjEsMTAgQEAgc3RhdGljIFdlYkNv
cmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50
IGNvbnRlbnRPZmYKICAgICByZXR1cm4gY29udGVudE9mZnNldC5jb25zdHJhaW5lZEJldHdlZW4o
V2ViQ29yZTo6RmxvYXRQb2ludCgpLCBXZWJDb3JlOjpGbG9hdFBvaW50KG1heGltdW1Db250ZW50
T2Zmc2V0KSk7CiB9CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihX
ZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6
SW50UG9pbnQpc2Nyb2xsT3JpZ2luCistICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3Np
dGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdl
YkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDooQk9PTClhbmltYXRlZAogewot
ICAgIGlmIChfY29tbWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uIHx8IF9keW5hbWljVmlld3Bv
cnRVcGRhdGVNb2RlICE9IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVz
aXppbmcpCisgICAgLy8gQW5pbWF0ZWQgc2Nyb2xsaW5nIHNob3VsZG4ndCBiZSBza2lwcGVkLgor
ICAgIGlmICghYW5pbWF0ZWQgJiYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwg
X2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRh
dGVNb2RlOjpOb3RSZXNpemluZykpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkNvcmU6OkZs
b2F0UG9pbnQgY29udGVudE9mZnNldCA9IFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxP
ZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHRvRmxvYXRTaXplKHNjcm9sbE9yaWdp
bikpOwpAQCAtMjM3MiwxMyArMjM3OCwyMSBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBj
b25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogCiAg
ICAgW19zY3JvbGxWaWV3IF9zdG9wU2Nyb2xsaW5nQW5kWm9vbWluZ0FuaW1hdGlvbnNdOwogCi0g
ICAgaWYgKCFDR1BvaW50RXF1YWxUb1BvaW50KGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29y
ZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdKSkKLSAgICAgICAgW19zY3JvbGxW
aWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
XTsKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhleSBhcmUgbm90IGVxdWFsLCBidXQgaW4g
dGhlIHNhbWUgZGV2aWNlIHBpeGVsLCBzbyBfc2Nyb2xsVmlldyB3b24ndCBjaGFuZ2UuCisgICAg
Ly8gV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIHJvdW5kIHRvIGRldmljZSBwaXhlbCBoZXJlLgor
ICAgIGlmICghcG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbChjb250ZW50T2Zmc2V0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFtfc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XSwgX3BhZ2Ut
PmRldmljZVNjYWxlRmFjdG9yKCkpKQorICAgICAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudE9m
ZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMgYW5pbWF0ZWQ6YW5pbWF0
ZWRdOwogICAgIGVsc2UgewogICAgICAgICAvLyBJZiB3ZSBoYXZlbid0IGNoYW5nZWQgYW55dGhp
bmcsIHRoZXJlIHdvdWxkIG5vdCBiZSBhbnkgVmlzaWJsZUNvbnRlbnRSZWN0IHVwZGF0ZSBzZW50
IHRvIHRoZSBjb250ZW50LgogICAgICAgICAvLyBUaGUgV2ViUHJvY2VzcyB3b3VsZCBrZWVwIHRo
ZSBpbnZhbGlkIGNvbnRlbnRPZmZzZXQgYXMgaXRzIHNjcm9sbCBwb3NpdGlvbi4KICAgICAgICAg
Ly8gVG8gc3luY2hyb25pemUgdGhlIFdlYlByb2Nlc3Mgd2l0aCB3aGF0IGlzIG9uIHNjcmVlbiwg
d2Ugc2VuZCB0aGUgVmlzaWJsZUNvbnRlbnRSZWN0IGFnYWluLgogICAgICAgICBfcGFnZS0+cmVz
ZW5kTGFzdFZpc2libGVDb250ZW50UmVjdHMoKTsKKyAgICAgICAgLy8gSWYgX3Njcm9sbFZpZXcg
d29uJ3QgY2hhbmdlLCB3ZSBzdGlsbCBuZWVkIHRvIHRlbGwgdGhlIFdlYiBwcm9jZXNzIHRoYXQg
dGhlIGFuaW1hdGlvbiBzdG9wcGVkLgorICAgICAgICBpZiAoYW5pbWF0ZWQpIHsKKyAgICAgICAg
ICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSogY29vcmRpbmF0b3Ig
PSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOworICAgICAgICAgICAgaWYgKGNv
b3JkaW5hdG9yKQorICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9v
dE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOworICAgICAg
ICB9CiAgICAgfQogfQogCkBAIC0yODk0LDYgKzI5MDgsMTAgQEAgc3RhdGljIFdlYkNvcmU6OkZs
b2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRl
bnRPZmYKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjooVUlTY3Jv
bGxWaWV3ICopc2Nyb2xsVmlldwogewogICAgIFtzZWxmIF9kaWRGaW5pc2hTY3JvbGxpbmddOwor
CisgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRv
ciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgaWYgKGNvb3JkaW5h
dG9yKQorICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsKIH0KIAogLSAodm9pZClfc2Nyb2xs
Vmlld0RpZEludGVycnVwdERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0lu
dGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaAppbmRleCA4YTI4N2VmNzIwLi42NTg2OWVkMTUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaApAQCAtMTI5
LDcgKzEyOSw3IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlcjsKIAogLSAoUmVmUHRyPFdl
YktpdDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdDsKIAotLSAodm9pZClfc2Nyb2xs
VG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRp
b24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW47CistICh2b2lk
KV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3Jv
bGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbiBh
bmltYXRlZDooQk9PTClhbmltYXRlZDsKIC0gKEJPT0wpX3Njcm9sbFRvUmVjdDooV2ViQ29yZTo6
RmxvYXRSZWN0KXRhcmdldFJlY3Qgb3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KW9yaWdpbiBt
aW5pbXVtU2Nyb2xsRGlzdGFuY2U6KGZsb2F0KW1pbmltdW1TY3JvbGxEaXN0YW5jZTsKIAogLSAo
ZG91YmxlKV9pbml0aWFsU2NhbGVGYWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgKaW5kZXggZTg0ODI0ZmQ4NS4uZGUzZDMzNjc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaApAQCAtMTgxLDYgKzE4MSw4IEBAIHB1YmxpYzoKICAgICAvLyBUZWxsIHRoZSB2
aWV3IHRvIHNjcm9sbCB0byB0aGUgZ2l2ZW4gcG9zaXRpb24sIGFuZCB3aGV0aGVyIHRoaXMgd2Fz
IGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbChj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RT
Y3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSB7IH0KKwogICAgIC8v
IFJldHVybiB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gKG5vdCBuZWNlc3NhcmlseSB0aGUg
c2FtZSBhcyB0aGUgV2ViQ29yZSBzY3JvbGwgcG9zaXRpb24sIGJlY2F1c2Ugb2Ygc2NhbGluZywg
aW5zZXRzIGV0Yy4pCiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQ
b3NpdGlvbigpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbQppbmRleCAzODBmMTI0NDQzLi4wYTQyZjk0NDk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMjI0LDggKzIyNCwxNCBA
QCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZShj
b25zdCBSZW1vdGVMYXllclRyZWVUcmFucwogCiAgICAgLy8gSGFuZGxlIHJlcXVlc3RlZCBzY3Jv
bGwgcG9zaXRpb24gdXBkYXRlcyBmcm9tIHRoZSBzY3JvbGxpbmcgdHJlZSB0cmFuc2FjdGlvbiBh
ZnRlciBkaWRDb21taXRMYXllclRyZWUoKQogICAgIC8vIGhhcyB1cGRhdGVkIHRoZSB2aWV3IHNp
emUgYmFzZWQgb24gdGhlIGNvbnRlbnQgc2l6ZS4KLSAgICBpZiAocmVxdWVzdGVkU2Nyb2xsSW5m
by5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlKQotICAgICAgICBtX3dlYlBhZ2VQcm94eS5y
ZXF1ZXN0U2Nyb2xsKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24s
IGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbE9yaWdpbigpKTsKKyAgICBpZiAocmVxdWVzdGVk
U2Nyb2xsSW5mby5yZXF1ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlKSB7CisgICAgICAgIG1fd2Vi
UGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbgorICAgICAgICAgICAgLCBsYXllclRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmln
aW4oKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgICAgICAsIHJlcXVlc3RlZFNj
cm9sbEluZm8ucmVxdWVzdFdpdGhBbmltYXRpb24KKyNlbmRpZgorICAgICAgICAgICAgKTsKKyAg
ICB9CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIAogICAgIGlmIChtX2RlYnVn
SW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDQ4MjNmNzZhOTcuLjhjZjFkODRhMTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTIw
OCw3ICsyMDgsNyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmN1cnJl
bnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OgogfQogCiAvLyBUaGlzIGNvbWVz
IGZyb20gdGhlIHNjcm9sbGluZyB0cmVlLgotdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xs
ZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRp
b25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKK3ZvaWQgUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xs
aW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3Np
dGlvbiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24s
IGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCiB7CiAgICAgLy8gU2Nyb2xsIHVw
ZGF0ZXMgZm9yIHRoZSBtYWluIGZyYW1lIGFyZSBzZW50IHZpYSBXZWJQYWdlUHJveHk6OnVwZGF0
ZVZpc2libGVDb250ZW50UmVjdHMoKQogICAgIC8vIHNvIGRvbid0IHNlbmQgdGhlbSBoZXJlLgpA
QCAtMjIyLDIxICsyMjIsMzYgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQKICAgICBtX3dlYlBh
Z2VQcm94eS5zY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RpZFNjcm9sbCgpOwogI2VuZGlmCiAKLSAg
ICBpZiAobV9zY3JvbGxpbmdUcmVlLT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKCkpCisg
ICAgaWYgKG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpICYm
ICFpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OlNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoc2Nyb2xsZWROb2RlSUQsIG5ld1Njcm9sbFBv
c2l0aW9uLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID09IFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb246OlN5bmMpKTsKIH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBz
Y3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQg
c2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFuaW1hdGlvbikKIHsKICAgICBp
ZiAoc2Nyb2xsZWROb2RlSUQgPT0gcm9vdFNjcm9sbGluZ05vZGVJRCgpICYmIG1fcmVxdWVzdGVk
U2Nyb2xsSW5mbykgewogICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RzU2Ny
b2xsUG9zaXRpb25VcGRhdGUgPSB0cnVlOwogICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8t
PnJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGw7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJ
bmZvLT5yZXF1ZXN0V2l0aEFuaW1hdGlvbiA9IHdpdGhBbmltYXRpb247CisjZW5kaWYKICAgICAg
ICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiA9IHNjcm9s
bFBvc2l0aW9uOwogICAgIH0KIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBzY3Jv
bGxlZE5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAgbV93
ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShzY3JvbGxlZE5vZGVJRCwgaXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKSk7Cit9CisKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAg
IG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUocm9vdFNjcm9sbGluZ05v
ZGVJRCgpLCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsKK30KKyNlbmRpZgorCiBTdHJp
bmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZUFzVGV4dCgp
IGNvbnN0CiB7CiAgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhNzY5NDNmMjQuLjgxMTVlNDc3YzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaApAQCAt
NTUsOSArNTUsMTQgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkoV2ViUGFnZVByb3h5Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eSgpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lk
IHNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdl
YkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mp
OworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzRGlkQ2hhbmdlKGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgor
CiAgICAgLy8gSW5mb3JtIHRoZSB3ZWIgcHJvY2VzcyB0aGF0IHRoZSBzY3JvbGwgcG9zaXRpb24g
Y2hhbmdlZCAoY2FsbGVkIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlKQotICAgIHZvaWQgc2Nyb2xs
aW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8V2ViQ29y
ZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uKTsKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNT
Y3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyAg
ICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJ
RCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IE9w
dGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgV2ViQ29y
ZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3Rv
cEFuaW1hdGlvbiA9IGZhbHNlKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNT
Y3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29s
IHdpdGhBbmltYXRpb24gPSBmYWxzZSk7CiAKICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgZXZl
bnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUsIFdlYkNv
cmU6OkludFBvaW50KSBjb25zdDsKIApAQCAtODAsNiArODUsOSBAQCBwdWJsaWM6CiAgICAgc3Ry
dWN0IFJlcXVlc3RlZFNjcm9sbEluZm8gewogICAgICAgICBib29sIHJlcXVlc3RzU2Nyb2xsUG9z
aXRpb25VcGRhdGUgeyB9OwogICAgICAgICBib29sIHJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9s
bCB7IH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgYm9vbCByZXF1ZXN0V2l0
aEFuaW1hdGlvbiB7IH07CisjZW5kaWYKICAgICAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCByZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICB9OwogICAgIHZvaWQgY29tbWl0U2Nyb2xsaW5nVHJl
ZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24mLCBSZXF1
ZXN0ZWRTY3JvbGxJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggYWZh
YmJjMWVhZS4uZDU3M2EzMWYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcApAQCAt
MTA0LDEyICsxMDQsMTYgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVl
Tm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYKICAgICBpZiAoaXM8U2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkpCiAgICAgICAgIGxheW91dFZpZXdw
b3J0T3JpZ2luID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9k
ZSkubGF5b3V0Vmlld3BvcnQoKS5sb2NhdGlvbigpOwogCi0gICAgbV9zY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlE
KCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBz
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyAgICBib29sIGluc3RhbnRTY3JvbGxEaWRT
dG9wQW5pbWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpbnN0
YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IG5vZGUubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFu
aW1hdGlvbigpICYmICFub2RlLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpOworI2VuZGlmCisgICAg
bV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5v
ZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91
dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBpbnN0YW50U2Ny
b2xsRGlkU3RvcEFuaW1hdGlvbik7CiB9CiAKLXZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25z
dCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsKQordm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9s
bFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFu
aW1hdGlvbikKIHsKLSAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJl
ZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBvc2l0aW9uLCByZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsKTsKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xs
aW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBvc2l0aW9uLCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCB3aXRoQW5pbWF0aW9uKTsKIH0KIAogUmVmPFNjcm9sbGlu
Z1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShT
Y3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKQEAgLTE0
Myw2ICsxNDcsMTMgQEAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVl
OjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2QKICAgICByZXR1cm4gU2Nyb2xs
aW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogfQogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5v
ZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAg
bV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKTsKK30KKyNlbmRpZgorCiB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OmN1cnJlbnRTbmFw
UG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIHVuc2lnbmVkIGhv
cml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKQogewogICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5jdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShub2RlSUQsIGhvcml6b250
YWwsIHZlcnRpY2FsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDIzYmFjMDZhM2Iu
LjBmOWUwOTQ5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaApAQCAtNTIsNyArNTIsMTEg
QEAgcHVibGljOgogICAgIGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkmIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk7IH0KIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBXZWJDb3JlOjpTY3JvbGxpbmdMYXll
clBvc2l0aW9uQWN0aW9uID0gV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6
U3luYykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xs
KFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9s
bGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJv
b2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFs
c2UpIG92ZXJyaWRlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpIG92ZXJy
aWRlOworI2VuZGlmCiAKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdl
KFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQg
dmVydGljYWwpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCmluZGV4IGU2MzdkNjE1MzIuLjAwYjRk
YmNkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUy5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNjcm9sbERpZEVuZCgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsVmlld1dpbGxTdGFydFBhbkdl
c3R1cmUoKSBjb25zdDsKICAgICB2b2lkIHNjcm9sbFZpZXdEaWRTY3JvbGwoY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgc2Nyb2xsT2Zmc2V0LCBib29sIGluVXNlckludGVyYWN0aW9uKTsKKyAg
ICB2b2lkIHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKTsKIAogICAgIHZvaWQg
Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5z
aWduZWQgdmVydGljYWwpIGNvbnN0OwogICAgIENBTGF5ZXIgKnNjcm9sbExheWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9zY3JvbGxMYXllci5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IGU3Njg5
ODM3NTguLjg0ODg2M2E4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAgLTE1Miw2ICsxNTIsMTEgQEAK
ICAgICB9CiB9CiAKKy0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjoo
VUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldworeworICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVn
YXRlLT5zY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uKCk7Cit9CisKICNpZiBFTkFC
TEUoUE9JTlRFUl9FVkVOVFMpCiAtIChDR1BvaW50KV9zY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcg
KilzY3JvbGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihDR1BvaW50KW9mZnNldCB0cmFu
c2xhdGlvbjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFydFBvaW50OihDR1BvaW50KXN0YXJ0IGxv
Y2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGhvcml6b250YWxWZWxvY2l0eToo
aW5vdXQgZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopdnYKIHsK
QEAgLTMwMCwxNSArMzA1LDM2IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAKICAgICBpZiAo
c2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICBhdXRvIHNjcm9s
bFR5cGUgPSBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgPyBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMgOiBTY3Jv
bGxUeXBlOjpVc2VyOwotICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsVG8oc2Nyb2xsaW5n
U3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbFR5cGUpOworICAgICAg
ICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1h
dGlvbigpKQorICAgICAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFJlcXVlc3RBbmltYXRlZFNj
cm9sbCh0cnVlKTsKKyAgICAgICAgLy8gSWYgdGhlIHNjcm9sbCBwb3NpdGlvbnMgYXJlIG5vdCB0
aGUgc2FtZSwgdGhlcmUncyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhlIHNjcm9sbCBvZmZzZXQgZnJv
bSB0aGUgV2ViIHByb2Nlc3MgaGFzIGJlZW4gb3ZlcnJpZGRlbi4KKyAgICAgICAgLy8gSW4gdGhp
cyBjYXNlLCB0aGUgc2Nyb2xsIHBvc2l0aW9uIG5lZWQgdG8gYmUgc2VudCB0byB0aGUgV2ViIHBy
b2Nlc3MuCisgICAgICAgIGJvb2wgc2hvdWxkU3luY1Njcm9sbFBvc2l0aW9uID0gc2Nyb2xsaW5n
U3RhdGVOb2RlLnNjcm9sbFBvc2l0aW9uKCkgIT0gc2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3Jv
bGxQb3NpdGlvbigpOworICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsVG8oc2Nyb2xsaW5n
U3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbFR5cGUsIFNjcm9sbFBv
c2l0aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzLCBzaG91bGRTeW5jU2Nyb2xsUG9zaXRpb24pOwog
ICAgIH0KIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpy
ZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKLSAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgp
LmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwor
ICAgIGJvb2wgYW5pbWF0aW9uSW5Qcm9ncmVzcyA9IHNjcm9sbGluZ05vZGUoKS5zY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzKCk7CisgICAgYm9vbCBuZWVkVG9TdG9wQW5pbWF0aW9uID0gc2Nyb2xs
aW5nTm9kZSgpLm5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKTsKKyAgICBpZiAobmVl
ZFRvU3RvcEFuaW1hdGlvbiAmJiBhbmltYXRpb25JblByb2dyZXNzKSB7CisgICAgICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRP
ZmZzZXQ6c2Nyb2xsVmlldygpLmNvbnRlbnRPZmZzZXQgYW5pbWF0ZWQ6Tk9dOworICAgICAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgfQorCisgICAgaWYgKHNjcm9sbGluZ05vZGUo
KS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSkgeworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbGlu
Z05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCkgYW5pbWF0ZWQ6WUVTXTsKKyAgICAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUworCisgICAgICAgIHNjcm9sbGluZ05vZGUoKS5zZXRTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKHRydWUpOworICAgIH0gZWxzZSBpZiAoIWFuaW1hdGlvbklu
UHJvZ3Jlc3MgfHwgbmVlZFRvU3RvcEFuaW1hdGlvbikgeworICAgICAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNj
cm9sbGluZ05vZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOworICAgICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TCisgICAgfQogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1M6OnNjcm9sbFdpbGxTdGFydCgpIGNvbnN0CkBAIC0zMzUsNiArMzYxLDE1
IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmll
d0RpZFNjcm9sbChjb25zdCBGbG9hdFBvaW50CiAgICAgc2Nyb2xsaW5nTm9kZSgpLndhc1Njcm9s
bGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmcoc2Nyb2xsUG9zaXRpb24sIHsgfSwgaW5Vc2VySW50ZXJh
Y3Rpb24gPyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jIDogU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uKCkKK3sK
KyAgICBhdXRvJiBub2RlID0gc2Nyb2xsaW5nTm9kZSgpOworICAgIGlmICghKG5vZGUucmVxdWVz
dEFuaW1hdGVkU2Nyb2xsKCkgJiYgbm9kZS5zY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkpKSB7
CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShub2RlLnNjcm9sbGluZ05vZGVJRCgpLCBmYWxzZSk7Cisg
ICAgICAgIG5vZGUuc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhmYWxzZSk7CisgICAgfQor
fQorCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmN1cnJlbnRT
bmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZl
cnRpY2FsKSBjb25zdAogewogICAgIGlmIChtX3VwZGF0aW5nRnJvbVN0YXRlTm9kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGUzYjQ1MjM5OTcuLjA2NjE0
Y2Q0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTc2
Nyw5ICsxNzY3LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNv
bnN0IFJlZ2lvbiYgcmVnaW9uKQogICAgIHBhZ2VDbGllbnQoKS5zZXRWaWV3TmVlZHNEaXNwbGF5
KHJlZ2lvbik7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQor
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4sIGNvbnN0IGJvb2wgd2l0aEFu
aW1hdGlvbikKIHsKLSAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlv
biwgc2Nyb2xsT3JpZ2luKTsKKyAgICBpZiAod2l0aEFuaW1hdGlvbikKKyAgICAgICAgcGFnZUNs
aWVudCgpLnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxP
cmlnaW4pOworICAgIGVsc2UKKyAgICAgICAgcGFnZUNsaWVudCgpLnJlcXVlc3RTY3JvbGwoc2Ny
b2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CiB9CiAKIFdlYkNvcmU6OkZsb2F0UG9pbnQgV2Vi
UGFnZVByb3h5Ojp2aWV3U2Nyb2xsUG9zaXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCBhZTM4NTIyMjFkLi5hZjA3ZWE0OTI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjEzLDcgKzYxMyw3IEBAIHB1YmxpYzoK
ICAgICBQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFZpZXdO
ZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJik7Ci0gICAgdm9pZCByZXF1ZXN0U2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBzY3JvbGxPcmlnaW4sIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKICAgICAK
ICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4
IGQ2YzhjMzhkNGEuLjUxOThlZjQ0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC01Nyw2ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAg
c3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHko
V2ViUHJvY2Vzc1Byb3h5Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5
KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVxdWVzdFNjcm9s
bChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U2Ny
b2xsV2l0aEFuaW1hdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgb3ZlcnJpZGU7CiAgICAg
V2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKICAgICBX
ZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1ZpZXdXaW5k
b3dBY3RpdmUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA0ZGYzYWQ1NTU1Li43ZjAyMzQ5ZWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC05
Niw3ICs5NiwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNv
bnN0IFJlZ2lvbiYpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwoY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4p
CiB7Ci0gICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xs
UG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbl07CisgICAgW21fd2ViVmlldyBfc2Ny
b2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNj
cm9sbE9yaWdpbiBhbmltYXRlZDpOT107Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVl
c3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBj
b25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQoreworICAgIFttX3dlYlZpZXcgX3Njcm9sbFRv
Q29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxP
cmlnaW4gYW5pbWF0ZWQ6WUVTXTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBQYWdlQ2xpZW50
SW1wbDo6dmlld1Njcm9sbFBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOGU2NDkzNTU0NS4uM2QzNDVkNzY4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
LmgKQEAgLTczLDYgKzczLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY3JvbGxQb3NpdGlvbkNo
YW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgc3luY0xheWVyUG9zaXRpb24pOwogICAgIHZv
aWQgY3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxp
bmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKTsKIAorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxBbmltYXRpb25JblByb2dyZXNz
Q2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKKwogICAgIFdlYlBhZ2UqIG1fd2ViUGFnZTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5tZXNzYWdlcy5pbgppbmRleCAyYzA5OGExMDk3Li41MzdmZDM0ZDYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw5IEBACiBtZXNzYWdlcyAtPiBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvciB7CiAgICAgU2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZSh1
aW50NjRfdCBub2RlSUQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgc2Nyb2xsUG9zaXRpb24sIGJvb2wg
c3luY0xheWVyUG9zaXRpb24pOwogICAgIEN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZv
ck5vZGUodWludDY0X3Qgbm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0
aWNhbCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzQ2hhbmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JP
TExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IubW0KaW5kZXggODM1NDQxZDMxOS4uNjg5ZDU1NjI2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQpAQCAtMTA0LDYgKzEw
NCwxMyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjdXJyZW50U25hcFBvaW50
SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFNjcm9sbGluZwogICAgIHNldEFjdGl2ZVNjcm9sbFNuYXBJ
bmRpY2VzKG5vZGVJRCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwogfQogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBzZXRTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKG5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShB
U1lOQ19TQ1JPTExJTkcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385722</attachid>
            <date>2019-12-15 09:13:55 -0800</date>
            <delta_ts>2020-01-19 22:22:30 -0800</delta_ts>
            <desc>native-animation-for-ews(including parsing + non_native_animation)</desc>
            <filename>upload_43.diff</filename>
            <type>text/plain</type>
            <size>301956</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYmU4OGNjMDIzLi5iODY2YTM0MGUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0g
aXMgYmFzZWQgb24gQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5j
IHNjcm9sbCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJl
Zm9yZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0
byBmYXN0L3Njcm9sbGluZy9pb3MvLCB0aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAgICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAg
ICAod2FpdEZvclNjcm9sbEVuZCk6CisgICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNj
cm9sbFdpbmRvdyk6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sLgorCisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNh
dGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJl
aGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4ODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUg
cGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
OiBTa2lwIHRoZXNlIHRlc3RzIG9uIFdLMSBhcyB0aGV5IGRvbid0IHdvcmsgZm9yIG5vdy4KKwor
MjAxOS0xMi0xMCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5
IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxOS0xMi0xNCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU10gRGVueSBtYWNoIGxvb2t1cCBhY2Nlc3MgdG8gIioudmlld3Nl
cnZpY2UiIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMGEwOTY4ZTAyNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzCkBAIC0wLDAgKzEsODcgQEAKK2Z1bmN0aW9uIG9ic2VydmVTY3JvbGxpbmco
ZWxlbWVudHMsIGNhbGxiYWNrKSB7CisgIGlmICghQXJyYXkuaXNBcnJheShlbGVtZW50cykpCisg
ICAgICBlbGVtZW50cyA9IFtlbGVtZW50c107CisgIHZhciBsYXN0Q2hhbmdlZEZyYW1lID0gMDsK
KyAgdmFyIGxhc3RMZWZ0ID0gbmV3IE1hcCgpOworICB2YXIgbGFzdFRvcCA9IG5ldyBNYXAoKTsK
KyAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4geworICAgIGxhc3RMZWZ0LnNldChlbGVt
ZW50LCBlbGVtZW50LnNjcm9sbExlZnQpOworICAgIGxhc3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1l
bnQuc2Nyb2xsVG9wKTsKKyAgfSk7CisgIGZ1bmN0aW9uIHRpY2soZnJhbWVzKSB7CisgICAgLy8g
V2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGVpdGhlciBmb3IgNTAwIGZyYW1lcyBvciB1bnRpbCAy
MCBmcmFtZXMgd2l0aAorICAgIC8vIG5vIGNoYW5nZSBoYXZlIGJlZW4gb2JzZXJ2ZWQuCisgICAg
aWYgKGZyYW1lcyA+PSA1MDAgfHwgZnJhbWVzIC0gbGFzdENoYW5nZWRGcmFtZSA+IDIwKSB7Cisg
ICAgICBjYWxsYmFjayh0cnVlKTsKKyAgICB9IGVsc2UgeworICAgICAgdmFyIHNjcm9sbEhhcHBl
bmVkID0gZWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4geworICAgICAgICByZXR1cm4gZWxlbWVu
dC5zY3JvbGxMZWZ0ICE9IGxhc3RMZWZ0LmdldChlbGVtZW50KSB8fCBlbGVtZW50LnNjcm9sbFRv
cCAhPSBsYXN0VG9wLmdldChlbGVtZW50KTsKKyAgICAgIH0pOworICAgICAgaWYgKHNjcm9sbEhh
cHBlbmVkKSB7CisgICAgICAgIGxhc3RDaGFuZ2VkRnJhbWUgPSBmcmFtZXM7CisgICAgICAgIGVs
ZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAgICAgICAgICBsYXN0TGVmdC5zZXQoZWxl
bWVudCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICAgICAgICBsYXN0VG9wLnNldChlbGVtZW50
LCBlbGVtZW50LnNjcm9sbFRvcCk7CisgICAgICAgIH0pOworICAgICAgICBjYWxsYmFjayhmYWxz
ZSk7CisgICAgICB9CisgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljay5iaW5kKG51bGws
IGZyYW1lcyArIDEpKTsKKyAgICB9CisgIH0KKyAgdGljaygwKTsKK30KKworZnVuY3Rpb24gd2Fp
dEZvclNjcm9sbEVuZChlbGVtZW50cykgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsKKyAgICBvYnNlcnZlU2Nyb2xsaW5nKGVsZW1lbnRzLCAoZG9uZSkgPT4geworICAgICAg
aWYgKGRvbmUpCisgICAgICAgIHJlc29sdmUoKTsKKyAgICB9KTsKKyAgfSk7Cit9CisKK2Z1bmN0
aW9uIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0
aG9kcyB0byBlbnN1cmUgdGhlIGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHku
CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wID0gMDsKKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGwoe2xlZnQ6IDAsIHRvcDog
MCwgYmVoYXZpb3I6ICJpbnN0YW50In0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9kcyB0byBlbnN1
cmUgdGhlIGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisgIHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3Jv
bGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOworICBz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFu
dCJ9KTsKK30KKworZnVuY3Rpb24gc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgY2xh
c3NOYW1lKSB7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYXV0b0JlaGF2aW9y
IiwgInNtb290aEJlaGF2aW9yIik7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFz
c05hbWUpOworfQorCitmdW5jdGlvbiBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9s
bEZ1bmN0aW9uLCBiZWhhdmlvciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKSB7CisgIHZhciBhcmdzID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2
aW9yID0gYmVoYXZpb3I7CisgIHN3aXRjaCAoc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBjYXNlICJz
Y3JvbGxJbnRvVmlldyI6CisgICAgICBhcmdzLmlubGluZSA9ICJzdGFydCI7CisgICAgICBhcmdz
LmJsb2NrID0gInN0YXJ0IjsKKyAgICAgIGVsZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyhh
cmdzKTsKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBhcmdzLmxlZnQgPSBlbGVt
ZW50VG9SZXZlYWxMZWZ0OworICAgICAgYXJncy50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3A7Cisg
ICAgICBzY3JvbGxpbmdFbGVtZW50W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKKyAgICAgIGJyZWFr
OworICB9Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9s
bEZ1bmN0aW9uLCBiZWhhdmlvciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKSB7CisgIHZhciBhcmdzID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBhcmdzLmJlaGF2
aW9yID0gYmVoYXZpb3I7CisgIGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7CisgIGFy
Z3MudG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wOworICBzY3JvbGxpbmdXaW5kb3dbc2Nyb2xsRnVu
Y3Rpb25dKGFyZ3MpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44ZDRjYTY0MTU1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1Mg
SW5zdGFudCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2
aW9yIAorUEFTUyBTbW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNj
cm9sbC1iZWhhdmlvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM1YzY1MDNhYjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQt
Y3NzLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10
cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8
dGl0bGU+VGVzdGluZyBkZWZhdWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0Pgor
PHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6
IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ci
PgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAg
PGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxp
bmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRp
c3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFu
PjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dy
b3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIg
c2Nyb2xsaW5nRWxlbWVudCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExl
ZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIHZhciBzY3JvbGxG
dW5jdGlvbiA9ICJzY3JvbGwiOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRT
Y3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIs
ICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgIH0sICJJbnN0YW50IHNjcm9sbGlu
ZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsKKworICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxp
bmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
fSk7CisgIH0sICJTbW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNj
cm9sbC1iZWhhdmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41M2E5NjFlZjU2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACisKK1BBU1Mg
RWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290
aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBl
bGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBv
bmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLmQzOGRmZmRlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApAQCAtMCwwICsx
LDE2MyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmlt
ZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3lu
Y092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3Jv
bGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZp
b3Igb24gYW4gZWxlbWVudDwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAg
b3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7Cisg
IH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICB9Cisg
IC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwv
c3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNs
YXNzPSJzY3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAx
MDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+
CisgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBo
ZWlnaHQ6IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7
IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9k
aXY+Cis8c2NyaXB0PgorICB2YXIgc2Nyb2xsaW5nRWxlbWVudCA9IG92ZXJmbG93Tm9kZTsKKyAg
dmFyIHN0eWxlZEVsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZlYWxM
ZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworCisgIFsic2Nyb2xs
IiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Ny
b2xsRnVuY3Rpb24pID0+IHsKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRT
Y3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Ny
b2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsK
KyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOwor
ICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZl
KCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Nj
cm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxO
b2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhh
bihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsK
KworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhC
ZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBu
dWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJl
dHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3Ag
aW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyBy
ZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7
CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgfSwgYEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBi
ZWhhdmlvcmApOworICB9KTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Ny
b2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQg
LyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2lu
ZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNtb290aCBzY3Jv
bGxpbmciKTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgIHJldHVy
biB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0s
ICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi45N2NhZWEyN2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMzcgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFu
IG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIg
c21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLmQzMjViNGI5ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCkBA
IC0wLDAgKzEsMTY5IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVy
bmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0
aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9s
bC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBu
YW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJv
cGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2Ry
YWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorICBib2R5IHsKKyAgICBtYXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAg
c2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Ny
b2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9k
aXY+Cis8ZGl2IGlkPSJwYWdlQ29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogMDsgdG9wOiAwOyI+CisgIDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0
aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0
OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2
YXIgcGFnZUxvYWRlZCA9IGFzeW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxp
bmdFbGVtZW50LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3A7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcGFnZUxvYWRlZC5z
dGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICBzdHlsZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1l
bnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50LnN0eWxlLndpZHRoID0gKDEwICsgd2luZG93Lmlu
bmVyV2lkdGgpICogNSArICJweCI7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIw
ICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbExl
ZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRv
cCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5z
dHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdCArICJweCI7CisgICAgZWxlbWVudFRvUmV2
ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcCArICJweCI7CisKKyAgICBhZGRfY29t
cGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOyB9
KTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9W
aWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNj
cm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7
CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3Jv
bGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNl
dFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0Vs
ZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChz
Y3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwg
InNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Ny
b2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVu
dCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
ICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhh
dmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9u
LCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOwor
ICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3Jv
bGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9s
bEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBv
ZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNl
dFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxl
ZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7Cisg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9S
ZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAg
ICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
TGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGlu
ZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBp
bnN0YW50IHNjcm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5k
b3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMC4uMzgyMzg1YWFiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5k
b3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUg
d2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcg
c21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xs
aW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTA1N2IwY2QxMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS13aW5kb3cuaHRtbApAQCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVu
dC5zY3JvbGwqIG9uIHRoZSB3aW5kb3cgb2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1ldGEg
bmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxtaW5pbXVtLXNjYWxlPTEsaW5pdGlhbC1zY2FsZT0x
Ij4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWls
dG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJh
ZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNz
Y3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1i
ZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIG1hcmdpbjogMDsK
KyAgfQorICAuYXV0b0JlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0K
KyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQor
PC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBhZ2VDb250ZW50IiBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4KKyAgPGRpdiBpZD0i
ZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+
PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0gYXN5bmNfdGVzdCgi
UGFnZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigibG9hZCIsIHBhZ2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7Cisg
ICAgc2Nyb2xsaW5nV2luZG93ID0gd2luZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQ7CisgICAgcGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3
aW5kb3cuaW5uZXJXaWR0aCkgKiA1ICsgInB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWln
aHQgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRv
UmV2ZWFsTGVmdCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRv
UmV2ZWFsVG9wID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRv
UmV2ZWFsLnN0eWxlLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVt
ZW50VG9SZXZlYWwuc3R5bGUudG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAg
IGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKCgpID0+IHsgcmVzZXRTY3JvbGxGb3JXaW5kb3cod2lu
ZG93KTsgfSk7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVh
Y2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93
KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29s
dmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xs
aW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9u
LCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1
dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVz
ZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxp
bmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUo
KTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5n
V2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7
CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGlu
Z1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9u
LCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
ICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xs
aW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNt
b290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rp
b24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0
aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxX
aW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOwor
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGlu
Z1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxl
bWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3Jv
bGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVh
bExlZnQgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhl
ciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
cmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJl
aGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwi
LCAiaW5zdGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xs
aW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJB
Ym9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50
b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40NDNhODIwZTU4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
Y3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IHNjcm9sbEludG9WaWV3IHdpdGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9s
bC1iZWhhdmlvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDViNWQ4ZDdjNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFE
T0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Ny
b2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBi
ZWhhdmlvciB3aXRoIHNjcm9sbEludG9WaWV3IGZvciBuZXN0ZWQgc2Nyb2xsaW5nIG5vZGVzPC90
aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlh
LmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9z
Y3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAg
ICBoZWlnaHQ6IDIwMHB4OworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJl
aGF2aW9yOiBzbW9vdGg7CisgIH0KKyAgLmdyYWRpZW50IHsKKyAgICBiYWNrZ3JvdW5kOiBsaW5l
YXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9
ImxvZyI+Cis8L2Rpdj4KKzxkaXY+CisgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVo
YXZpb3IiIHN0eWxlPSJ3aWR0aDogNDUwcHgiPgorICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFz
cz0ic2Nyb2xsYWJsZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiA0MDBweCI+CisgICAg
ICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBw
eDsiPjwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAz
NTBweCI+CisgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUi
IHN0eWxlPSJ3aWR0aDogMzAwcHgiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPGRp
diBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiAyNTBweCI+
CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsg
aGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJs
ZSIgc3R5bGU9IndpZHRoOiAyMDBweCI+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRp
ZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAg
ICAgICAgIDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9IndpZHRoOiAxMHB4OyBoZWln
aHQ6IDEwcHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9k
aXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50
IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAg
PC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGNs
YXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2
PgorICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRo
OiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwv
ZGl2PgorPHNjcmlwdD4KKyAgLy8gVGhlIENTU09NLVZpZXcgc3BlYyBhbmQgaW1wbGVtZW50YXRp
b25zIGZvbGxvdyBkaWZmZXJlbnQgYWxnb3JpdGhtcyAoc2Nyb2xscyBwZXJmb3JtZWQgaW4gcGFy
YWxsZWwsIGFzIGlubmVyLXRvLW91dGVyIHNlcXVlbmNlIG9yIGFzIG91dGVyLXRvLWlubmVyIHNl
cXVlbmNlKS4KKyAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lz
c3Vlcy8zMTI3CisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFyIGRpdnMgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCIuc2Nyb2xsYWJsZSIpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3Jv
bGxhYmxlRGl2KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGFibGVEaXYpOworICAg
ICAgfSk7CisgICAgICBlbGVtZW50VG9SZXZlYWwuc2Nyb2xsSW50b1ZpZXcoe2lubGluZTogInN0
YXJ0IiwgYmxvY2s6ICJzdGFydCIsIGJlaGF2aW9yOiAiYXV0byJ9KTsKKyAgICAgIHZhciBzY3Jv
bGxUb3AgPSBuZXcgTWFwKCk7CisgICAgICB2YXIgaXNTbW9vdGggPSBuZXcgTWFwKCk7CisgICAg
ICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsKKyAgICAgICAgc2Nyb2xsVG9wLnNl
dChzY3JvbGxhYmxlRGl2LCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgIGlzU21v
b3RoLnNldChzY3JvbGxhYmxlRGl2LCBzY3JvbGxhYmxlRGl2LmNsYXNzTGlzdC5jb250YWlucygi
c21vb3RoQmVoYXZpb3IiKSk7CisgICAgICAgIC8vIElmIHNjcm9sbCBvcGVyYXRpb25zIGFyZSBu
b3QgcGVyZm9ybWVkIGluIHBhcmFsbGVsLCBzY3JvbGwgYm94ZXMgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIG1pZ2h0IGFsc28gbmVlZCB0byB3YWl0IGZvciB0aGVpciBwcmVkZWNlc3NvcnMuCisgICAg
ICAgIGlmIChpc1Ntb290aC5nZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxUb3AuZ2V0KHNjcm9sbGFibGVEaXYpLCA1MDAsICJFbGVtZW50IHdpdGgg
c21vb3RoIGJlaGF2aW9yIHNob3VsZCBub3Qgc2Nyb2xsIGltbWVkaWF0ZWx5Iik7CisgICAgICB9
KTsKKworICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhBcnJheS5mcm9tKGRpdnMpLCBmdW5jdGlvbihk
b25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxl
RGl2KSA9PiB7CisgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKHNjcm9sbFRvcC5n
ZXQoc2Nyb2xsYWJsZURpdiksIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCAiU2Nyb2xsVG9wIGtl
ZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAgIGlmICghaXNTbW9vdGguZ2V0KHNjcm9sbGFi
bGVEaXYpKQorICAgICAgICAgICAgICBhc3NlcnRfYW55KGFzc2VydF9lcXVhbHMsIHNjcm9sbGFi
bGVEaXYuc2Nyb2xsVG9wLCBbMCwgNTAwXSwgIkVsZW1lbnQgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IHNob3VsZCBqdW1wIHRvIHRoZSBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgaWYgKGRv
bmUpCisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3As
IDUwMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICAgICAgc2Nyb2xsVG9w
LnNldChzY3JvbGxhYmxlRGl2LCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgICAg
fSk7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAg
ICB9KTsKKyAgfSwgInNjcm9sbEludG9WaWV3IHdpdGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlm
ZmVyZW50IHNjcm9sbC1iZWhhdmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi44NTVhNmE2MTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACisKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVu
IHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVz
aW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21v
b3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgp
ICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3Jv
bGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAs
IDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlv
bnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwg
MjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZv
cm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5n
IHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygp
ICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNT
IFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAo
MCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0
aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAo
NTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4g
cGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1
c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcg
c21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Ny
b2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBz
Y3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygp
ICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1Mg
U2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgx
MDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbm90
aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGlu
ZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9v
dGgtcG9zaXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi4wYTQxYjhiMDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwK
QEAgLTAsMCArMSwxNTEgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50
ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRl
c3Rpbmcgc2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBlbGVtZW50IHdpdGggc21v
b3RoIGJlaGF2aW9yPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxvbmci
Lz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWls
dG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJh
ZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNz
Y3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1i
ZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVy
ZmxvdzogYXV0bzsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBz
Y3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8
L2Rpdj4KKzxkaXYgaWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2
IHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFy
LWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxh
eTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNw
YW4gaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVy
dGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5k
OiBibGFjazsiPjwvc3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIEZvciBz
bW9vdGggYmVoYXZpb3IsIGV2b2x1dGlvbiBvZiBzY3JvbGwgcG9zaXRpb25zIG92ZXIgdGltZSBp
cyBub3Qgc3BlY2lmaWVkIGJ5IENTU09NIFZpZXcuCisgIC8vIFRoaXMgdGVzdCByZWxpZXMgb24g
dGhlIG1pbmltYWwgYXNzdW1wdGlvbiB0aGF0IHNjcm9sbCBwb3NpdGlvbiBmdW5jdGlvbnMgYXJl
IG1vbm90b25pYy4KKyAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xs
SW50b1ZpZXciXS5mb3JFYWNoKGZ1bmN0aW9uKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgW3tsZWZ0
OjAsIHRvcDowfSwge2xlZnQ6MTAwMCwgdG9wOjB9LCB7bGVmdDowLCB0b3A6NTAwfSwge2xlZnQ6
MTAwMCwgdG9wOjUwMH1dLmZvckVhY2goKGluaXRpYWwpID0+IHsKKyAgICAgIHZhciBmaW5hbExl
ZnQgPSA1MDA7CisgICAgICB2YXIgZmluYWxUb3AgPSAyNTA7CisgICAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5z
dGFudCIsIGluaXRpYWwubGVmdCwgaW5pdGlhbC50b3ApOworICAgICAgICAgIHZhciBvbGRMZWZ0
ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgdmFyIG9sZFRvcCA9IG92ZXJm
bG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCBpbml0
aWFsLmxlZnQsICJTY3JvbGxMZWZ0IHNob3VsZCBiZSBhdCBpbml0aWFsIHBvc2l0aW9uIik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhvbGRUb3AsIGluaXRpYWwudG9wLCAiU2Nyb2xsVG9wIHNo
b3VsZCBiZSBhdCBpbml0aWFsIHBvc2l0aW9uIik7CisgICAgICAgICAgaWYgKHNjcm9sbEZ1bmN0
aW9uID09PSAic2Nyb2xsQnkiKQorICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUs
IHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZmluYWxMZWZ0IC0gaW5pdGlhbC5sZWZ0LCBmaW5h
bFRvcCAtIGluaXRpYWwudG9wKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBzY3JvbGxO
b2RlKG92ZXJmbG93Tm9kZSwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBmaW5hbExlZnQsIGZp
bmFsVG9wKTsKKyAgICAgICAgICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rp
b24oZG9uZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgdmFyIG5ld0xlZnQg
PSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAgdmFyIG5ld1RvcCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1
YWwoTWF0aC5oeXBvdChmaW5hbExlZnQgLSBuZXdMZWZ0LCBmaW5hbFRvcCAtIG5ld1RvcCksIE1h
dGguaHlwb3QoZmluYWxMZWZ0IC0gb2xkTGVmdCwgZmluYWxUb3AgLSBvbGRUb3ApLCAiU2Nyb2xs
IHBvc2l0aW9uIHNob3VsZCBtb3ZlIHRvd2FyZHMgdGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAg
ICAgICAgICAgIGlmIChkb25lKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdM
ZWZ0LCBmaW5hbExlZnQsICJTY3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIp
OworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCBmaW5hbFRvcCwgIlNjcm9s
bFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICAgICAgb2xkVG9wID0gbmV3
VG9wOworICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgIHJlamVjdChlKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgfSwgYFNjcm9sbCBwb3Np
dGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoJHtpbml0aWFsLmxl
ZnR9LCAke2luaXRpYWwudG9wfSkgdG8gKCR7ZmluYWxMZWZ0fSwgJHtmaW5hbFRvcH0pIHVzaW5n
ICR7c2Nyb2xsRnVuY3Rpb259KCkgYCk7CisgICAgfSk7CisgIH0pOworCisgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgcmVzZXRTY3JvbGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFs
U2Nyb2xsQWJvcnRlZCA9IGZhbHNlOworICAgICAgdmFyIHNjcm9sbERpcmVjdGlvbkNoYW5nZWQg
PSBmYWxzZTsKKyAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7Cisg
ICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgIGFzc2VydF9l
cXVhbHMob2xkTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgMCk7CisgICAg
ICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCAxNTAwLCA3NTAp
OworICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsK
KyAgICAgICAgdHJ5IHsKKyAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3Jv
bGxMZWZ0OworICAgICAgICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOwor
ICAgICAgICAgIGlmIChpbml0aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgaWYgKHNj
cm9sbERpcmVjdGlvbkNoYW5nZWQpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhh
bl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBkZWNyZWFzaW5nIik7
CisgICAgICAgICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3As
ICJTY3JvbGxUb3Aga2VlcHMgZGVjcmVhc2luZyIpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgIHNjcm9sbERpcmVjdGlvbkNoYW5nZWQgPSBuZXdMZWZ0IDw9IG9sZExlZnQgJiYg
bmV3VG9wIDw9IG9sZFRvcDsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBhc3Nl
cnRfbGVzc190aGFuX2VxdWFsKG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGlu
Y3JlYXNpbmciKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3As
IG5ld1RvcCwgIlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlm
IChuZXdMZWZ0ID4gMTAwMCAmJiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBB
Ym9ydCB0aGUgaW5pdGlhbCBzY3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFi
b3J0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAi
c2Nyb2xsIiwgInNtb290aCIsIDUwMCwgMjUwKTsKKyAgICAgICAgICAgICAgICBuZXdMZWZ0ID0g
b3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAgbmV3VG9wID0gb3ZlcmZs
b3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAg
ICBpZiAoZG9uZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJT
Y3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9z
aXRpb24iKTsKKyAgICAgICAgICB9CisgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAg
ICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICBy
ZWplY3QoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH0sICJTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJv
cnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7
CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rp
b24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICByZXNldFNjcm9sbChvdmVyZmxvd05vZGUpOwor
ICAgICAgdmFyIGluaXRpYWxTY3JvbGxBYm9ydGVkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVm
dCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93
Tm9kZS5zY3JvbGxUb3A7CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAg
YXNzZXJ0X2VxdWFscyhvbGRUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUs
ICJzY3JvbGwiLCAic21vb3RoIiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmco
b3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAg
dmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3
VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoIWluaXRpYWxTY3Jv
bGxBYm9ydGVkKSB7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkTGVm
dCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAg
ICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBz
IGluY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAwICYmIG5ld1Rv
cCA+IDUwMCkgeworICAgICAgICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFsIHNjcm9sbC4K
KyAgICAgICAgICAgICAgICBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIDUwMCwg
MjUwKTsKKyAgICAgICAgICAgICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7
CisgICAgICAgICAgICAgICAgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxk
IHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhu
ZXdUb3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAg
ICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBzdGF5
IGF0IGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwg
MjUwLCAiU2Nyb2xsVG9wIHNob3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAg
ICAgfQorICAgICAgICAgIG9sZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5l
d1RvcDsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAg
ICB9CisgICAgICAgIGlmIChkb25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOwor
ICAgIH0pOworICB9LCAiU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNj
cm9sbGluZyB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJh
bWUtcm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAuLjI3OTlmZGNjMjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzcgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFT
UyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBh
biBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21v
b3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIGEgc3ViZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1y
b290Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
Li45NmQxMWFiOTYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNzAg
QEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFs
OkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVy
Zmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5h
YmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBm
b3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBz
dWJmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3
YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xs
aW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZp
b3IuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZy
YW1lTm9kZSIgd2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4K
KzxodG1sPgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQor
ICAgIC5hdXRvQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0K
KyAgICAuc21vb3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
ICAgfQorICA8L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4
OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVk
LCBncmVlbik7Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdp
ZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2
ZWFsJyBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7
IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgor
ICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAg
dmFyIGlmcmFtZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIg
c2Nyb2xsaW5nRWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIg
ZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1
MDsKKyAgaWZyYW1lTm9kZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Qu
c3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBpZnJhbWVOb2Rl
LmNvbnRlbnREb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBp
ZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRv
UmV2ZWFsID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1l
bnRUb1JldmVhbCIpOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAi
c2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVs
bCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5n
RWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29s
dmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7Cisg
ICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0
YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAg
IHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlv
cmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICAgIH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVo
YXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlv
biwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsK
KyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9s
bEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50Iiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hv
dWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVu
ZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
YCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Ny
b2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwg
IkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAiaW5zdGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xs
aW5nIik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFt
ZS13aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAuLjA1ZWIzMjcyZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyOSBAQAorCitQQVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25n
b2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9v
dGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFt
ZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMC4uMzMzM2Q2NGY4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAs
MCArMSwxNzEgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6
QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Ny
b2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBi
ZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJv
b3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFt
ZSBpZD0iaWZyYW1lTm9kZSIgd2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9Ijwh
RE9DVFlQRT4KKzxodG1sPgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7
CisgICAgfQorICAgIC5hdXRvQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRv
OworICAgIH0KKyAgICAuc21vb3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBz
bW9vdGg7CisgICAgfQorICA8L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0
aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEz
NWRlZywgcmVkLCBncmVlbik7Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxl
bWVudFRvUmV2ZWFsJyBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGln
bjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+
PC9zcGFuPgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNj
cmlwdD4KKyAgdmFyIGlmcmFtZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIp
OworICB2YXIgc2Nyb2xsaW5nV2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7
CisgIHZhciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFs
VG9wID0gMjUwOworICBpZnJhbWVOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVM
b2FkVGVzdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7CisgICAgc2Nyb2xsaW5nV2luZG93ID0gaWZy
YW1lTm9kZS5jb250ZW50V2luZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNv
bnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZy
YW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIp
OworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3Jv
bGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVz
ZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxp
bmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFks
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0p
OworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRv
dyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAg
ICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8i
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2
aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93
LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOwor
ICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAg
ICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7
CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3Jv
bGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAg
ICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0
X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1l
bnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsK
KyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRv
dyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhh
dmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7Cisg
ICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0
byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVo
YXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOwor
ICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImlu
c3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNj
cm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhz
Y3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3cs
ICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1Jl
dmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2lu
ZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8g
MiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3Ro
IHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAi
c2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgImluc3Rh
bnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRv
dy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5z
dGFudCBzY3JvbGxpbmciKTsKKworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCmluZGV4IGZmODZhNjkxZTYuLmUyZjI3MWM0YjAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAg
PGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xs
IGJlaGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4ODIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0
aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEVuYWJsZSBDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkIG9uIHNjcm9sbCBiZWhhdmlvciB0ZXN0cyBhbmQgdXBkYXRl
IGV4cGVjdGF0aW9ucy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVs
dC1jc3MuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcv
c2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVo
YXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5k
b3cuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3Jv
bGxpbnRvdmlldy1uZXN0ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1
YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3Vi
ZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sOgorCisy
MDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkg
RnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dDoKKwogMjAxOS0xMi0xMyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBQb3N0TWVzc2FnZU9w
dGlvbnMgZm9yIHBvc3RNZXNzYWdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2luaGVyaXRhbmNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CmluZGV4IDNhYzBhMzdjZmYuLjg3NWE3
MjdjOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaW5o
ZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIFByb3BlcnR5IHNj
cm9sbC1iZWhhdmlvciBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIGFzc2VydF90cnVlOiBzY3JvbGwt
YmVoYXZpb3IgZG9lc24ndCBzZWVtIHRvIGJlIHN1cHBvcnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5
bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgc2Nyb2xsLWJlaGF2aW9y
IGRvZXMgbm90IGluaGVyaXQgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQ
QVNTIFByb3BlcnR5IHNjcm9sbC1iZWhhdmlvciBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFT
UyBQcm9wZXJ0eSBzY3JvbGwtYmVoYXZpb3IgZG9lcyBub3QgaW5oZXJpdCAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwt
YmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0CmluZGV4IDkwNjhiNzk3NTUuLjhkNGNh
NjQxNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSw0IEBACiAKIFBBU1MgSW5zdGFudCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRo
IGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAotRkFJTCBTbW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVs
ZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50
IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5o
dG1sCmluZGV4IDY5MjVjZjA5MmMuLmZlNDc1YjAzOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1j
c3MuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+CiA8dGl0bGU+VGVzdGluZyBkZWZhdWx0IHZhbHVlIG9m
IHNjcm9sbC1iZWhhdmlvcjwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
ZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVk
LnR4dAppbmRleCAyYjkxMjljMWNmLi41M2E5NjFlZjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1i
ZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVt
ZW50LWV4cGVjdGVkLnR4dApAQCAtMiwzNSArMiwzNSBAQAogUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3Nf
dGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxl
bWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKLUZBSUwgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKLUZBSUwgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhh
biA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBFbGVtZW50
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBn
b3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAw
IGJ1dCBnb3QgNTAwCi1GQUlMIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
NTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCiBQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKK1BBU1MgRWxlbWVudCB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAogUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNT
IEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3Ro
YW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFz
c2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIEVs
ZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFi
b3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4g
aW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1l
bnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbAppbmRleCAzY2JkNzIyZjcy
Li42YzE1OTI5YzlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFE
T0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4
cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0
aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCog
YW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50PC90aXRsZT4KIDxtZXRhIG5hbWU9InRp
bWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTD
qXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwt
YmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dAppbmRleCBkOTIyMjU4YWYyLi45
N2NhZWEyN2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3Qt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBl
Y3RlZC50eHQKQEAgLTMsMzUgKzMsMzUgQEAgUEFTUyBQYWdlIGxvYWRlZAogUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhh
dmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQz
MAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBn
b3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3Nl
cnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBu
b3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRf
bGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJ
TCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAy
NDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQz
MCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQg
Z290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50
b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAot
RkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAg
YnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0
MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5n
IHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBz
Y3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0
aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtcm9vdC5odG1sCmluZGV4IGZjZjc1YWExZGQuLjZkOWIyMjQyZWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NU
WVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVy
aW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRs
ZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5k
IHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+CiA8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+CiA8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0Cmlu
ZGV4IGM2YmU5NjY2MWMuLjM4MjM4NWFhYjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTMsMjcgKzMsMjcgQEAgUEFTUyBQYWdl
IGxvYWRlZAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKIFBBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMw
IGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91
bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFu
OiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3Qg
MjQzMAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2Vy
dF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0
ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
YXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQz
MAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
YXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVz
cyB0aGFuIDI0MzAgYnV0IGdvdCAyNDMwCi1GQUlMIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgYXNzZXJ0X2xl
c3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKLUZBSUwgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyNDMwIGJ1dCBnb3QgMjQzMAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhh
bjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gMjQzMCBidXQgZ290IDI0MzAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAogUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUg
d2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcg
c21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xs
aW5nIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbAppbmRleCA4Yzg4
ZWM2ODYxLi5iZjM4NzMwNDI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVo
YXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBvbiB0aGUgd2luZG93IG9mIHRoZSBtYWluIGZyYW1l
PC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2FsZT0x
LGluaXRpYWwtc2NhbGU9MSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxp
bnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50
b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dAppbmRleCA3Y2UxMGMwODk2Li40NDNhODIwZTU4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBl
Y3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgc2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0
ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJlaGF2aW9yIGFzc2VydF9sZXNzX3Ro
YW46IEVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3Igc2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRp
YXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBz
Y3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwt
YmVoYXZpb3IgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0
bWwKaW5kZXggM2E4OTA2NTMyYi4uM2YzZDliNzJkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVo
YXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRt
bD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFs
OkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3Rp
bmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3Igd2l0aCBzY3JvbGxJbnRvVmlldyBmb3IgbmVzdGVk
IHNjcm9sbGluZyBub2RlczwvdGl0bGU+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9u
cy5odG1sCmluZGV4IDAwNWQyYjYwNGQuLmVhYTBmZmYwMTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xs
LWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09N
Vmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2
aW9yPC90aXRsZT4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdA
aWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0CmluZGV4IGI2ZmExYzJlYzguLjI3OTlmZGNjMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0zLDM1ICszLDM1IEBAIFBBU1MgaWZyYW1l
IGxvYWRlZAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3Qg
NTAwCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNz
X3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1Mg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1G
QUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290
IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0
IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBT
dWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNz
ZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCi1GQUlMIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAotRkFJTCBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1
MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gNTAwIGJ1dCBnb3QgNTAwCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBT
dWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQQVNTIFN1YmZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhh
dmlvciAKIFBBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBh
c3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgU3ViZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBp
bW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3QgNTAwCi1G
QUlMIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQg
Z290IDUwMAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
LUZBSUwgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAg
YnV0IGdvdCA1MDAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgQWJvcnRpbmcgYW4g
b25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVyIHNtb290
aCBzY3JvbGxpbmcgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBv
biBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcv
c2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1
YmZyYW1lLXJvb3QuaHRtbAppbmRleCBlNjQxZTUzZTMzLi5lOGNjYjY2YmU2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVo
YXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KIDx0aXRsZT5UZXN0aW5n
IHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1i
ZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4KIDxtZXRhIG5hbWU9InRp
bWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTD
qXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBjYzY2NWViZGI4Li4w
NWViMzI3MmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ct
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBl
Y3RlZC50eHQKQEAgLTMsMjcgKzMsMjcgQEAgUEFTUyBpZnJhbWUgbG9hZGVkCiBQQVNTIE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCi1GQUlMIE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAK
LUZBSUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1dCBnb3Qg
NTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCiBQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9s
ZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAog
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCiBQQVNTIE1haW4gZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAotRkFJTCBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggc21vb3RoIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBi
dXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46IFNob3Vs
ZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuIDUwMCBidXQgZ290IDUwMAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIGFzc2VydF9sZXNzX3RoYW46
IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAotRkFJTCBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgYXNzZXJ0X2xlc3NfdGhhbjogU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gNTAwIGJ1
dCBnb3QgNTAwCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCiBQ
QVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBhdXRvIGJlaGF2aW9yIAogUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZBSUwgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1MDAKLUZB
SUwgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggYXV0byBiZWhhdmlvciBhc3NlcnRfbGVzc190aGFuOiBTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiA1MDAgYnV0IGdvdCA1
MDAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnko
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0
byBiZWhhdmlvciAKIFBBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKLUZBSUwgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9y
IGFzc2VydF9sZXNzX3RoYW46IFNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDUwMCBidXQgZ290IDUwMAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCiBQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0
aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKIFBBU1MgQWJvcnRp
bmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4g
aW5zdGFudCBzY3JvbGxpbmcgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwK
aW5kZXggZDkzMWUwMDNkNC4uOTI2ODRkNjc0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUt
d2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgogPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRo
ZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyIvPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhy
ZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmMzZlODY0Nzg4Li4zZThkNDMwZTIxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC03NDks
NiArNzQ5LDE1IEBAIHdlYmtpdC5vcmcvYi8xODk1OTQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvcGVuZGluZy1zCiAKIHdlYmtpdC5vcmcvYi8xODgw
NzAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9lcnJvci1w
cm9wYWdhdGlvbi1iYWNrd2FyZC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAorIyBUZXN0cyBmb3Ig
c21vb3RoIHNjcm9sbCBiZWhhdmlvciBkbyBub3QgYWxsIHdvcmsgYW5kIHRoZXkgYXJlIHNsb3cs
IHNvIGxldCdzIGp1c3Qgc2tpcCB0aGVtLgord2Via2l0Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXdpbmRvdy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTkxMzU3IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1
YmZyYW1lLXJvb3QuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE5MTM1NyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJm
cmFtZS13aW5kb3cuaHRtbCBbIFNraXAgXQorCisjIFRoaXMgaXMgZmFpbGluZyBvbiBtYWMtd2sx
LCB0cnkgdG8gZmlndXJlIGl0IG91dCBpbiB0aGUgZm9sbG93LXVwIGJ1Zy4KK3dlYmtpdC5vcmcv
Yi8xOTEzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9p
bmhlcml0YW5jZS5odG1sIFsgU2tpcCBdCisKIHdlYmtpdC5vcmcvYi8xODk5MDggaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10aW1pbmcvcmVzb3VyY2VfdGltaW5nLndv
cmtlci5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xODk3NTYgWyBNb2phdmUrIF0g
Y29tcG9zaXRpbmcvZmlsdGVycy9vcGFjaXR5LWNoYW5nZS1vbi1maWx0ZXJlZC1wYWludHMtaW50
by1hbmNlc3Rvci5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggMzhlNmVkZmYzMC4uODJjYmEzMzhjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTk2Niw4ICs5NjYsMTAgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBwYWdl
L1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsCiAgICAgcGFnZS9SZXNpemVPYnNlcnZlckVudHJ5
LmlkbAogICAgIHBhZ2UvU2NyZWVuLmlkbAorICAgIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsCiAg
ICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsCiAgICAgcGFnZS9TY3JvbGxMb2dpY2Fs
UG9zaXRpb24uaWRsCisgICAgcGFnZS9TY3JvbGxPcHRpb25zLmlkbAogICAgIHBhZ2UvU2Nyb2xs
VG9PcHRpb25zLmlkbAogICAgIHBhZ2UvU2hhcmVEYXRhLmlkbAogICAgIHBhZ2UvVW5kb0l0ZW0u
aWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYzNiN2U5MDc0NC4uMmY3MzNmMDFkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0MCBAQAorMjAxOS0xMi0xMSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMg
b24gbmF0aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBi
eSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzdXBwb3J0IG5hdGl2ZSBz
Y3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0Zm9ybS4gSXQgcmVsaWVzIG9uIFVJU2Nyb2xsVmll
dydzCisgICAgICAgIG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uIHN1cHBvcnQgYW5kIGlzIGV4ZWN1
dGVkIGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4t
ZnJhbWUtd2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1l
LXJvb3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRp
b24pOiBSZXF1ZXN0cyBhIG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uIGJ5IGNhbGxpbmcgYW5pbWF0
ZWQgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKCkuCisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUpOiBBZGQg
YSBmbGFnIHRvIGluZGljYXRlIGlmIHRoaXMgaXMgYW4gYW5pbWF0ZWQgc2Nyb2xsIG9yIG5vdC4K
KyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpOiBVcGRhdGUgdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzIGZy
b20gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSk6IEFkZCBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbiB0byBpbmRpY2F0ZSBpdCdzIGFuaW1hdGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpyZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
bldpdGhBbmltYXRpb24gY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxp
bmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IFVwZGF0ZSB0
aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogQWRkIGEgZmxhZyB0byBpbmRp
Y2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCBvciBub3QuCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJl
bik6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgdGhlIHNjcm9sbCBpcyBhbmltYXRlZCBvciBub3Qu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8p
OiBJZiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uIGlzIHRydWUsIHNlbmQgdGhlIHNjcm9sbCBwb3Np
dGlvbiB0byB0aGUgV2ViIHByb2Nlc3MsIGV2ZW4gaWYgdGhlIHNjcm9sbCBwb3NpdGlvbiBkb2Vz
bid0IGNoYW5nZS4KKyAgICAgICAgTWFpbnRhaW4gdGhlIHN0YXR1cyBvZiBtX3N0b3BTY3JvbGxB
bmltYXRpb24gYW5kIG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQp
OiBBbmltYXRlZCBzY3JvbGwgd29uJ3QgY2hhbmdlIHRoZSBzY3JvbGwgcG9zaXRpb24gaW1tZWRp
YXRlbHksIHNvIGRvbid0IG5vdGlmeSB0aGUgc2Nyb2xsaW5nIGluZm8gbm93LgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RBbmltYXRlZFNj
cm9sbCk6IG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsIGluZGljYXRlcyB0aGF0IHRoaXMgaXMgYW4g
YW5pbWF0ZWQgc2Nyb2xsIHJlcXVlc3QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsIGNvbnN0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyk6IE1haW50YWluIHRoZSBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxBbmltYXRp
b25JblByb2dyZXNzIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbik6IElm
IHRoZSBOb2RlIGlzIHBlcmZvcm1pbmcgYSBzY3JvbGwgYW5pbWF0aW9uLCB0aGUgcHJldmlvdXMg
c2Nyb2xsIGFuaW1hdGlvbiBzaG91bGQgc3RvcCBmaXJzdC4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9u
IGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oOiBBZGQgU2Ny
b2xsQmVoYXZpb3JUeXBlIHRvIGluZGljYXRlIGl0J3MgaW5zdGFudCBvciBzbW9vdGggc2Nyb2xs
LgorICAgICAgICBBZGQgU2Nyb2xsQmVoYXZpb3JTdGF0dXMgdG8gaW5kaWNhdGUgdGhlIHN0YXR1
cyBvZiBzY3JvbGxpbmcuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6IFVwZGF0ZSBTY3Jv
bGxCZWhhdmlvclR5cGUuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OlNjcm9sbGFibGVBcmVhKTogQWRkIG1f
Y3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmN1cnJlbnRTY3JvbGxC
ZWhhdmlvclR5cGUgY29uc3QpOiBNYWludGFpbiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldEN1cnJlbnRTY3JvbGxCZWhhdmlv
clR5cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQpOiBTZW5kIGEgcXVlc3Qgb2YgbmF0
aXZlIHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNl
dFdpdGhBbmltYXRpb24pOiBSZXF1ZXN0cyBhIG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uIGJ5IGNh
bGxpbmcgYW5pbWF0ZWQgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKCkuCisKKzIwMTktMTIt
MTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIFNjcm9sbEFuaW1hdGlvbiBvZiB0
aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNDg4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgcHJvZ3JhbW1hdGljIHNtb290aCBzY3JvbGxpbmcgaW4g
V2ViS2l0IGZyb20gdGhlIENTU09NIFZpZXcKKyAgICAgICAgc3BlY2lmaWNhdGlvbiBbMV0uIFRv
IHVzZSB0aGlzIGVmZmVjdCwgd2ViIGRldmVsb3BlcnMgY2FuIHBhc3MgYSBiZWhhdmlvciBwYXJh
bWV0ZXIgKGF1dG8sCisgICAgICAgIHNtb290aCwgb3IgaW5zdGFudCkgdG8gRWxlbWVudC5zY3Jv
bGwsIEVsZW1lbnQuc2Nyb2xsVG8sIEVsZW1lbnQuc2Nyb2xsQnksCisgICAgICAgIEVsZW1lbnQu
c2Nyb2xsSW50b1ZpZXcsIFdpbmRvdy5zY3JvbGwsIFdpbmRvdy5zY3JvbGxUbyBvciBXaW5kb3cu
c2Nyb2xsQnkgWzJdLiBXaGVuIGJlaGF2aW9yCisgICAgICAgIGlzIGF1dG8sIHRoZSBpbnN0YW50
L3Ntb290aCBjaGFyYWN0ZXJpc3RpYyBpcyBhY3R1YWxseSB0YWtlbiBmcm9tIHRoZSB2YWx1ZSBv
ZiBhIG5ldyBDU1MKKyAgICAgICAgc2Nyb2xsLWJlaGF2aW9yIHByb3BlcnR5IFszXS4gQm90aCB0
aGUgbmV3IENTUyBhbmQgRE9NIGJlaGF2aW9yIGFyZSBwcm90ZWN0ZWQgYnkgYSBydW50aW1lCisg
ICAgICAgIGZsYWcuCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Nv
bS12aWV3CisgICAgICAgIFsyXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8j
ZGljdGRlZi1zY3JvbGxvcHRpb25zCisgICAgICAgIFszXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IKKworICAgICAgICBUZXN0czog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVo
YXZpb3ItZGVmYXVsdC1jc3MuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1s
CisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbAorICAgICAgICAgICAg
ICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwt
YmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Ny
b2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCisgICAg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbAorICAgICAgICAqIFNvdXJjZXMu
dHh0OiBCdWlsZCBTY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIG9uIGFsbCBwbGF0Zm9ybXMuCisg
ICAgICAgICogU291cmNlc0dUSy50eHQ6IFJlbW92ZSBTY3JvbGxBbmltYXRpb25TbW9vdGguY3Bw
IHNpbmNlIGl0IGlzIGJ1aWx0IG9uIGFsbCBwbGF0Zm9ybXMgbm93LgorICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KTog
UGFzcyBzY3JvbGwgYmVoYXZpb3IsIGlmIGFueS4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnNjcm9sbEJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbFRvKTogSGFuZGxl
IHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OnNldFNjcm9sbExlZnQpOiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiBzY3JvbGwg
YmVoYXZpb3IgaXMgc21vb3RoLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0U2Nyb2xs
VG9wKTogSGFuZGxlIHRoZSBjYXNlIHdoZW4gc2Nyb2xsIGJlaGF2aW9yIGlzIHNtb290aC4KKyAg
ICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OnNjcm9sbEJ5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2Nyb2xsVG8g
Y29uc3QpOiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiBzY3JvbGwgYmVoYXZpb3IgaXMgc21vb3RoLgor
ICAgICAgICBUaGUgb3B0aW1pemF0aW9uIG9mIGNhbmNlbCAoMCwgMCkgc2Nyb2xsaW5nIGlzIHNr
aXBwZWQgaWYgYW4gYW5pbWF0ZWQgc2Nyb2xsIGlzIGluIHByb2dyZXNzLgorICAgICAgICBPdGhl
cndpc2UsIHRoZSBwcmV2aW91cyBzY3JvbGwgd29uJ3QgYmUgc3RvcHBlZCBieSBhIGZvbGxvdy11
cCBzY3JvbGwuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6IFN0YXJ0IGFuIGFuaW1hdGVkIHNj
cm9sbC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdGlvbjo6c2Nyb2xsKTogRnVuY3Rpb24gdG8gYW5pbWF0ZSBzY3JvbGxpbmcgdG8g
YSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9u
U21vb3RoLmNwcDogQnVpbGQgdGhpcyBmaWxlIG9uIGFsbCBwbGF0Zm9ybXMuIEFkZCBhCisgICAg
ICAgIHNtb290aEZhY3RvckZvclByb2dyYW1tYXRpY1Njcm9sbCBwYXJhbWV0ZXIgdG8gc2xvdyBk
b3duIHRoZSBzbW9vdGggc2Nyb2xsaW5nLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
aW9uU21vb3RoOjpzY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uU21v
b3RoOjp1cGRhdGVQZXJBeGlzRGF0YSk6IFNjYWxlIHRoZSB0aW1lIHBhcmFtZXRlcnMgb2YgdGhl
CisgICAgICAgIGFuaW1hdGlvbiBzbyB0aGF0IGl0IGxvb2tzIHNtb290aGVyLgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oOiBEZWNsYXJlIHRoZSBjbGFzcyBvbiBh
bGwgcGxhdGZvcm1zLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcik6IEluaXRpYWxp
emUgYW5pbWF0aW9uIG1lbWJlciBmb3IgcHJvZ3JhbW1hdGljIHNjcm9sbGluZy4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldCk6IEFuaW1hdGUgc2Nyb2xs
aW5nIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvcjo6Y2FuY2VsQW5pbWF0aW9ucyk6IENvcHkgbG9naWMgZnJvbSBTY3JvbGxBbmltYXRp
b25TbW9vdGguY3BwLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VT
Y3JvbGxBbmltYXRpb25zKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
cjo6d2lsbEVuZExpdmVSZXNpemUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcik6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3I6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOiBOZXcgYW5pbWF0aW9uIG1lbWJlciBm
b3Igc21vb3RoIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpzZXJ2aWNl
U2Nyb2xsQW5pbWF0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvcjo6U2Nyb2xsQW5pbWF0b3I6OndpbGxFbmRMaXZlUmVzaXplKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6ZGlkQWRkVmVydGlj
YWxTY3JvbGxiYXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6
OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oOiBBZGQgU2Nyb2xsQmVoYXZpb3JTdGF0dXMg
dG8gaW5kaWNhdGUgdGhlIHN0YXR1cyBvZiBzY3JvbGxpbmcuCisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQ
b3NpdGlvbik6IEZvbGxvdyB0aGUgQ1NTT00gVmlldyBzcGVjOiBJZiBhIHNjcm9sbCBpcyBpbgor
ICAgICAgICBwcm9ncmVzcywgd2UgaW50ZXJydXB0IGl0IGFuZCBjb250aW51ZSB0aGUgc2Nyb2xs
IGNhbGwgKGV2ZW4gd2hlbiB3ZSBhcmUgYXQgdGhlIGZpbmFsIHBvc2l0aW9uKS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0
V2l0aEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Ny
b2xsT2Zmc2V0RnJvbUludGVybmFscyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJl
YTo6c2V0U2Nyb2xsT2Zmc2V0RnJvbUFuaW1hdGlvbik6IFRvIGF2b2lkIGl0ZXJhdGUgY2FsbGlu
ZywKKyAgICAgICAgbW92ZSB0aGUgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9u
KSBjaGVja2luZyBvdXQgb2Ygc2V0U2Nyb2xsT2Zmc2V0RnJvbUFuaW1hdGlvbigpLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxh
YmxlQXJlYTo6Y3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzIGNvbnN0KTogTWFpbnRhaW4gY3Vy
cmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFy
ZWE6OnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZW5lcmlj
L1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvckdlbmVyaWM6OnVwZGF0ZVBvc2l0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6
Y2FuY2VsQW5pbWF0aW9ucyk6IENhbGwgcGFyZW50IG1lbWJlciB0byBoYW5kbGUgcHJvZ3JhbW1h
dGljIHNjcm9sbGluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xsTGVmdCk6IEFkZCBmbGFnIHRvIGluZGlj
YXRlIGFuaW1hdGVkIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0U2Ny
b2xsVG9wKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFNjcm9sbFBv
c2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpz
Y3JvbGxUb1hQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnNjcm9sbFRvWVBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9Qb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Ny
b2xsVG9PZmZzZXQpOiBGb2xsb3cgdGhlIENTU09NIFZpZXcgc3BlYzogSWYgYSBzY3JvbGwgaXMg
aW4KKyAgICAgICAgcHJvZ3Jlc3MsIHdlIGludGVycnVwdCBpdCBhbmQgY29udGludWUgdGhlIHNj
cm9sbCBjYWxsIChldmVuIHdoZW4gd2UgYXJlIGF0IHRoZSBmaW5hbAorICAgICAgICBwb3NpdGlv
bikuIEl0J3MgU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50IHNjcm9sbC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6IERp
dHRvLiBUaGlzIGlzIHNpbWlsYXIgdG8gc2Nyb2xsVG9PZmZzZXQKKyAgICAgICAgYnV0IGFuaW1h
dGVzIHRoZSBzY3JvbGwuIEl0J3MgU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGggc2Nyb2xsLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKTogQWdhaW4gZG9uJ3QgZG8gYW4g
ZWFybHkgcmV0dXJuIGlmIHNjcm9sbCBpcyBpbgorICAgICAgICBwcm9ncmVzcy4gV2UgY2FsbCBz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24gaW5zdGVhZCBvZiBzY3JvbGxUb09mZnNldCB3aGVu
IGFwcHJvcHJpYXRlLgorICAgICAgICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBtYXkgbm90IHdv
cmsgd2VsbCBmb3Igc2V2ZXJhbCBuZXN0ZWQgc2Nyb2xsIGJveGVzIHdpdGggYXQgbGVhc3Qgb25l
CisgICAgICAgIGVsZW1lbnQgd2l0aCBzbW9vdGggYmVoYXZpb3IuIEl0IHdpbGwgaGFuZGxlZCBp
biBidWcgRm9sbG93LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOiBBZGQgc2Ny
b2xsIGJlaGF2aW9yIHRvIFNjcm9sbFRlY3RUb1Zpc2libGVPcHRpb25zLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RC
b3g6OnNldFNjcm9sbExlZnQpOiBBZGQgYW5pbWF0ZWQgZmxhZy4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxpc3RCb3g6OnNldFNjcm9sbFRvcCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OnNldFNjcm9sbExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3ApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVuY29uc3RyYWluZWRTY3JvbGxUbyk6CisK
KzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBi
eSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgc2Ny
b2xsLWJlaGF2aW9yIGNzcyBwcm9wZXJ0eSBhbmQgU2Nyb2xsT3B0aW9ucy4KKworICAgICAgICBU
ZXN0czogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9pbmhlcml0YW5jZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRk
IElETCBmaWxlcyBmb3IgU2Nyb2xsT3B0aW9ucyBhbmQgU2Nyb2xsQmVoYXZpb3IuCisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOiBBZGQgaGVh
ZGVycyBmb3IgU2Nyb2xsQmVoYXZvciBhbmQgU2Nyb2xsT3B0aW9ucy4KKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDogQWRkIFNjcm9sbEJlaGF2b3IgYW5kIFNjcm9sbE9wdGlvbnMgaW1wbGVtZW50YXRp
b24uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgZmls
ZXMgdG8gdGhlIGJ1aWxkIHN5c3RlbS4KKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcDogSGFuZGxlIHNjcm9sbC1iZWhhdmlvci4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKToKKyAgICAg
ICAgKiBjc3MvQ1NTUHJvcGVydGllcy5qc29uOiBBZGQgc2Nyb2xsLWJlaGF2aW9yLgorICAgICAg
ICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOiBBZGQga2V5d29yZHMgZm9yIHNjcm9sbC1iZWhh
dmlvci4KKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwOiBBZGQgcnVu
dGltZSBjb25maWcgZm9yIHNjcm9sbC1iZWhhdmlvci4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0
b3I9PSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0Lmg6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyQ29udGV4dEhhc2g6Omhhc2gpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcDogUmVtb3ZlIHNjcm9sbC1iZWhhdmlv
ciB0ZW1wbGF0ZXMuIEl0IGlzIGhhbmRsZWQgaW4gdGhlIHNsb3cgcGF0aCBzaW5jZSBwcm9wZXJ0
eSBjYW4gYmUgZGlzYWJsZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6
OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5SUQpOgorICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZVNjcm9s
bEJlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNp
bmdsZVZhbHVlKTogUGFyc2Ugc2Nyb2xsLWJlaGF2aW9yIChvbmx5IGlmIGVuYWJsZWQpLgorICAg
ICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OnVzZVNtb290aFNjcm9sbGluZyk6IEhlbHBlciBmdW5jaXRvbiB0byBkZXRlcm1pbmUgdGhlIHNj
cm9sbCBiZWhhdmlvciB0byBhcHBseSB0byBhbiBlbGVtZW50IGZyb20gdGhlIENTUyBhbmQgRE9N
IGJlaGF2aW9yLgorICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuaDogQWRkZWQuCisgICAg
ICAgICogcGFnZS9TY3JvbGxCZWhhdmlvci5pZGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU2Ny
b2xsSW50b1ZpZXdPcHRpb25zLmg6IE1ha2UgdGhpcyBjbGFzcyBpbmhlcml0cyBmcm9tIFNjcm9s
bE9wdGlvbi4gQWxzbyByZW1vdmUgdW5uZWNlc3NhcnkgZm9yd2FyZCBkZWNsYXJhdGlvbi4KKyAg
ICAgICAgKiBwYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5pZGw6IE1ha2UgdGhpcyBjbGFzcyBp
bmhlcml0cyBmcm9tIFNjcm9sbE9wdGlvbi4KKyAgICAgICAgKiBwYWdlL1Njcm9sbE9wdGlvbnMu
aDogQWRkZWQuCisgICAgICAgICogcGFnZS9TY3JvbGxPcHRpb25zLmlkbDogQWRkZWQuCisgICAg
ICAgICogcGFnZS9TY3JvbGxUb09wdGlvbnMuaDogTWFrZSB0aGlzIHN0cnVjdCBpbmhlcml0cyBm
cm9tIFNjcm9sbE9wdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxUb09wdGlvbnM6OlNj
cm9sbFRvT3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpub3JtYWxpemVOb25GaW5pdGVDb29y
ZGluYXRlc09yRmFsbEJhY2tUbyk6IENvcHkgdGhlIGN1cnJlbnQgU2Nyb2xsVG9PcHRpb25zIHNv
IHRoYXQgdGhlIHNjcm9sbCBiZWhhdmlvciBpcyBwcmVzZXJ2ZWQuCisgICAgICAgICogcGFnZS9T
Y3JvbGxUb09wdGlvbnMuaWRsOiBNYWtlIHRoaXMgY2xhc3MgaW5oZXJpdCBmcm9tIFNjcm9sbE9w
dGlvbnMuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOiBOZXcgc2V0dGluZyBmb3IgQ1NT
T00gVmlldyBzbW9vdGggc2Nyb2xsaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oOiBIYW5kbGUgJ3Ntb290aCBzY3JvbGxpbmcnIGJvb2xlYW4gZGF0YS4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjp1c2VTbW9vdGhTY3JvbGxpbmcgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFVzZVNtb290aFNjcm9sbGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZVNtb290aFNjcm9sbGluZyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlckNvbnZl
cnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZl
cnRTbW9vdGhTY3JvbGxpbmcpOgorCiAyMDE5LTEyLTE1ICBFbWlsaW8gQ29ib3Mgw4FsdmFyZXog
IDxlbWlsaW9AY3Jpc2FsLmlvPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIEZpeCBzaWxseSBidWcg
aW4gR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IGZhZGNiZTA3MTguLmViMzQyOWJhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtOTE3LDggKzkxNywxMCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9wYWdlL1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUp
L3BhZ2UvUmVzaXplT2JzZXJ2ZXJFbnRyeS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TY3Jl
ZW4uaWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsIFwKICAgICAk
KFdlYkNvcmUpL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9wYWdlL1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9T
Y3JvbGxPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5p
ZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9TaGFyZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUp
L3BhZ2UvVW5kb0l0ZW0uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDJkN2MyY2UyMGYuLjll
Njc5ODFkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtODE4LDggKzgxOCwxMCBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9SZW1vdGVGcmFtZS5oCiAg
ICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAogICAgIHBhZ2UvUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oCisgICAgcGFnZS9TY3JvbGxCZWhhdmlvci5oCiAgICAgcGFnZS9TY3JvbGxJ
bnRvVmlld09wdGlvbnMuaAogICAgIHBhZ2UvU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmgKKyAgICBw
YWdlL1Njcm9sbE9wdGlvbnMuaAogICAgIHBhZ2UvU2Nyb2xsVG9PcHRpb25zLmgKICAgICBwYWdl
L1NlY3VyaXR5T3JpZ2luLmgKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDhlOTJmZGFjMzcuLjViNjhjMjMzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNjUx
LDYgKzE2NTEsNyBAQCBwYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcAogcGFnZS9SZXNvdXJj
ZVVzYWdlVGhyZWFkLmNwcAogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAogcGFnZS9T
Y3JlZW4uY3BwCitwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcAogcGFnZS9TZWN1cml0eU9yaWdpbi5j
cHAKIHBhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAogcGFnZS9TZWN1cml0eVBvbGljeS5jcHAK
QEAgLTE3NTYsNiArMTc1Nyw3IEBAIHBsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAK
IHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKIHBsYXRmb3JtL1NTTEtleUdl
bmVyYXRvci5jcHAKIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKIHBsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmNwcAogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApAQCAtMzM4Myw4ICszMzg1
LDEwIEBAIEpTU1ZHWm9vbUFuZFBhbi5jcHAKIEpTU1ZHWm9vbUV2ZW50LmNwcAogSlNTY3JlZW4u
Y3BwCiBKU1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCitKU1Njcm9sbEJlaGF2aW9yLmNwcAogSlNT
Y3JvbGxJbnRvVmlld09wdGlvbnMuY3BwCiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAKK0pT
U2Nyb2xsT3B0aW9ucy5jcHAKIEpTU2Nyb2xsVG9PcHRpb25zLmNwcAogSlNTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50LmNwcAogSlNTZXJ2aWNlV29ya2VyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4
dAppbmRleCBjMmMyNzA5Yjg3Li41NGI1MzZlZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dApAQCAt
NjMsNyArNjMsNiBAQCBwYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVTdGlja3lO
b2RlLmNwcAogcGFnZS9zY3JvbGxpbmcvZ2VuZXJpYy9TY3JvbGxpbmdUaHJlYWRHZW5lcmljLmNw
cAogCiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25LaW5ldGljLmNwcAotcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0vVXNlckFnZW50UXVpcmtzLmNwcAogCiBwbGF0
Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NTExZTBlMjAyLi5l
MGI3MzNkMzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yNDAyLDYgKzI0MDIsOCBAQAogCQk4MzQwN0ZDMTFFOEQ5QzE3MDBF
MDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0MDdGQzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2li
aWxpdHlDaGFuZ2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQjAgLyogSlNTY3JvbGxMb2dpY2Fs
UG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzRTlCMzAxMURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5oICov
OyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQzEgLyogSlNTY3JvbGxJbnRvVmlld09wdGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTlC
MzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oICovOyB9Owor
CQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyogSlNTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1QTUxRTAw
RkZFOEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLzsgfTsKKwkJODM0NDc2RUYxREE1QkM1RTAw
MkI2RUMxIC8qIEpTU2Nyb2xsT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNFOUIzMDExREE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0
aW9ucy5oICovOyB9OwogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFRDIgLyogSlNTY3JvbGxUb09w
dGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
RTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oICovOyB9OwogCQk4
MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQ4QkZBQTFCODU3Mjk1MDA5MTJG
MzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggKi87IH07CiAJCTgzNERGQUQwMUY3REFFNUQwMEMyNzI1
QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzRERkFDQzFGN0RBRTU2MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFz
aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0y
NDU2LDYgKzI0NTgsOCBAQAogCQk4M0M0NUI4RTFEQzJCNjhBMDA4ODcxQkEgLyogVmFsaWRhdGlv
bkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAx
MDA2RjlDODYgLyogU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFEQTU5QjYyMDAzNTU0MjQgLyogU2Ny
b2xsTG9naWNhbFBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMwMTAwNkY5Qzk3IC8qIFNjcm9sbEludG9WaWV3
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3T3B0aW9ucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTgzQzU3OTVEMURB
NUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDI0IC8qIFNjcm9s
bEJlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJODNDNTc5NUQxREE1QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIw
MDM1NjQzNSAvKiBTY3JvbGxPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNDNTc5NUQxREE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRv
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRDM1QUVDMUM3MTg3RkEw
MEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyog
WE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBG
NzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyog
SlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CkBAIC0xMDE4NCw5ICsxMDE4OCwx
NCBAQAogCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRTdHJpbmdIYXNoLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDI0
IC8qIFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JvbGxMb2dpY2FsUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM1MEMzRTcxREE1OUI2MjAwMzU1NDM1IC8qIFNjcm9sbEludG9WaWV3T3B0aW9ucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxJbnRvVmlld09wdGlvbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDI0IC8q
IFNjcm9sbEJlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzNTBDM0U3MURBNTlC
NjIwMDM1NjQzNCAvKiBTY3JvbGxCZWhhdmlvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbFRvT3B0aW9ucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MjQgLyog
U2Nyb2xsTG9naWNhbFBvc2l0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxM
b2dpY2FsUG9zaXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNF
ODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTY3JvbGxJbnRvVmlld09wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3Iu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbEJlaGF2aW9yLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1MEMzRTgxREE1OUI2MjAwMzU2NDM1IC8qIFNjcm9sbE9w
dGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcm9sbE9wdGlvbnMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0NDYgLyogU2Ny
b2xsVG9PcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JvbGxUb09wdGlvbnMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzUyMEM3RDFBNzFCRkNDMDA2QkQy
QUEgLyogQ1NTRm9udEZhbWlseS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
U1NGb250RmFtaWx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNTY1N0M2MUVD
QUIwRTgwMENERTcyRCAvKiBKU0RPTU1hdHJpeEluaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXRyaXhJbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwMzA4LDkgKzEwMzE3LDEzIEBACiAJCTgzRTk1OUUxMUI4QkMyMkIwMDRE
OTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNF
OUIzMDAxREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZE
OEU1IC8qIEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEQ0IC8qIEpTU2Nyb2xsQmVo
YXZpb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JvbGxC
ZWhhdmlvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTlCMzAwMURBNUE1
MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTY3JvbGxPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Nyb2xsVG9PcHRpb25z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFOUIzMDExREE1QTUxRTAwRkZE
OEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9sbEludG9WaWV3
T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0U5QjMwMTFEQTVBNTFF
MDBGRkU4RDQgLyogSlNTY3JvbGxCZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1Njcm9sbEJlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTgzRTlCMzAxMURBNUE1MUUwMEZGRThFNSAvKiBKU1Njcm9sbE9wdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JvbGxPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcm9sbFRvT3B0aW9u
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTk4QjFGNTA5NThCMDAzRThC
MzAgLyogSlNFcnJvckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTk4
QzFGNTA5NThCMDAzRThCMzAgLyogSlNFcnJvckNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMDc5OSwxMCArMjA4MTIsMTUgQEAKIAkJCQlCQ0VDMDFCQTBDMjc0
REFDMDA5RjRFQzkgLyogU2NyZWVuLmNwcCAqLywKIAkJCQlCQ0VDMDFCQjBDMjc0REFDMDA5RjRF
QzkgLyogU2NyZWVuLmggKi8sCiAJCQkJQkNFQzAxQkMwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVl
bi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM0IC8qIFNjcm9sbEJlaGF2aW9y
LmNwcCAqLywKKwkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3Iu
aCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MjQgLyogU2Nyb2xsQmVoYXZpb3IuaWRs
ICovLAogCQkJCTgzNTBDM0U3MURBNTlCNjIwMDM1NTQzNSAvKiBTY3JvbGxJbnRvVmlld09wdGlv
bnMuaCAqLywKIAkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTU0MzUgLyogU2Nyb2xsSW50b1ZpZXdP
cHRpb25zLmlkbCAqLywKIAkJCQk4MzUwQzNFNzFEQTU5QjYyMDAzNTU0MjQgLyogU2Nyb2xsTG9n
aWNhbFBvc2l0aW9uLmggKi8sCiAJCQkJODM1MEMzRTgxREE1OUI2MjAwMzU1NDI0IC8qIFNjcm9s
bExvZ2ljYWxQb3NpdGlvbi5pZGwgKi8sCisJCQkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDM1IC8q
IFNjcm9sbE9wdGlvbnMuaCAqLywKKwkJCQk4MzUwQzNFODFEQTU5QjYyMDAzNTY0MzUgLyogU2Ny
b2xsT3B0aW9ucy5pZGwgKi8sCiAJCQkJODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9s
bFRvT3B0aW9ucy5oICovLAogCQkJCTgzNTBDM0U4MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxU
b09wdGlvbnMuaWRsICovLAogCQkJCUJDRDBFMEY3MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0
eU9yaWdpbi5jcHAgKi8sCkBAIC0yNTU5NiwxMCArMjU2MTQsMTQgQEAKIAkJCQk1OEIyRkEwMjIy
MzJENjBBMDA5MzhENjMgLyogSlNSZXNpemVPYnNlcnZlckVudHJ5LmggKi8sCiAJCQkJQkNFQzAx
QzAwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmNwcCAqLywKIAkJCQlCQ0VDMDFDMTBDMjc0
REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCAqLywKKwkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkU4
RDQgLyogSlNTY3JvbGxCZWhhdmlvci5jcHAgKi8sCisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZF
OEQ0IC8qIEpTU2Nyb2xsQmVoYXZpb3IuaCAqLywKIAkJCQk4M0U5QjMwMDFEQTVBNTFFMDBGRkQ4
RTUgLyogSlNTY3JvbGxJbnRvVmlld09wdGlvbnMuY3BwICovLAogCQkJCTgzRTlCMzAxMURBNUE1
MUUwMEZGRDhFNSAvKiBKU1Njcm9sbEludG9WaWV3T3B0aW9ucy5oICovLAogCQkJCTgzRTlCMzAw
MURBNUE1MUUwMEZGRDhENCAvKiBKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAgKi8sCiAJCQkJ
ODNFOUIzMDExREE1QTUxRTAwRkZEOEQ0IC8qIEpTU2Nyb2xsTG9naWNhbFBvc2l0aW9uLmggKi8s
CisJCQkJODNFOUIzMDAxREE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5jcHAgKi8s
CisJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEU1IC8qIEpTU2Nyb2xsT3B0aW9ucy5oICovLAog
CQkJCTgzRTlCMzAwMURBNUE1MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5jcHAgKi8s
CiAJCQkJODNFOUIzMDExREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi8s
CiAJCQkJN0M3M0ZCMEYxOTFFRjZGNDAwN0RFMDYxIC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyLmNw
cCAqLywKQEAgLTMwOTUwLDggKzMwOTcyLDEwIEBACiAJCQkJNUUyQzQzNkMxQkNGMDcxRTAwMDFF
MkJDIC8qIEpTUlRDVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQzAxQzMwQzI3
NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVDRTEy
QjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9jZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFQjAgLyogSlNTY3JvbGxCZWhhdmlvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODM0NDc2RUYxREE1QkM1RTAwMkI1RUMxIC8qIEpTU2Nyb2xsSW50b1Zp
ZXdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjVFQjAg
LyogSlNTY3JvbGxMb2dpY2FsUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTgzNDQ3NkVG
MURBNUJDNUUwMDJCNkVDMSAvKiBKU1Njcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0VEMDZBRDExQzc3NzU0ODAwRkRGQUYxIC8qIEpTU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4MkMyNTYxRjMxNDNDRDAwNTlC
QTdDIC8qIEpTU2VydmljZVdvcmtlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjE1Nyw2ICszMjE4
MSw3IEBACiAJCQkJNDRDOTkxODYwRjNEMUVCRTAwNTg2NjcwIC8qIFNjcm9sbGJhclRoZW1lSU9T
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCODUzRTBFN0M3RjExMDBBQjY5ODQgLyogU2Nyb2xs
YmFyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTcxNDA2MTQyMTcwQjgwMERCMzNC
QSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTgzQzU3OTVEMURB
NUMzMDEwMDZGQUM4NiAvKiBTY3JvbGxCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFB
ODRGMDUxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9sbENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNjA1QUVEMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNjJFRTgxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTkzLDYgKzMyMjE4LDcgQEAKIAkJ
CQk4M0M1Nzk1RDFEQTVDMzAxMDA2RjlDOTcgLyogU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QUFGRThEMDE5Q0I4NjcyMDAwRjU2RDggLyogU2Nyb2xsTGF0Y2hp
bmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNTc5NUQxREE1QzMwMTAwNkY5Qzg2IC8q
IFNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNDNTc5NUQxREE1
QzMwMTAwNkZBQzk3IC8qIFNjcm9sbE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0Nzg3
NTU0MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjQ2NzI5MjgxRTBERTY4NTAwQUNDM0Q4IC8qIFNjcm9sbFNuYXBPZmZzZXRz
SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNTc5NUQxREE1QzMwMTAwNkZBQ0E4IC8qIFNj
cm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDFjNGUzNmYxNDkuLmQ0YWJm
MjNiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCkBAIC0zMzkzLDYgKzMzOTMsMTAgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJT
dHkKICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZUF1dG8pOwogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVh
dGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVUb3VjaCk7CiAjZW5kaWYKKyAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVNjcm9sbEJlaGF2aW9yOgorICAgICAgICAgICAgaWYgKCFzdHlsZS51c2VTbW9v
dGhTY3JvbGxpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOworICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVTbW9vdGgpOwogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5UGVyc3BlY3RpdmU6CiAgICAgICAgICAgICBpZiAoIXN0eWxlLmhhc1Bl
cnNwZWN0aXZlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJ
ZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGll
cy5qc29uCmluZGV4IDQxNTc4YTk0ZWQuLmY5ODJkM2Y1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnRpZXMuanNvbgpAQCAtMzU1Nyw2ICszNTU3LDE2IEBACiAgICAgICAgICAgICAgICAg
InVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvU1ZHL3NoYXBlcy5odG1sIgogICAgICAgICAg
ICAgfQogICAgICAgICB9LAorICAgICAgICAic2Nyb2xsLWJlaGF2aW9yIjogeworICAgICAgICAg
ICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiYXV0byIsCisgICAgICAgICAgICAgICAg
InNtb290aCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsK
KyAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiY3Nzb20tdmlldyIsCisgICAgICAgICAgICAg
ICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1z
Y3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICAgICJzaGFw
ZS1yZW5kZXJpbmciOiB7CiAgICAgICAgICAgICAiaW5oZXJpdGVkIjogdHJ1ZSwKICAgICAgICAg
ICAgICJ2YWx1ZXMiOiBbCkBAIC02NDg5LDYgKzY0OTksMjIgQEAKICAgICAgICAgICAgICAgICAi
dXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdWktNC8jcHJvcGRlZi11c2VyLXNlbGVj
dCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgInNjcm9sbC1iZWhhdmlvciI6
IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAgICAgICAgImF1dG8iLAorICAg
ICAgICAgICAgICAgICJzbW9vdGgiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImNvZGVn
ZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAiY29udmVydGVyIjogIlNtb290aFNj
cm9sbGluZyIsCisgICAgICAgICAgICAgICAgIm5hbWUtZm9yLW1ldGhvZHMiOiAiVXNlU21vb3Ro
U2Nyb2xsaW5nIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAg
ICAgICAgICAgICAgInN0YXR1cyI6ICJleHBlcmltZW50YWwiCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3Ii
CisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICAgICJzY3JvbGwtcGFkZGluZyI6IHsK
ICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgImVu
YWJsZS1pZiI6ICJFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW4KaW5kZXggOGRmZTNhYmIyMS4uZGE4MjY5ZTYzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTEzODgsNiArMTM4OCwxMCBAQCBwYW4teQog
cGluY2gtem9vbQogI2VuZGlmCiAKKy8vIHNjcm9sbC1iZWhhdmlvcgorLy8gYXV0bworc21vb3Ro
CisKIC8vIGhhbmdpbmctcHVuY3R1YXRpb24KIGFsbG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCmluZGV4IDc1MzcxODhjYjku
LjcxZjlhYTYyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmNwcApAQCAtNzUsNiArNzUsNyBAQCBDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJD
b250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiBzaGVldEJhcwogICAg
IGF0dGFjaG1lbnRFbmFibGVkID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQoKTsKICNlbmRpZgogICAgIGRlZmVycmVkQ1NT
UGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkuZGVmZXJyZWRDU1NQYXJzZXJFbmFi
bGVkKCk7CisgICAgc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5D
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCk7CiAgICAgdXNlU3lzdGVtQXBwZWFyYW5j
ZSA9IGRvY3VtZW50LnBhZ2UoKSA/IGRvY3VtZW50LnBhZ2UoKS0+dXNlU3lzdGVtQXBwZWFyYW5j
ZSgpIDogZmFsc2U7CiB9CiAKQEAgLTk5LDYgKzEwMCw3IEBAIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBiKQogICAgICAg
ICAmJiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIuYXR0YWNobWVudEVuYWJsZWQKICNlbmRpZgog
ICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9PSBiLmRlZmVycmVkQ1NTUGFy
c2VyRW5hYmxlZAorICAgICAgICAmJiBhLnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9PSBiLnNjcm9s
bEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4g
PT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luCiAgICAgICAgICYmIGEudXNlU3lzdGVtQXBw
ZWFyYW5jZSA9PSBiLnVzZVN5c3RlbUFwcGVhcmFuY2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmluZGV4IDg2NTI1ZmQ3MGMuLmM3NGRjOTRjMjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02
NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBib29sIGF0dGFjaG1lbnRFbmFibGVkIHsgZmFsc2Ug
fTsKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsK
KyAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8g
VGhpcyBpcyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBi
b29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4geyBmYWxzZSB9OwpAQCAtMTE2LDcgKzExNyw4
IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFzaCB7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKICAgICAgICAgICAgICYga2V5LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYKLSAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4K
KyAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAg
ICAgIDw8IDEyCisgICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0g
V1RGOjppbnRIYXNoKGJpdHMpOwogICAgICAgICByZXR1cm4gaGFzaDsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKaW5kZXggMzFk
MTJhYjlhYi4uNDIxMjg4OWVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtNjM2LDEwICs2MzYsNiBAQCBib29sIENTU1BhcnNl
ckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQg
cHJvcGVydHlJZAogICAgICAgICAgICAgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVN0aWNreSB8fCB2
YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0U3RpY2t5OwogICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNp
emU6IC8vIG5vbmUgfCBib3RoIHwgaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgYXV0bwogICAgICAg
ICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJv
dGggfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUhvcml6b250YWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZVZlcnRpY2FsIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvOwotICAgIC8vIEZJWE1FLU5FV1BB
UlNFUjogSW52ZXN0aWdhdGUgdGhpcyBwcm9wZXJ0eS4KLSAgICAvLyBjYXNlIENTU1Byb3BlcnR5
U2Nyb2xsQmVoYXZpb3I6IC8vIGF1dG8gfCBzbW9vdGgKLSAgICAvLyAgICAgQVNTRVJUKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OmNzc29tU21vb3RoU2Nyb2xsRW5hYmxlZCgpKTsKLSAgICAvLyAg
IHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU21v
b3RoOwogICAgIGNhc2UgQ1NTUHJvcGVydHlTaGFwZVJlbmRlcmluZzoKICAgICAgICAgcmV0dXJu
IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVPcHRpbWl6ZVNw
ZWVkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDcmlzcGVkZ2VzIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVHZW9tZXRyaWNQcmVjaXNpb247CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZUxpbmVqb2lu
OgpAQCAtOTM5LDcgKzkzNSw2IEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQ
cm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCkKICAgICAvLyBjYXNlIENTU1Byb3Bl
cnR5Rm9udEtlcm5pbmc6CiAgICAgLy8gY2FzZSBDU1NQcm9wZXJ0eUh5cGhlbnM6CiAgICAgLy8g
Y2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93QW5jaG9yOgotICAgIC8vIGNhc2UgQ1NTUHJvcGVydHlT
Y3JvbGxCZWhhdmlvcjoKICAgICAvLyBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsU25hcFR5cGU6CiAg
ICAgLy8gY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGlnbkxhc3Q6CiAgICAgLy8gY2FzZSBDU1NQcm9w
ZXJ0eVRleHRDb21iaW5lVXByaWdodDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggZWJkMGVhZjVmNi4uNjNmNWFiNTJmNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTIz
MjcsNiArMjMyNywxNCBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlTGlzdD4gY29uc3VtZVNjcm9s
bFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogCiAjZW5kaWYKIAorc3RhdGlj
IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZVNjcm9sbEJlaGF2aW9yKENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5p
ZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENTU1ZhbHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1Zh
bHVlU21vb3RoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlk
ZW50KHJhbmdlKTsKK30KKwogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJh
ZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQ
YXJzZXJNb2RlKQogewogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUx
ID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5n
ZU5vbk5lZ2F0aXZlKTsKQEAgLTM5MjcsNiArMzkzNSwxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENT
U1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHks
IENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJu
IGNvbnN1bWVTY3JvbGxTbmFwVHlwZShtX3JhbmdlKTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJv
cGVydHlTY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgaWYgKCFtX2NvbnRleHQuc2Nyb2xsQmVoYXZp
b3JFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBj
b25zdW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6
CiAgICAgICAgIHJldHVybiBjb25zdW1lQ2xpcChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAj
aWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDcwZDll
MWIwYWUuLmJlNWE4NTI2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTgzMiw3ICs4MzIs
NiBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KE9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwg
U2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcgogICAgIGJvb2wgaW5zaWRlRml4ZWQ7CiAgICAg
TGF5b3V0UmVjdCBhYnNvbHV0ZUJvdW5kcyA9IHJlbmRlcmVyKCktPmFic29sdXRlQW5jaG9yUmVj
dCgmaW5zaWRlRml4ZWQpOwogCi0gICAgLy8gRklYTUUod2Via2l0Lm9yZy9iLzE4ODA0Myk6IFN1
cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCiAgICAgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIG9wdGlvbnM7
CiAgICAgaWYgKGFyZykgewogICAgICAgICBhdXRvIHZhbHVlID0gYXJnLnZhbHVlKCk7CkBAIC04
NTEsNyArODUwLDggQEAgdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlldyhPcHRpb25hbDxWYXJp
YW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9ucz4+JiYgYXIKICAgICAgICAgU2VsZWN0aW9u
UmV2ZWFsTW9kZTo6UmV2ZWFsLAogICAgICAgICBpc0hvcml6b250YWwgPyBhbGlnblggOiBhbGln
blksCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFsaWduWSA6IGFsaWduWCwKLSAgICAgICAgU2hv
dWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8KKyAgICAgICAgU2hvdWxkQWxsb3dDcm9z
c09yaWdpblNjcm9sbGluZzo6Tm8sCisgICAgICAgIG9wdGlvbnMuYmVoYXZpb3IudmFsdWVPcihT
Y3JvbGxCZWhhdmlvcjo6QXV0bykKICAgICB9OwogICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RU
b1Zpc2libGUoYWJzb2x1dGVCb3VuZHMsIGluc2lkZUZpeGVkLCB2aXNpYmxlT3B0aW9ucyk7CiB9
CkBAIC05MTIsNyArOTEyLDcgQEAgdm9pZCBFbGVtZW50OjpzY3JvbGxCeShjb25zdCBTY3JvbGxU
b09wdGlvbnMmIG9wdGlvbnMpCiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsQnkoZG91YmxlIHgsIGRv
dWJsZSB5KQogewotICAgIHNjcm9sbEJ5KHsgeCwgeSB9KTsKKyAgICBzY3JvbGxCeShTY3JvbGxU
b09wdGlvbnMoeCwgeSkpOwogfQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbFRvKGNvbnN0IFNjcm9s
bFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCkBAIC05NDgsMTMg
Kzk0OCwxNyBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYg
b3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiAgICAgICAgIGFkanVzdEZvckFic29s
dXRlWm9vbShyZW5kZXJlci0+c2Nyb2xsTGVmdCgpLCAqcmVuZGVyZXIpLAogICAgICAgICBhZGp1
c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVyZXItPnNjcm9sbFRvcCgpLCAqcmVuZGVyZXIpCiAgICAg
KTsKLSAgICByZW5kZXJlci0+c2V0U2Nyb2xsTGVmdChjbGFtcFRvSW50ZWdlcihzY3JvbGxUb09w
dGlvbnMubGVmdC52YWx1ZSgpICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwg
U2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFtcGluZyk7Ci0gICAgcmVuZGVyZXItPnNldFNj
cm9sbFRvcChjbGFtcFRvSW50ZWdlcihzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkgKiByZW5k
ZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMs
IGNsYW1waW5nKTsKKyAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbigKKyAgICAgICAgY2xhbXBU
b0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgp
LmVmZmVjdGl2ZVpvb20oKSksCisgICAgICAgIGNsYW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9u
cy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSkKKyAgICAp
OworICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9vdGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25z
LmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6OkF1dG8pLCAqdGhpcyk7CisgICAgcmVu
ZGVyZXItPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBTY3JvbGxUeXBlOjpQcm9n
cmFtbWF0aWMsIGFuaW1hdGVkLCBjbGFtcGluZyk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xs
VG8oZG91YmxlIHgsIGRvdWJsZSB5KQogewotICAgIHNjcm9sbFRvKHsgeCwgeSB9KTsKKyAgICBz
Y3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSkpOwogfQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9s
bEJ5VW5pdHMoaW50IHVuaXRzLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTEy
ODgsMTMgKzEyOTIsMTkgQEAgdm9pZCBFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0
KQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkgPT0gdGhpcykgewotICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0g
ICAgICAgICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChzdGF0
aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5m
cmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmlldygpLT5zY3JvbGxZKCkpKTsKKyAgICAgICAg
aWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFtZVdpdGhOb25OdWxsVmlldygpKSB7CisgICAg
ICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVt
ZW50KCk/CisgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNTA1OQorICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9IGRvY3VtZW50KCku
ZG9jdW1lbnRFbGVtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpB
dXRvLCAqZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAgICAgICAgICBmcmFtZS0+
dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChzdGF0aWNfY2FzdDxpbnQ+KG5ld0xl
ZnQgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkp
LCBmcmFtZS0+dmlldygpLT5zY3JvbGxZKCkpLCBhbmltYXRlZCk7CisgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgp
KSB7Ci0gICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxMZWZ0KHN0YXRpY19jYXN0PGludD4obmV3
TGVmdCAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksIFNjcm9sbFR5cGU6OlBy
b2dyYW1tYXRpYyk7CisgICAgICAgIGludCBjbGFtcGVkTGVmdCA9IGNsYW1wVG9JbnRlZ2VyKG5l
d0xlZnQgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOworICAgICAgICBib29s
IGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqdGhp
cyk7CisgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxMZWZ0KGNsYW1wZWRMZWZ0LCBTY3JvbGxU
eXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkKTsKICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFi
bGVBcmVhID0gcmVuZGVyZXItPmxheWVyKCkpCiAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+
c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUodHJ1ZSk7CiAgICAgfQpAQCAtMTMwNSwx
MyArMTMxNSwxOSBAQCB2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wKQogICAg
IGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAg
ICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkgPT0gdGhpcykgewotICAgICAgICBp
ZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0gICAgICAg
ICAgICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChmcmFtZS0+dmll
dygpLT5zY3JvbGxYKCksIHN0YXRpY19jYXN0PGludD4obmV3VG9wICogZnJhbWUtPnBhZ2Vab29t
RmFjdG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSkpOworICAgICAgICBpZiAoYXV0
byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpIHsKKyAgICAgICAgICAg
IC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8K
KyAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA1MDU5CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gZG9jdW1lbnQoKS5kb2N1bWVu
dEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sICpk
b2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT52aWV3KCkt
PnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGZyYW1lLT52aWV3KCktPnNjcm9sbFgoKSwgc3Rh
dGljX2Nhc3Q8aW50PihuZXdUb3AgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5m
cmFtZVNjYWxlRmFjdG9yKCkpKSwgYW5pbWF0ZWQpOworICAgICAgICB9CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSByZW5kZXJCb3goKSkgewotICAg
ICAgICByZW5kZXJlci0+c2V0U2Nyb2xsVG9wKHN0YXRpY19jYXN0PGludD4obmV3VG9wICogcmVu
ZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGlj
KTsKKyAgICAgICAgaW50IGNsYW1wZWRUb3AgPSBjbGFtcFRvSW50ZWdlcihuZXdUb3AgKiByZW5k
ZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOworICAgICAgICBib29sIGFuaW1hdGVkID0g
dXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCAqdGhpcyk7CisgICAgICAg
IHJlbmRlcmVyLT5zZXRTY3JvbGxUb3AoY2xhbXBlZFRvcCwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1h
dGljLCBhbmltYXRlZCk7CiAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IHJlbmRl
cmVyLT5sYXllcigpKQogICAgICAgICAgICAgc2Nyb2xsYWJsZUFyZWEtPnNldFNjcm9sbFNob3Vs
ZENsZWFyTGF0Y2hlZFN0YXRlKHRydWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAppbmRleCBhNTNmM2VjMGVjLi4yMjI3N2Y2YjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCkBAIC0xNTkyLDcgKzE1OTIsNyBAQCBkb3VibGUgRE9NV2luZG93OjpkZXZpY2VQaXhlbFJh
dGlvKCkgY29uc3QKIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbEJ5KGRvdWJsZSB4LCBkb3VibGUg
eSkgY29uc3QKIHsKLSAgICBzY3JvbGxCeSh7IHgsIHkgfSk7CisgICAgc2Nyb2xsQnkoU2Nyb2xs
VG9PcHRpb25zKHgsIHkpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNj
cm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29uc3QKQEAgLTE2MTQsMTAgKzE2MTQsMTAgQEAgdm9p
ZCBET01XaW5kb3c6OnNjcm9sbEJ5KGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucykgY29u
c3QKIAogdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGRvdWJsZSB4LCBkb3VibGUgeSwgU2Nyb2xs
Q2xhbXBpbmcgY2xhbXBpbmcpIGNvbnN0CiB7Ci0gICAgc2Nyb2xsVG8oeyB4LCB5IH0sIGNsYW1w
aW5nKTsKKyAgICBzY3JvbGxUbyhTY3JvbGxUb09wdGlvbnMoeCwgeSksIGNsYW1waW5nKTsKIH0K
IAotdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9u
cywgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0Cit2b2lkIERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3Qg
U2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykgY29uc3QK
IHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1
cm47CkBAIC0xNjMwLDEyICsxNjMwLDIyIEBAIHZvaWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25z
dCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMsIFNjcm9sbENsYW1waW5nKSBjb25zdAogICAgICAg
ICB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKCkueCgpLCB2aWV3LT5jb250ZW50c1Njcm9s
bFBvc2l0aW9uKCkueSgpCiAgICAgKTsKIAotICAgIGlmICghc2Nyb2xsVG9PcHRpb25zLmxlZnQu
dmFsdWUoKSAmJiAhc2Nyb2xsVG9PcHRpb25zLnRvcC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRz
U2Nyb2xsUG9zaXRpb24oKSA9PSBJbnRQb2ludCgwLCAwKSkKKyAgICAvLyBUaGlzIGlzIGFuIG9w
dGltaXphdGlvbiBmb3IgdGhlIGNvbW1vbiBjYXNlIG9mIHNjcm9sbGluZyB0byAoMCwgMCkgd2hl
biB0aGUgc2Nyb2xsZXIgaXMgYWxyZWFkeSBhdCB0aGUgb3JpZ2luLgorICAgIC8vIElmIGFuIGFu
aW1hdGVkIHNjcm9sbCBpcyBpbiBwcm9ncmVzcywgdGhpcyBvcHRpbWl6YXRpb24gaXMgc2tpcHBl
ZCB0byBlbnN1cmUgdGhhdCB0aGUgYW5pbWF0ZWQgc2Nyb2xsIGlzIHJlYWxseSBzdG9wcGVkLgor
ICAgIGlmICh2aWV3LT5jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhh
dmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYgIXNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVl
KCkgJiYgIXNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAmJiB2aWV3LT5jb250ZW50c1Njcm9s
bFBvc2l0aW9uKCkgPT0gSW50UG9pbnQoMCwgMCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRv
Y3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAg
SW50UG9pbnQgbGF5b3V0UG9zKHZpZXctPm1hcEZyb21DU1NUb0xheW91dFVuaXRzKHNjcm9sbFRv
T3B0aW9ucy5sZWZ0LnZhbHVlKCkpLCB2aWV3LT5tYXBGcm9tQ1NTVG9MYXlvdXRVbml0cyhzY3Jv
bGxUb09wdGlvbnMudG9wLnZhbHVlKCkpKTsKKworICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNl
IGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQorICAgIGlmIChkb2N1bWVudCgpLT5k
b2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJl
aGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6OkF1dG8pLCAqZG9jdW1lbnQoKS0+ZG9jdW1l
bnRFbGVtZW50KCkpKSB7CisgICAgICAgIHZpZXctPnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihsYXlvdXRQb3MsIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgY2xhbXBpbmcpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgdmlldy0+c2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihs
YXlvdXRQb3MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMDQwMTJmOWVm
Zi4uNzMxZTMyMjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjI3OSw3ICsy
Mjc5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9sbEVsZW1lbnRUb1JlY3QoY29uc3QgRWxlbWVu
dCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBzZXRTY3JvbGxQb3NpdGlvbihJ
bnRQb2ludChib3VuZHMueCgpIC0gY2VudGVyaW5nT2Zmc2V0WCAtIHJlY3QueCgpLCBib3VuZHMu
eSgpIC0gY2VudGVyaW5nT2Zmc2V0WSAtIHJlY3QueSgpKSk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3
OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24p
Cit2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24m
IHNjcm9sbFBvc2l0aW9uLCBib29sIGFuaW1hdGVkKQogewogICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNj
cm9sbFBvc2l0aW9uIDw8ICIgLCBjbGVhcmluZyBhbmNob3IiKTsKIApAQCAtMjI5Miw3ICsyMjky
LDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3Np
dGlvbiYgc2Nyb2xsUG9zaXRpb24pCiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwog
ICAgIGlmIChwYWdlICYmIHBhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiAgICAgICAg
IHNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKHBhZ2UtPndoZWVsRXZl
bnRUZXN0TW9uaXRvcigpKTsKLSAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3Jv
bGxQb3NpdGlvbik7CisgICAgaWYgKGFuaW1hdGVkKQorICAgICAgICBzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKSwgY3Vy
cmVudFNjcm9sbFR5cGUoKSk7CisgICAgZWxzZQorICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3Jv
bGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CiAKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShv
bGRTY3JvbGxUeXBlKTsKIH0KQEAgLTM2NjAsNiArMzY2MywyNiBAQCB2b2lkIEZyYW1lVmlldzo6
c2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mIG5ld1Bvc2l0aW9uKQogICAgIGRpZENoYW5n
ZVNjcm9sbE9mZnNldCgpOwogfQogCit2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRo
QW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGxUeXBlIHNjcm9sbFR5
cGUsIFNjcm9sbENsYW1waW5nKQoreworICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3Vy
cmVudFNjcm9sbFR5cGUoKTsKKyAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisg
ICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290
aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZy
b21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlv
dXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAgaWYg
KGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJ
bk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmlt
YXRpb25zKCk7CisgICAgaWYgKG9mZnNldCAhPSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICAg
ICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihvZmZzZXQpOwor
ICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7Cit9CisKIGZsb2F0
IEZyYW1lVmlldzo6YWRqdXN0U2Nyb2xsU3RlcEZvckZpeGVkQ29udGVudChmbG9hdCBzdGVwLCBT
Y3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCiB7CiAgICAgaWYgKGdyYW51bGFyaXR5ICE9IFNjcm9sbEJ5UGFnZSB8fCBvcmllbnRh
dGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXgg
ZTM2Zjk5NjgwNC4uYjM3ZjA2MGUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0yMjMs
NyArMjIzLDcgQEAgcHVibGljOgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0KGNvbnN0IEludFJl
Y3QmKSBmaW5hbDsKICNlbmRpZgotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgYm9vbCBhbmltYXRl
ZCA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIHJlc3RvcmVTY3JvbGxiYXIoKTsKICAgICB2b2lk
IHNjaGVkdWxlU2Nyb2xsVG9Gb2N1c2VkRWxlbWVudChTZWxlY3Rpb25SZXZlYWxNb2RlKTsKICAg
ICB2b2lkIHNjcm9sbFRvRm9jdXNlZEVsZW1lbnRJbW1lZGlhdGVseUlmTmVlZGVkKCk7CkBAIC02
NTksNiArNjU5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZW5kZXJMYXllckRpZFNjcm9sbChj
b25zdCBSZW5kZXJMYXllciYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09m
ZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9s
bFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCk7CisKIHByb3RlY3RlZDoKICAgICBib29sIHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29u
c3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29u
c3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93
UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
Y3JvbGxCZWhhdmlvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u
NGVkMjljYjQyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xs
QmVoYXZpb3IuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9s
bEJlaGF2aW9yLmgiCisKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyRWxl
bWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxC
ZWhhdmlvciBiZWhhdmlvciwgRWxlbWVudCYgYXNzb2NpYXRlZEVsZW1lbnQpCit7CisgICAgaWYg
KCFhc3NvY2lhdGVkRWxlbWVudC5kb2N1bWVudCgpLnNldHRpbmdzKCkuQ1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZCgpIHx8ICFhc3NvY2lhdGVkRWxlbWVudC5yZW5kZXJlcigpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
b20tdmlldy8jc2Nyb2xsaW5nCisgICAgc3dpdGNoIChiZWhhdmlvcikgeworICAgIGNhc2UgU2Ny
b2xsQmVoYXZpb3I6OkF1dG86CisgICAgICAgIHJldHVybiBhc3NvY2lhdGVkRWxlbWVudC5yZW5k
ZXJlcigpLT5zdHlsZSgpLnVzZVNtb290aFNjcm9sbGluZygpOworICAgIGNhc2UgU2Nyb2xsQmVo
YXZpb3I6Okluc3RhbnQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIFNjcm9sbEJl
aGF2aW9yOjpTbW9vdGg6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwLi4xYmFlZjg4MWU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxlbWVudDsKKworZW51bSBjbGFzcyBTY3JvbGxC
ZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIEF1dG8gPSAwLAorICAgIEluc3RhbnQsCisgICAgU21v
b3RoCit9OworCitib29sIHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvciwgRWxlbWVu
dCYgYXNzb2NpYXRlZEVsZW1lbnQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLjg5NzFhZTkzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbEJlaGF2aW9yLmlkbApAQCAtMCwwICsxLDI2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2VudW0gU2Nyb2xsQmVoYXZpb3IgeyAiYXV0
byIsICJpbnN0YW50IiwgInNtb290aCIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbElu
dG9WaWV3T3B0aW9ucy5oCmluZGV4IDkzOWNkNzM0MjUuLmYyNzVmMmZiZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaApAQCAtMjAsMTIgKzIwLDExIEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNjcm9sbExvZ2ljYWxQb3NpdGlvbi5oIgorI2lu
Y2x1ZGUgIlNjcm9sbE9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBF
bGVtZW50OwotCi1zdHJ1Y3QgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIHsKK3N0cnVjdCBTY3JvbGxJ
bnRvVmlld09wdGlvbnMgOiBTY3JvbGxPcHRpb25zIHsKICAgICBPcHRpb25hbDxTY3JvbGxMb2dp
Y2FsUG9zaXRpb24+IGJsb2NrUG9zaXRpb24geyBTY3JvbGxMb2dpY2FsUG9zaXRpb246OlN0YXJ0
IH07CiAgICAgT3B0aW9uYWw8U2Nyb2xsTG9naWNhbFBvc2l0aW9uPiBpbmxpbmVQb3NpdGlvbiB7
IFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6TmVhcmVzdCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2Nyb2xsSW50b1ZpZXdPcHRpb25zLmlkbAppbmRleCBjZjlkMWZkNzY3Li4xYjI0YzY4
NmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEludG9WaWV3T3B0aW9u
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaWRs
CkBAIC0xNyw4ICsxNyw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwog
Ci0vLyBGSVhNRSh3ZWJraXQub3JnL2IvMTg4MDQzKTogU3VwcG9ydCBTY3JvbGxCZWhhdmlvci4K
LWRpY3Rpb25hcnkgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIHsKK2RpY3Rpb25hcnkgU2Nyb2xsSW50
b1ZpZXdPcHRpb25zIDogU2Nyb2xsT3B0aW9ucyB7CiAgICAgW0ltcGxlbWVudGVkQXM9YmxvY2tQ
b3NpdGlvbl0gU2Nyb2xsTG9naWNhbFBvc2l0aW9uIGJsb2NrID0gInN0YXJ0IjsKICAgICBbSW1w
bGVtZW50ZWRBcz1pbmxpbmVQb3NpdGlvbl0gU2Nyb2xsTG9naWNhbFBvc2l0aW9uIGlubGluZSA9
ICJuZWFyZXN0IjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9w
dGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmUxODY3YzYwMTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaApAQCAtMCwwICsxLDM2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgU2Nyb2xsT3B0aW9ucyB7CisgICAgT3B0aW9uYWw8U2Nyb2xsQmVoYXZpb3I+IGJl
aGF2aW9yIHsgU2Nyb2xsQmVoYXZpb3I6OkF1dG8gfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsT3B0aW9ucy5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMyOWQ2ZmYxMDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1Njcm9sbE9wdGlvbnMuaWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZGljdGlvbmFyeSBTY3Jv
bGxPcHRpb25zIHsKKyAgICBTY3JvbGxCZWhhdmlvciBiZWhhdmlvciA9ICJhdXRvIjsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaAppbmRleCBjZTFjYmExYzdjLi5mNTc3NGQ0
NGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9PcHRpb25zLmgKQEAgLTI4LDE0ICsyOCwy
MSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNjcm9sbE9wdGlvbnMuaCIKICNpbmNs
dWRlIDxjbWF0aD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1zdHJ1Y3QgU2Nyb2xsVG9PcHRpb25zIHsKK3N0cnVjdCBTY3JvbGxUb09wdGlvbnMg
OiBTY3JvbGxPcHRpb25zIHsKICAgICBPcHRpb25hbDxkb3VibGU+IGxlZnQ7CiAgICAgT3B0aW9u
YWw8ZG91YmxlPiB0b3A7CisKKyAgICBTY3JvbGxUb09wdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAg
U2Nyb2xsVG9PcHRpb25zKGRvdWJsZSB4LCBkb3VibGUgeSkKKyAgICAgICAgOiBsZWZ0KHgpCisg
ICAgICAgICwgdG9wKHkpCisgICAgeyB9CiB9OwogCiBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5v
bkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlvbmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZSBm
YWxsYmFja1ZhbHVlKQpAQCAtNDcsNyArNTQsNyBAQCBpbmxpbmUgZG91YmxlIG5vcm1hbGl6ZU5v
bkZpbml0ZVZhbHVlT3JGYWxsQmFja1RvKE9wdGlvbmFsPGRvdWJsZT4gdmFsdWUsIGRvdWJsZQog
Ly8gRklYTUUoaHR0cHM6Ly93ZWJraXQub3JnL2IvODgzMzkpOiBDb25zaWRlciB1c2luZyBGbG9h
dFBvaW50IG9yIERvdWJsZVBvaW50IGZvciBmYWxsYmFjayBhbmQgcmV0dXJuIHZhbHVlcy4KIGlu
bGluZSBTY3JvbGxUb09wdGlvbnMgbm9ybWFsaXplTm9uRmluaXRlQ29vcmRpbmF0ZXNPckZhbGxC
YWNrVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiB2YWx1ZSwgZG91YmxlIHgsIGRvdWJsZSB5KQog
ewotICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRpb25zOworICAgIFNjcm9sbFRvT3B0aW9ucyBvcHRp
b25zID0gdmFsdWU7CiAgICAgb3B0aW9ucy5sZWZ0ID0gbm9ybWFsaXplTm9uRmluaXRlVmFsdWVP
ckZhbGxCYWNrVG8odmFsdWUubGVmdCwgeCk7CiAgICAgb3B0aW9ucy50b3AgPSBub3JtYWxpemVO
b25GaW5pdGVWYWx1ZU9yRmFsbEJhY2tUbyh2YWx1ZS50b3AsIHkpOwogICAgIHJldHVybiBvcHRp
b25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRs
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxUb09wdGlvbnMuaWRsCmluZGV4IDUxMGJjMDcx
YTYuLjJiOWI1NTQxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsVG9P
cHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbFRvT3B0aW9ucy5pZGwK
QEAgLTI2LDggKzI2LDcgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8gRklYTUUod2Via2l0Lm9y
Zy9iLzE4ODA0Myk6IFN1cHBvcnQgU2Nyb2xsQmVoYXZpb3IuCi1kaWN0aW9uYXJ5IFNjcm9sbFRv
T3B0aW9ucyB7CitkaWN0aW9uYXJ5IFNjcm9sbFRvT3B0aW9ucyA6IFNjcm9sbE9wdGlvbnMgewog
ICAgIHVucmVzdHJpY3RlZCBkb3VibGUgbGVmdDsKICAgICB1bnJlc3RyaWN0ZWQgZG91YmxlIHRv
cDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggYjMyOWYxMjQ3OS4uMWQ3OWY0
NTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNjIyLDYgKzYyMiw5IEBAIHN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6CiBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkOgogICBpbml0aWFsOiBmYWxzZQogCitDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
OgorICBpbml0aWFsOiBmYWxzZQorCiBpbnB1dEV2ZW50c0VuYWJsZWQ6CiAgIGluaXRpYWw6IHRy
dWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA0MjllZWU5YTk2Li4wMmQ1ODk3NTdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4LDcgKzI0OCwxNiBAQCBib29sIEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxl
QXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUgPSBmcmFtZVZpZXctPmZy
YW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5v
dEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29sIGluUHJvZ3JhbW1hdGljU2Nyb2xsID0gc2Ny
b2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0
aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZSkK
KworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSBpblByb2dyYW1tYXRpY1Njcm9sbCB8
fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisKKyAgICBib29sIGFuaW1hdGVkID0gZmFsc2U7CisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhbmltYXRlZCA9IHNjcm9sbGFibGVBcmVhLmN1cnJl
bnRTY3JvbGxCZWhhdmlvclR5cGUoKSA9PSBTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aDsKKyAg
ICAvLyBUaGUgc2Nyb2xsIHBvc2l0aW9uIG9mIGFuaW1hdGVkIHNjcm9sbGluZyB3aWxsIGJlIHNl
dCBieSB0aGUgVUkgcHJvY2Vzcy4gU28gc2hvdWxkbid0IHNldCBpdCBub3cuCisgICAgdXBkYXRl
U2Nyb2xsUG9zaXRpb24gPSAhYW5pbWF0ZWQgJiYgdXBkYXRlU2Nyb2xsUG9zaXRpb247CisjZW5k
aWYKKyAgICBpZiAodXBkYXRlU2Nyb2xsUG9zaXRpb24pCiAgICAgICAgIHVwZGF0ZVNjcm9sbFBv
c2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3JvbGxpbmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCB7
IH0sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
bjo6U2V0KTsKIAogICAgIC8vIElmIHRoaXMgZnJhbWUgdmlldydzIGRvY3VtZW50IGlzIGJlaW5n
IHB1dCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRl
IG91cgpAQCAtMjYwLDcgKzI2OSwxMiBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogICAgIGlm
ICghc3RhdGVOb2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzdGF0ZU5vZGUtPnNl
dFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Nj
cm9sbCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhdXRvIHN0YXR1cyA9IGFuaW1h
dGVkID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5pbWF0aW9uIDogU2Nyb2xsQmVo
YXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uOworICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9s
bEJlaGF2aW9yU3RhdHVzKHN0YXR1cyk7CisjZW5kaWYKKworICAgIHN0YXRlTm9kZS0+c2V0UmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGluUHJvZ3JhbW1hdGljU2Nyb2xs
LCBhbmltYXRlZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI5MSw2ICszMDUsMzIgQEAg
dm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0
aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3IKICAgICBtX3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRp
bWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3Zv
aWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9s
bGluZ05vZGUobm9kZUlEKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAg
ICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAgICAgICAgICAgZnJhbWVW
aWV3LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5B
bmltYXRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Ny
b2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3Jv
bGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQobm9kZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRT
Y3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24p
OworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVw
ZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVw
ZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0
ZS5ub2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVk
dWxlZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwg
bV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRlTGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmgKaW5kZXggOWJlNjlhYWZiMS4uM2RlMDFjYzI4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRy
ZWVQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVs
ZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNv
bnN0IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3Bv
cnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNz
KTsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhv
cml6b250YWxJbmRleCwgdW5zaWduZWQgdmVydGljYWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlLmNwcAppbmRleCA3MTdiZmMyYTU1Li40ZTQwMTRlOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZS5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRp
ZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVB
cmVhUGFyYW1ldGVycygpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNN
b25pdG9yaW5nV2hlZWxFdmVudHMoc3RhdGVOb2RlLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkp
CiB7CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxDb250YWluZXJMYXllcikpCkBA
IC0yMTksMTAgKzIyMiwxNSBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0IFNjcm9sbGFibGVBcgogICAgIHNldFByb3Bl
cnR5Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFtcyk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBv
aW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsKQordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBi
b29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1h
dGlvbikKIHsKICAgICBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb247CiAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24g
PSByZXF1ZXN0ZWRXaXRoQW5pbWF0aW9uOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVxdWVz
dGVkV2l0aEFuaW1hdGlvbik7CisjZW5kaWYKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24pOwogfQogCkBAIC0zMTQsNiArMzIyLDExIEBAIHZvaWQgU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Ny
b2xsaW5nU3RhdGVUCiAgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBz
Y3JvbGwgcG9zaXRpb24gcmVwcmVzZW50cyBwcm9ncmFtbWF0aWMgc2Nyb2xsIiwgbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOwogCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhB
bmltYXRpb24pCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3Np
dGlvbiB3aXRoIGFuaW1hdGlvbiIsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0
aW9uKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3Qu
aXNFbXB0eSgpKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInBhcmVudCByZWxhdGl2ZSBzY3Jv
bGxhYmxlIHJlY3QiLCBtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZS5oCmluZGV4IDQ5NjdhNmNlODEuLjZjNjkyYzFkYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZS5oCkBAIC0xMTEsNyArMTExLDEwIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEZsb2F0
UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0
ZWRTY3JvbGxQb3NpdGlvbjsgfQogICAgIGJvb2wgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGw7IH0KLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBi
b29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgYm9vbCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorI2Vu
ZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihj
b25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29s
IHJlcXVlc3RlZFdpdGhBbmltYXRpb24pOwogCiAgICAgYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2
ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHM7IH0KICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldElzTW9uaXRvcmluZ1doZWVsRXZlbnRzKGJvb2wpOwpAQCAt
MTcxLDYgKzE3NCw5IEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1f
c2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogCiAgICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCB7IGZhbHNlIH07CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5p
bWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2
ZW50cyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmgKaW5kZXggMTUxYWMyOWY4YS4uN2FkZGZlZjRhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtODIsOCArODIsMTMg
QEAgcHVibGljOgogICAgIC8vIFVwZGF0ZXMgRnJhbWVWaWV3L1JlbmRlckxheWVyIHNjcm9sbGlu
ZyBzdGF0ZSBhbmQgR3JhcGhpY3NMYXllcnMuCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1Ry
ZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJiwgU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpID0g
MDsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLy8gQ2FsbGVkIGZvciBzY3JvbGwg
YW5pbWF0aW9uIHN0YXR1cyB1cGRhdGVzLgorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVl
Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxp
bmdOb2RlSUQsIGJvb2wgLyppc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MqLykgeyB9CisjZW5k
aWYKKwogICAgIC8vIENhbGxlZCBmb3IgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVz
LgotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgLypzY3JvbGxQb3NpdGlvbiovLCBib29sIC8q
cmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCovKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0
UG9pbnQmIC8qc2Nyb2xsUG9zaXRpb24qLywgYm9vbCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwqLywgYm9vbCAvKndpdGhBbmltYXRpb24qLyA9IGZhbHNlKSB7IH0KIAogICAgIC8vIERl
bGVnYXRlZCBzY3JvbGxpbmcvem9vbWluZyBoYXMgY2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFu
Z2UsIHNvIHVwZGF0ZSB2aWV3cG9ydC1jb25zdHJhaW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIG1haW5GcmFtZVZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhj
b25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBsYXlvdXRWaWV3cG9ydCwgZG91YmxlIHNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApp
bmRleCA3M2RjYTI4ZWYxLi4xN2M3ZjJhOGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBA
IC0xMDcsOCArMTA3LDEyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1p
dFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOCiB2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xs
aW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCiB7CiAgICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlJiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CisgICAgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2U7
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB3aXRoQW5pbWF0aW9uID0gc2Nyb2xsaW5n
U3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpOworI2VuZGlm
CiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpCi0gICAgICAgIHNj
cm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05v
ZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Ny
b2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCgpKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2Rl
UmVxdWVzdHNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCksIHdpdGhBbmltYXRpb24pOwog
CiAgICAgbV9pc0ZpcnN0Q29tbWl0ID0gZmFsc2U7CiB9CkBAIC0xNTcsMjEgKzE2MSw0MSBAQCB2
b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxCeShjb25zdCBGbG9hdFNpemUm
IGRlbHRhLCBTY3JvbGxQb3NpdGlvbgogICAgIHNjcm9sbFRvKGN1cnJlbnRTY3JvbGxQb3NpdGlv
bigpICsgZGVsdGEsIFNjcm9sbFR5cGU6OlVzZXIsIGNsYW1wKTsKIH0KIAotdm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24s
IFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcCBjbGFtcCkKK3ZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBv
c2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXAs
IGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbikKIHsKLSAgICBpZiAocG9zaXRpb24gPT0gbV9j
dXJyZW50U2Nyb2xsUG9zaXRpb24pCisgICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9s
bFBvc2l0aW9uKSB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgLy8gU2VuZCB0
aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgaWYgKHJlcXVl
c3RBbmltYXRlZFNjcm9sbCgpICYmIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24pCisgICAgICAgICAg
ICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMsIFNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpOworICAgICAgICBzY3JvbGxpbmdUcmVlKCku
c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uoc2Ny
b2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xs
KGZhbHNlKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTShuZWVkU3luY1Njcm9sbFBvc2l0
aW9uKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47CisgICAgfQogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAvLyBJZiBkdXJpbmcgYSBzY3JvbGwgYW5pbWF0aW9uLCBuZWVkIHRvIHN0
b3AgaXQgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9uZS4KKyAgICBpZiAoc2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzcygpKQorICAgICAgICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9u
KHRydWUpOworI2VuZGlmCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFt
bWF0aWNTY3JvbGwoc2Nyb2xsVHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOwotICAg
IAorCiAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9u
KHBvc2l0aW9uLCBjbGFtcCk7Ci0gICAgCisKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5n
LCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9k
ZUlEKCkgPDwgIiBzY3JvbGxUbyAiIDw8IHBvc2l0aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFzdCBj
b21taXR0ZWQgcG9zaXRpb24gIiA8PCAobV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gLSBt
X2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgPDwgIikiKTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0Rm9y
Q3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CiAgICAgY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdl
ZCgpOwogCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3Jv
bGwoZmFsc2UpOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzZXROZWVkc1N0b3BD
dXJyZW50U2Nyb2xsQW5pbWF0aW9uKGZhbHNlKTsKKyAgICBzZXRSZXF1ZXN0QW5pbWF0ZWRTY3Jv
bGwoZmFsc2UpOworI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKQpAQCAtMTc5LDYgKzIwMywxMCBAQCB2b2lk
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2Vk
KCkKICAgICByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCk7CiAgICAgcmVwb3NpdGlvblJlbGF0
ZWRMYXllcnMoKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFyZXF1ZXN0
QW5pbWF0ZWRTY3JvbGwoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCiAgICAgc2Nyb2xsaW5n
VHJlZSgpLm5vdGlmeVJlbGF0ZWROb2Rlc0FmdGVyU2Nyb2xsUG9zaXRpb25DaGFuZ2UoKnRoaXMp
OwogICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcyk7
CiB9CkBAIC0yNjYsNiArMjk0LDM3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAgdHMu
ZHVtcFByb3BlcnR5KCJzY3JvbGxhYmxlIGFyZWEgcGFyYW1ldGVycyIsIG1fc2Nyb2xsYWJsZUFy
ZWFQYXJhbWV0ZXJzKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCBhbmlt
YXRlZCkKK3sKKyAgICBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCA9IGFuaW1hdGVkOworfQorCiti
b29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSBj
b25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbDsKK30KKwordm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhi
b29sIGluUHJvZ3Jlc3MpCit7CisgICAgbV9zY3JvbGxBbmltYXRpb25JblByb2dyZXNzID0gaW5Q
cm9ncmVzczsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzczsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVl
ZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29sIHN0b3ApCit7CisgICAgbV9uZWVkc1N0
b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uID0gc3RvcDsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbjsKK30KKyNlbmRp
ZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDRjYmY0ZDFhZjAuLmY5ZjMxMGRiOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRT
aXplIHNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50
U2Nyb2xsUG9zaXRpb24gLSBtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAg
Ly8gVGhlc2UgYXJlIGltcGVyYXRpdmU7IHRoZXkgYWRqdXN0IHRoZSBzY3JvbGxpbmcgbGF5ZXJz
LgotICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3Jv
bGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6
VG9Db250ZW50RWRnZXMpOworICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNj
cm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xs
UG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMsIGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlv
biA9IGZhbHNlKTsKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYsIFNjcm9sbFBv
c2l0aW9uQ2xhbXAgPSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcyk7CiAKICAg
ICB2b2lkIHdhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYg
cG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UmVjdD4gb3ZlcnJpZGVMYXlvdXRWaWV3cG9ydCA9IHsg
fSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb246OlN5bmMpOwpAQCAtOTEsNiArOTEsMTUgQEAgcHVibGljOgogICAgIGNvbnN0IExheWVy
UmVwcmVzZW50YXRpb24mIHNjcm9sbENvbnRhaW5lckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9z
Y3JvbGxDb250YWluZXJMYXllcjsgfQogICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNj
cm9sbGVkQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsZWRDb250ZW50c0xh
eWVyOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2V0UmVxdWVzdEFu
aW1hdGVkU2Nyb2xsKGJvb2wpOworICAgIGJvb2wgcmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29u
c3Q7CisgICAgdm9pZCBzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKGJvb2wpOworICAgIGJv
b2wgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0OworICAgIHZvaWQgc2V0TmVlZHNT
dG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29sKTsKKyAgICBib29sIG5lZWRzU3RvcEN1cnJl
bnRTY3JvbGxBbmltYXRpb24oKSBjb25zdDsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBl
LCBTY3JvbGxpbmdOb2RlSUQpOwogCkBAIC0xNDgsNiArMTU3LDEyIEBAIHByaXZhdGU6CiAgICAg
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogICAg
IGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBib29sIG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsIHsgZmFsc2UgfTsKKyAgICBib29s
IG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX25lZWRz
U3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24geyBmYWxzZSB9OworI2VuZGlmCisKICAgICBMYXll
clJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXI7CiAgICAgTGF5ZXJSZXByZXNl
bnRhdGlvbiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbEFuaW1hdGlvbi5oCmluZGV4IGI3YzFkMjRlYjQuLjUyM2E3N2YzMzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCkBAIC0zMiwxMiArMzIsMTQg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgU2Nyb2xs
YWJsZUFyZWE7CitlbnVtIGNsYXNzIFNjcm9sbENsYW1waW5nIDogdWludDhfdDsKIAogY2xhc3Mg
U2Nyb2xsQW5pbWF0aW9uIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5TY3JvbGxBbmltYXRpb24oKSB7IH07CiAgICAgdmlydHVhbCBib29sIHNj
cm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IC8qIHN0
ZXAgKi8sIGZsb2F0IC8qIG11bHRpcGxpZXIgKi8pIHsgcmV0dXJuIHRydWU7IH07CisgICAgdmly
dHVhbCB2b2lkIHNjcm9sbChjb25zdCBGbG9hdFBvaW50JikgeyB9OwogICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpIHsg
fTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
KSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21v
b3RoLmNwcAppbmRleCBkMDY0ZTY5Mzc5Li4yY2E1NzhhMzBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKQEAgLTI4LDggKzI4LDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRpb25TbW9vdGgu
aCIKIAotI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQotCiAjaW5jbHVkZSAiRmxvYXRQb2lu
dC5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAKQEAgLTM4LDYgKzM2LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0IGRvdWJsZSBmcmFtZVJhdGUgPSA2MDsKIHN0
YXRpYyBjb25zdCBTZWNvbmRzIHRpY2tUaW1lID0gMV9zIC8gZnJhbWVSYXRlOwogc3RhdGljIGNv
bnN0IFNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwgeyAxX21zIH07CitzdGF0aWMgY29uc3Qg
ZG91YmxlIHNtb290aEZhY3RvckZvclByb2dyYW1tYXRpY1Njcm9sbCA9IDU7CiAKIFNjcm9sbEFu
aW1hdGlvblNtb290aDo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoKFNjcm9sbGFibGVBcmVhJiBzY3Jv
bGxhYmxlQXJlYSwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFdURjo6RnVuY3Rpb248dm9p
ZCAoRmxvYXRQb2ludCYmKT4mJiBub3RpZnlQb3NpdGlvbkNoYW5nZWRGdW5jdGlvbikKICAgICA6
IFNjcm9sbEFuaW1hdGlvbihzY3JvbGxhYmxlQXJlYSkKQEAgLTY3LDkgKzY2LDIyIEBAIGJvb2wg
U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50
YXRpb24sIFNjcm9sbEdyYW51CiAgICAgcmV0dXJuIG5lZWRUb1Njcm9sbDsKIH0KIAordm9pZCBT
Y3JvbGxBbmltYXRpb25TbW9vdGg6OnNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikK
K3sKKyAgICBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSA9IFNjcm9sbEJ5UGFnZTsKKyAg
ICBib29sIG5lZWRUb1Njcm9sbCA9IHVwZGF0ZVBlckF4aXNEYXRhKG1faG9yaXpvbnRhbERhdGEs
IGdyYW51bGFyaXR5LCBwb3NpdGlvbi54KCkgLSBtX2hvcml6b250YWxEYXRhLmN1cnJlbnRQb3Np
dGlvbiwgbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKS54KCksIG1fc2Ny
b2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueCgpLCBzbW9vdGhGYWN0b3JGb3JQ
cm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG5lZWRUb1Njcm9sbCB8PQorICAgICAgICB1cGRhdGVQ
ZXJBeGlzRGF0YShtX3ZlcnRpY2FsRGF0YSwgZ3JhbnVsYXJpdHksIHBvc2l0aW9uLnkoKSAtIG1f
dmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Ny
b2xsUG9zaXRpb24oKS55KCksIG1fc2Nyb2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9u
KCkueSgpLCBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIGlmIChuZWVk
VG9TY3JvbGwgJiYgIWFuaW1hdGlvblRpbWVyQWN0aXZlKCkpIHsKKyAgICAgICAgbV9zdGFydFRp
bWUgPSBtX2hvcml6b250YWxEYXRhLnN0YXJ0VGltZTsKKyAgICAgICAgYW5pbWF0aW9uVGltZXJG
aXJlZCgpOworICAgIH0KK307CisKIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKCkK
IHsKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3AoKTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLnNl
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlv
bik7CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVWaXNpYmxlTGVuZ3Ro
cygpCkBAIC0yNDcsNyArMjU5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldEFuaW1hdGlvblBh
cmFtZXRlcnNGb3JHcmFudWxhcml0eShTY3JvbGxHcmFudWxhcml0eSBncmFudWwKICAgICB9CiB9
CiAKLWJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlz
RGF0YSYgZGF0YSwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBm
bG9hdCBtaW5TY3JvbGxQb3NpdGlvbiwgZmxvYXQgbWF4U2Nyb2xsUG9zaXRpb24pCitib29sIFNj
cm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlUGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmIGRhdGEs
IFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Ny
b2xsUG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uLCBkb3VibGUgc21vb3RoRmFjdG9y
KQogewogICAgIGlmICghZGF0YS5zdGFydFRpbWUgfHwgIWRlbHRhIHx8IChkZWx0YSA8IDApICE9
IChkYXRhLmRlc2lyZWRQb3NpdGlvbiAtIGRhdGEuY3VycmVudFBvc2l0aW9uIDwgMCkpIHsKICAg
ICAgICAgZGF0YS5kZXNpcmVkUG9zaXRpb24gPSBkYXRhLmN1cnJlbnRQb3NpdGlvbjsKQEAgLTI2
NCw2ICsyNzYsMTIgQEAgYm9vbCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnVwZGF0ZVBlckF4aXNE
YXRhKFBlckF4aXNEYXRhJiBkYXRhLCBTY3JvbGxHcmFudWxhcmkKICAgICBDdXJ2ZSBjb2FzdFRp
bWVDdXJ2ZTsKICAgICBnZXRBbmltYXRpb25QYXJhbWV0ZXJzRm9yR3JhbnVsYXJpdHkoZ3JhbnVs
YXJpdHksIGFuaW1hdGlvblRpbWUsIHJlcGVhdE1pbmltdW1TdXN0YWluVGltZSwgYXR0YWNrVGlt
ZSwgcmVsZWFzZVRpbWUsIGNvYXN0VGltZUN1cnZlLCBtYXhpbXVtQ29hc3RUaW1lKTsKIAorICAg
IGFuaW1hdGlvblRpbWUgKj0gc21vb3RoRmFjdG9yOworICAgIHJlcGVhdE1pbmltdW1TdXN0YWlu
VGltZSAqPSBzbW9vdGhGYWN0b3I7CisgICAgYXR0YWNrVGltZSAqPSBzbW9vdGhGYWN0b3I7Cisg
ICAgcmVsZWFzZVRpbWUgKj0gc21vb3RoRmFjdG9yOworICAgIG1heGltdW1Db2FzdFRpbWUgKj0g
c21vb3RoRmFjdG9yOworCiAgICAgZGF0YS5kZXNpcmVkUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsK
ICAgICBpZiAoIWRhdGEuc3RhcnRUaW1lKQogICAgICAgICBkYXRhLmF0dGFja1RpbWUgPSBhdHRh
Y2tUaW1lOwpAQCAtMzkyLDYgKzQxMCw4IEBAIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjph
bmltYXRpb25UaW1lckZpcmVkKCkKIAogICAgIGlmIChjb250aW51ZUFuaW1hdGlvbikKICAgICAg
ICAgc3RhcnROZXh0VGltZXIoc3RkOjptYXgobWluaW11bVRpbWVySW50ZXJ2YWwsIGRlbHRhVG9O
ZXh0RnJhbWUpKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEuc2V0U2Nyb2xs
QmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIAog
ICAgIG1fbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVuY3Rpb24oRmxvYXRQb2ludChtX2hvcml6b250
YWxEYXRhLmN1cnJlbnRQb3NpdGlvbiwgbV92ZXJ0aWNhbERhdGEuY3VycmVudFBvc2l0aW9uKSk7
CiB9CkBAIC00MDcsNSArNDI3LDMgQEAgYm9vbCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OmFuaW1h
dGlvblRpbWVyQWN0aXZlKCkgY29uc3QKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCmluZGV4IDAyY2M0ZWUyYmQuLjgxNzNmYTdl
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNt
b290aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290
aC5oCkBAIC0yNywxNCArMjcsMTMgQEAKIAogI2luY2x1ZGUgIlNjcm9sbEFuaW1hdGlvbi5oIgog
Ci0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0KICNpbmNsdWRlICJUaW1lci5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0UG9pbnQ7CiBjbGFzcyBTY3JvbGxhYmxl
QXJlYTsKK2VudW0gY2xhc3MgU2Nyb2xsQ2xhbXBpbmcgOiB1aW50OF90OwogCiBjbGFzcyBTY3Jv
bGxBbmltYXRpb25TbW9vdGggZmluYWw6IHB1YmxpYyBTY3JvbGxBbmltYXRpb24gewogcHVibGlj
OgpAQCAtNTEsNiArNTAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgYm9vbCBzY3JvbGwo
U2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9h
dCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbChjb25zdCBGbG9hdFBvaW50
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVW
aXNpYmxlTGVuZ3RocygpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgaW50IHZpc2libGVMZW5ndGggeyAwIH07CiAgICAgfTsKIAotICAgIGJvb2wgdXBkYXRl
UGVyQXhpc0RhdGEoUGVyQXhpc0RhdGEmLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgZGVsdGEs
IGZsb2F0IG1pblNjcm9sbFBvc2l0aW9uLCBmbG9hdCBtYXhTY3JvbGxQb3NpdGlvbik7CisgICAg
Ym9vbCB1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0YSYsIFNjcm9sbEdyYW51bGFyaXR5LCBm
bG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0
aW9uLCBkb3VibGUgc21vb3RoRmFjdG9yID0gMSk7CiAgICAgYm9vbCBhbmltYXRlU2Nyb2xsKFBl
ckF4aXNEYXRhJiwgTW9ub3RvbmljVGltZSBjdXJyZW50VGltZSk7CiAKICAgICB2b2lkIHJlcXVl
c3RBbmltYXRpb25UaW1lckZpcmVkKCk7CkBAIC0xMDgsNCArMTA4LDMgQEAgcHJpdmF0ZToKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggYTYx
MTg2ODM3ZC4uNGQ1OThjNzVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNp
bmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCisj
aW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFy
ZWEuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKQEAgLTUyLDYgKzUzLDE4IEBAIFNjcm9sbEFu
aW1hdG9yOjpTY3JvbGxBbmltYXRvcihTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiAj
aWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAg
ICwgbV9zY3JvbGxDb250cm9sbGVyKCp0aGlzKQogI2VuZGlmCisgICAgLCBtX2FuaW1hdGlvblBy
b2dyYW1tYXRpY1Njcm9sbChtYWtlVW5pcXVlPFNjcm9sbEFuaW1hdGlvblNtb290aD4oc2Nyb2xs
YWJsZUFyZWEsIG1fY3VycmVudFBvc2l0aW9uLCBbdGhpc10oRmxvYXRQb2ludCYmIHBvc2l0aW9u
KSB7CisgICAgICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gbV9zY3JvbGxhYmxlQXJlYS5j
dXJyZW50U2Nyb2xsVHlwZSgpOworICAgICAgICBtX3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRT
Y3JvbGxUeXBlKFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyk7CisgICAgICAgIGJvb2wgdXBkYXRl
ZCA9IG1fc2Nyb2xsYWJsZUFyZWEucmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHJvdW5kZWRJ
bnRQb2ludChwb3NpdGlvbikpOworICAgICAgICBtX3Njcm9sbGFibGVBcmVhLnNldEN1cnJlbnRT
Y3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CisgICAgICAgIGlmICh1cGRhdGVkKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEZsb2F0U2l6ZSBkZWx0YSA9IHBvc2l0aW9uIC0g
bV9jdXJyZW50UG9zaXRpb247CisgICAgICAgIG1fY3VycmVudFBvc2l0aW9uID0gV1RGTW92ZShw
b3NpdGlvbik7CisgICAgICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChkZWx0YSk7CisgICAgfSkp
CiB7CiB9CiAKQEAgLTc1LDYgKzg4LDE0IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChT
Y3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0KGNv
bnN0IEZsb2F0UG9pbnQmIG9mZnNldCkKK3sKKyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Nj
cm9sbC0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3VycmVudFBvc2l0aW9uKTsKKyAgICBhdXRvIG5l
d1Bvc2l0aW9uID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZz
ZXQsIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsT3JpZ2luKCkpKTsKKyAgICBt
X2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c2Nyb2xsKG5ld1Bvc2l0aW9uKTsKKyAgICBt
X3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbik7Cit9CisKIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNj
cm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNj
cm9sbENsYW1waW5nKQogewogICAgIEZsb2F0UG9pbnQgbmV3UG9zaXRvbiA9IFNjcm9sbGFibGVB
cmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0LCB0b0Zsb2F0U2l6ZShtX3Njcm9s
bGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CkBAIC0yNDUsNCArMjY2LDMzIEBAIHZvaWQgU2Ny
b2xsQW5pbWF0b3I6OnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVh
c29uKFdoZWVsRXZlbnRUCiB9CiAjZW5kaWYKIAordm9pZCBTY3JvbGxBbmltYXRvcjo6Y2FuY2Vs
QW5pbWF0aW9ucygpCit7CisjaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikK
KyAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c3RvcCgpOworI2VuZGlmCit9CisK
K3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNlcnZpY2VTY3JvbGxBbmltYXRpb25zKCkKK3sKKyNpZiAh
VVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQorICAgIG1fYW5pbWF0aW9uUHJvZ3Jh
bW1hdGljU2Nyb2xsLT5zZXJ2aWNlQW5pbWF0aW9uKCk7CisjZW5kaWYKK30KKwordm9pZCBTY3Jv
bGxBbmltYXRvcjo6d2lsbEVuZExpdmVSZXNpemUoKQoreworICAgIG1fYW5pbWF0aW9uUHJvZ3Jh
bW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVuZ3RocygpOworfQorCit2b2lkIFNjcm9sbEFu
aW1hdG9yOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcihTY3JvbGxiYXIqKQoreworICAgIG1fYW5p
bWF0aW9uUHJvZ3JhbW1hdGljU2Nyb2xsLT51cGRhdGVWaXNpYmxlTGVuZ3RocygpOworfQorCit2
b2lkIFNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciop
Cit7CisgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGwtPnVwZGF0ZVZpc2libGVMZW5n
dGhzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5oCmluZGV4IGE1YzY5YzUzYjcuLjliN2MwOWI2OTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0UG9pbnQ7CiBjbGFzcyBQbGF0Zm9ybVRvdWNo
RXZlbnQ7CitjbGFzcyBTY3JvbGxBbmltYXRpb247CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKIGNs
YXNzIFNjcm9sbGJhcjsKIGNsYXNzIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjsKQEAgLTY4LDYgKzY5
LDcgQEAgcHVibGljOgogICAgIC8vIFRoZSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5
cyBzY3JvbGxzIGltbWVkaWF0ZWx5LCBuZXZlciBhbmltYXRlcy4KICAgICB2aXJ0dWFsIGJvb2wg
c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3Rl
cCwgZmxvYXQgbXVsdGlwbGllcik7CiAKKyAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZs
b2F0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0
aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpD
bGFtcGVkKTsKIAogICAgIFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWE7IH0KQEAgLTg1LDggKzg3LDggQEAgcHVibGljOgogICAg
IHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICBjb25zdCBG
bG9hdFBvaW50JiBjdXJyZW50UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRQb3Np
dGlvbjsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNhbmNlbEFuaW1hdGlvbnMoKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsQW5pbWF0aW9ucygpOworICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlU2Nyb2xsQW5p
bWF0aW9ucygpOwogCiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRBcmVhV2lsbFBhaW50KCkgY29u
c3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhKCkgeyB9CkBA
IC05NywxNiArOTksMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtb3VzZUlzRG93bklu
U2Nyb2xsYmFyKFNjcm9sbGJhciosIGJvb2wpIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCB3
aWxsU3RhcnRMaXZlUmVzaXplKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzUmVzaXpl
ZCgpIGNvbnN0IHsgfQotICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBj
b250ZW50QXJlYURpZFNob3coKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29udGVudEFyZWFEaWRI
aWRlKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9ja092ZXJsYXlTY3JvbGxiYXJTdGF0ZVRv
SGlkZGVuKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJzQ2FuQmVBY3RpdmUo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVmVydGlj
YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZFZlcnRp
Y2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmVy
dGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFkZEhv
cml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFk
ZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxS
ZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopIHsgfQogCiAgICAgdmlydHVhbCB2
b2lkIGludmFsaWRhdGVTY3JvbGxiYXJQYXJ0TGF5ZXJzKFNjcm9sbGJhciopIHsgfQpAQCAtMTUx
LDYgKzE1Myw4IEBAIHByb3RlY3RlZDoKICAgICBTY3JvbGxDb250cm9sbGVyIG1fc2Nyb2xsQ29u
dHJvbGxlcjsKICNlbmRpZgogICAgIEZsb2F0UG9pbnQgbV9jdXJyZW50UG9zaXRpb247CisKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQW5pbWF0aW9uPiBtX2FuaW1hdGlvblByb2dyYW1tYXRp
Y1Njcm9sbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxUeXBlcy5oCmluZGV4IDg5MTE0OTEwM2QuLmY2ZDM1NjY1ZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtNTQsNiArNTQsMjEgQEAgZW51bSBjbGFzcyBT
Y3JvbGxQb3NpdGlvbkNsYW1wIDogdWludDhfdCB7CiAgICAgVG9Db250ZW50RWRnZXMsCiB9Owog
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKK2Vu
dW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JUeXBlIDogdWludDhfdCB7CisgICAgSW5zdGFudCwKKyAg
ICBTbW9vdGgsCit9OworI2VuZGlmCisKK2VudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3JTdGF0dXMg
OiB1aW50OF90IHsKKyAgICBOb3RJbkFuaW1hdGlvbiwKKyAgICBJbk5vbk5hdGl2ZUFuaW1hdGlv
biwKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQor
ICAgIEluTmF0aXZlQW5pbWF0aW9uLAorI2VuZGlmCit9OworCiBpbmxpbmUgU2Nyb2xsRGlyZWN0
aW9uIGxvZ2ljYWxUb1BoeXNpY2FsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBi
b29sIGlzVmVydGljYWwsIGJvb2wgaXNGbGlwcGVkKQogewogICAgIHN3aXRjaCAoZGlyZWN0aW9u
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IGIxMjZhOWMyYjcu
LjFkMmMzMmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00
NjEsMTAgKzQ2MSwxNCBAQCB2b2lkIFNjcm9sbFZpZXc6OmNvbXBsZXRlVXBkYXRlc0FmdGVyU2Ny
b2xsVG8oY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCiAgICAgdXBkYXRlQ29tcG9zaXRpbmdM
YXllcnNBZnRlclNjcm9sbGluZygpOwogfQogCi12b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgU2Nyb2xs
Vmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0
aW9uLCBib29sLyogYW5pbWF0ZWQqLykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5n
LCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9z
aXRpb24pOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlw
ZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlmIChwcm9oaWJpdHNTY3JvbGxpbmcoKSkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC00NzUsMTMgKzQ3OSwxNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNl
dFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKIAog
ICAgIFNjcm9sbFBvc2l0aW9uIG5ld1Njcm9sbFBvc2l0aW9uID0gIWRlbGVnYXRlc1Njcm9sbGlu
ZygpID8gYWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRoaW5SYW5nZShzY3JvbGxQb3NpdGlvbikgOiBz
Y3JvbGxQb3NpdGlvbjsKIAotICAgIGlmICgoIWRlbGVnYXRlc1Njcm9sbGluZygpIHx8IGN1cnJl
bnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6VXNlcikgJiYgbmV3U2Nyb2xsUG9zaXRpb24g
PT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkKKyAgICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmco
KSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlVzZXIpICYmIGN1cnJlbnRT
Y3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1h
dGlvbiAmJiBuZXdTY3JvbGxQb3NpdGlvbiA9PSB0aGlzLT5zY3JvbGxQb3NpdGlvbigpKQogICAg
ICAgICByZXR1cm47CiAKKyAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0g
U2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICBzY3Jv
bGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKKwogICAgIGlmIChyZXF1ZXN0U2Nyb2xs
UG9zaXRpb25VcGRhdGUobmV3U2Nyb2xsUG9zaXRpb24pKQogICAgICAgICByZXR1cm47CiAKICAg
ICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBvc2l0aW9uKTsKKyAgICBzZXRTY3JvbGxCZWhh
dmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwogfQogCiBi
b29sIFNjcm9sbFZpZXc6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTUzOCw3ICs1NDYsOCBAQCB2b2lkIFNjcm9sbFZp
ZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Nyb2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlv
bikKICAgICAKICAgICBpZiAoIW1hbmFnZXNTY3JvbGxiYXJzKCkpIHsKICAgICAgICAgaWYgKHNj
cm9sbE9yaWdpbkNoYW5nZWQoKSkgewotICAgICAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9s
bFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oZGVzaXJl
ZFBvc2l0aW9uKSk7CisgICAgICAgICAgICBpZiAoIXJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZShkZXNpcmVkUG9zaXRpb24pKQorICAgICAgICAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3Jv
bGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGRlc2ly
ZWRQb3NpdGlvbikpOwogICAgICAgICAgICAgcmVzZXRTY3JvbGxPcmlnaW5DaGFuZ2VkKCk7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5o
CmluZGV4IDQzMDE2MGQ2YWUuLjUzOTgxMDgzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmgKQEAgLTI2MCw3ICsyNjAsNyBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsUG9zaXRpb24g
Y2FjaGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNjcm9sbFBvc2l0
aW9uOyB9CiAKICAgICAvLyBGdW5jdGlvbnMgZm9yIHNjcm9sbGluZyB0aGUgdmlldy4KLSAgICB2
aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBi
b29sIGFuaW1hdGVkID0gZmFsc2UpOwogICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYg
cykgeyByZXR1cm4gc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24oKSArIHMpOyB9CiAK
ICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNjcm9sbHMgYnkgbGluZXMsIHBhZ2VzIG9yIHBpeGVscy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCA5NmQwZjMw
MGIzLi4xNTA3MDRjMmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwCkBAIC03MSw2ICs3MSw5IEBAIFNjcm9sbGFibGVBcmVhOjpTY3JvbGxhYmxlQXJlYSgp
CiAgICAgLCBtX3Njcm9sbE9yaWdpbkNoYW5nZWQoZmFsc2UpCiAgICAgLCBtX2N1cnJlbnRTY3Jv
bGxUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihTY3JvbGxUeXBlOjpVc2VyKSkKICAgICAsIG1f
c2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoZmFsc2UpCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICAsIG1fY3VycmVudFNjcm9sbEJl
aGF2aW9yVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0
YW50KSkKKyNlbmRpZgogewogfQogCkBAIC0xNDIsNiArMTQ1LDEyIEBAIGJvb2wgU2Nyb2xsYWJs
ZUFyZWE6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0
eSBncmFudWxhCiAgICAgcmV0dXJuIHNjcm9sbEFuaW1hdG9yKCkuc2Nyb2xsKG9yaWVudGF0aW9u
LCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7CiB9CiAKK3ZvaWQgU2Nyb2xsYWJsZUFy
ZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQs
IFNjcm9sbENsYW1waW5nKQoreworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVh
bSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Nyb2xsVG9PZmZzZXRXaXRoQW5p
bWF0aW9uICIgPDwgb2Zmc2V0KTsKKyAgICBzY3JvbGxBbmltYXRvcigpLnNjcm9sbFRvT2Zmc2V0
KG9mZnNldCk7Cit9CisKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91
dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nIGNsYW1w
aW5nKQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xs
YWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uICIg
PDwgb2Zmc2V0KTsKQEAgLTIyMSwxNiArMjMwLDE1IEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6Omhh
bmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiB0b3VjaEV2ZW50KQogLy8g
Tk9URTogT25seSBjYWxsZWQgZnJvbSBJbnRlcm5hbHMgZm9yIHRlc3RpbmcuCiB2b2lkIFNjcm9s
bGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzKGNvbnN0IFNjcm9sbE9mZnNl
dCYgb2Zmc2V0KQogeworICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xs
UG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpKQorICAgICAgICByZXR1cm47CisKICAgICBzZXRT
Y3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9uKG9mZnNldCk7CiB9CiAKIHZvaWQgU2Nyb2xsYWJsZUFy
ZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZz
ZXQpCiB7Ci0gICAgU2Nyb2xsUG9zaXRpb24gcG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbkZyb21P
ZmZzZXQob2Zmc2V0KTsKLSAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0
aW9uKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHBvc2l0
aW9uKTsKKyAgICBzY3JvbGxQb3NpdGlvbkNoYW5nZWQoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0
KG9mZnNldCkpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjp3aWxsU3RhcnRMaXZlUmVzaXpl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IGQ3NDM4YzE1
Y2QuLjU1NjcyZjgxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aApAQCAtNjIsNyArNjIsMTEgQEAgaW5saW5lIGludCBvZmZzZXRGb3JPcmllbnRhdGlvbihTY3Jv
bGxPZmZzZXQgb2Zmc2V0LCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnQKIAogY2xhc3MgU2Ny
b2xsYWJsZUFyZWEgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+IHsKIHB1
YmxpYzoKKyAgICBTY3JvbGxCZWhhdmlvclN0YXR1cyBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0
dXMoKSB7IHJldHVybiBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1czsgfQorICAgIHZvaWQg
c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXMgc3RhdHVzKSB7IG1f
Y3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzID0gc3RhdHVzOyB9CisKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9h
dCBtdWx0aXBsaWVyID0gMSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNl
dFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZz
ZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNj
cm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFu
aW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwgZmxvYXQgb2Zmc2V0KTsKIApAQCAtMjQyLDYg
KzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsVHlwZSBjdXJyZW50U2Nyb2xsVHlwZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbFR5cGU+KG1fY3VycmVudFNjcm9sbFR5cGUp
OyB9CiAgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsVHlwZShTY3JvbGxUeXBlIHNjcm9sbFR5cGUp
IHsgbV9jdXJyZW50U2Nyb2xsVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3JvbGxUeXBl
KTsgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykKKyAgICBTY3JvbGxCZWhhdmlvclR5cGUgY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbEJlaGF2aW9yVHlwZT4obV9jdXJyZW50U2Ny
b2xsQmVoYXZpb3JUeXBlKTsgfQorICAgIHZvaWQgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZShTY3JvbGxCZWhhdmlvclR5cGUgc2Nyb2xsQmVoYXZpb3JUeXBlKSB7IG1fY3VycmVudFNjcm9s
bEJlaGF2aW9yVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3JvbGxCZWhhdmlvclR5cGUp
OyB9CisjZW5kaWYKKwogICAgIGJvb2wgc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlOyB9CiAgICAgdm9p
ZCBzZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZShib29sIHNob3VsZENsZWFyKSB7IG1f
c2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUgPSBzaG91bGRDbGVhcjsgfQogCkBAIC0zNzgs
NiArMzg3LDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRWZXJ0aWNhbFNuYXBQ
b2ludEluZGV4IHsgMCB9OwogI2VuZGlmCiAKKyAgICBTY3JvbGxCZWhhdmlvclN0YXR1cyBtX2N1
cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyB7IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFu
aW1hdGlvbiB9OworCiAgICAgLy8gVGhlcmUgYXJlIDggcG9zc2libGUgY29tYmluYXRpb25zIG9m
IHdyaXRpbmcgbW9kZSBhbmQgZGlyZWN0aW9uLiBTY3JvbGwgb3JpZ2luIHdpbGwgYmUgbm9uLXpl
cm8gaW4gdGhlIHggb3IgeSBheGlzCiAgICAgLy8gaWYgdGhlcmUgaXMgYW55IHJldmVyc2VkIGRp
cmVjdGlvbiBvciB3cml0aW5nLW1vZGUuIFRoZSBjb21iaW5hdGlvbnMgYXJlOgogICAgIC8vIHdy
aXRpbmctbW9kZSAvIGRpcmVjdGlvbiAgICAgc2Nyb2xsT3JpZ2luLngoKSBzZXQgICAgc2Nyb2xs
T3JpZ2luLnkoKSBzZXQKQEAgLTQwMyw2ICs0MTQsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVk
IG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZCA6IDE7CiAgICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xs
VHlwZSA6IDE7IC8vIFNjcm9sbFR5cGUKICAgICB1bnNpZ25lZCBtX3Njcm9sbFNob3VsZENsZWFy
TGF0Y2hlZFN0YXRlIDogMTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKQorICAgIHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA6
IDE7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmljLmNw
cAppbmRleCAyMDhhZjdiODQ3Li5hZDMzMmMzMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwCkBAIC0x
NjIsNiArMTYyLDggQEAgdm9pZCBTY3JvbGxBbmltYXRvckdlbmVyaWM6OndpbGxFbmRMaXZlUmVz
aXplKCkKIAogdm9pZCBTY3JvbGxBbmltYXRvckdlbmVyaWM6OnVwZGF0ZVBvc2l0aW9uKEZsb2F0
UG9pbnQmJiBwb3NpdGlvbikKIHsKKyAgICBpZiAobV9zY3JvbGxhYmxlQXJlYS5yZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUocm91bmRlZEludFBvaW50KHBvc2l0aW9uKSkpCisgICAgICAgIHJl
dHVybjsKICAgICBGbG9hdFNpemUgZGVsdGEgPSBwb3NpdGlvbiAtIG1fY3VycmVudFBvc2l0aW9u
OwogICAgIG1fY3VycmVudFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7CiAgICAgbm90aWZ5
UG9zaXRpb25DaGFuZ2VkKGRlbHRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBmNTkxNzY3MmVlLi42Mzc1M2FkMjZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBA
IC0xMTU1LDYgKzExNTUsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpub3RpZnlDb250ZW50
QXJlYVNjcm9sbGVkKGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNYWM6OmNhbmNlbEFuaW1hdGlvbnMoKQogeworICAgIFNjcm9sbEFuaW1hdG9yOjpjYW5jZWxB
bmltYXRpb25zKCk7CiAgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gZmFsc2U7CiAK
ICAgICBpZiAoc2Nyb2xsYmFyUGFpbnRUaW1lcklzQWN0aXZlKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDgzM2U0ZGYyMzcuLjZjYzcxNWE4OWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC01ODEsMjAgKzU4MSwyOCBAQCBzdGF0
aWMgdm9pZCBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKFJlbmRlckxheWVyJiBsYXllcikKICAgICBs
YXllci5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihwYWdlLndoZWVs
RXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQo
aW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBp
bmcpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlw
ZSBzY3JvbGxUeXBlLCBib29sIGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsK
ICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAgICAgICByZXR1cm47
CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Ny
b2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgIGxheWVy
KCktPnNjcm9sbFRvWFBvc2l0aW9uKG5ld0xlZnQsIHNjcm9sbFR5cGUsIGFuaW1hdGVkLCBjbGFt
cGluZyk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Ny
b2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVy
Qm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBib29s
IGFuaW1hdGVkLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKICAgICBpZiAoIWhhc092ZXJm
bG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAgICAgICByZXR1cm47CiAgICAgc2V0dXBXaGVlbEV2
ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Nyb2xsVG9ZUG9zaXRpb24obmV3
VG9wLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgbGF5ZXIoKS0+c2Nyb2xsVG9ZUG9zaXRp
b24obmV3VG9wLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOworfQorCit2b2lkIFJl
bmRlckJveDo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9u
LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nIGNs
YW1waW5nKQoreworICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkgfHwgIWxheWVyKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKCpsYXllcigpKTsKKyAgICBs
YXllcigpLT5zY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwg
Y2xhbXBpbmcpOwogfQogCiB2b2lkIFJlbmRlckJveDo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50
UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggNDk1NDgxNDA1NC4uMjIxOTI4
MDU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtMjQ3LDggKzI0Nyw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBzY3JvbGxUb3AoKSBjb25zdDsKICAgICB2aXJ0
dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IHNjcm9sbEhlaWdo
dCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlw
ZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0KGlu
dCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNj
cm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGlu
dCwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3JvbGxDbGFtcGluZyA9IFNj
cm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0
IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBTY3Jv
bGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKIAogICAgIExheW91dFVuaXQg
bWFyZ2luVG9wKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9tYXJnaW5Cb3gudG9wKCk7IH0K
ICAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
bWFyZ2luQm94LmJvdHRvbSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAppbmRleCA1NDRmMjA2NDk1Li40N2JjZjdkNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI1NzcsMTYgKzI1NzcsMjQgQEAgdm9pZCBSZW5kZXJM
YXllcjo6YXBwbHlQb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb25JZk5lZWRlZCgpCiAgICAgbV9wb3N0
TGF5b3V0U2Nyb2xsUG9zaXRpb24gPSBXVEY6Om51bGxvcHQ7CiB9CiAKLXZvaWQgUmVuZGVyTGF5
ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9s
bENsYW1waW5nIGNsYW1waW5nKQordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9YUG9zaXRpb24o
aW50IHgsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xhbXBp
bmcgY2xhbXBpbmcpCiB7CiAgICAgU2Nyb2xsUG9zaXRpb24gcG9zaXRpb24oeCwgbV9zY3JvbGxQ
b3NpdGlvbi55KCkpOwotICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldEZyb21Qb3NpdGlv
bihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICBzY3JvbGxUb1Bvc2l0aW9u
KHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBhbmltYXRlZCwgY2xhbXBpbmcpOwogfQogCi12b2lkIFJl
bmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBl
LCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWVBv
c2l0aW9uKGludCB5LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9s
bENsYW1waW5nIGNsYW1waW5nKQogewogICAgIFNjcm9sbFBvc2l0aW9uIHBvc2l0aW9uKG1fc2Ny
b2xsUG9zaXRpb24ueCgpLCB5KTsKLSAgICBzY3JvbGxUb09mZnNldChzY3JvbGxPZmZzZXRGcm9t
UG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgc2Nyb2xsVG9Q
b3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgYW5pbWF0ZWQsIGNsYW1waW5nKTsKK30KKwor
dm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYg
cG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgYm9vbCBhbmltYXRlZCwgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpCit7CisgICAgaWYgKGFuaW1hdGVkKQorICAgICAgICBzY3JvbGxUb09m
ZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Ny
b2xsVHlwZSwgY2xhbXBpbmcpOworICAgIGVsc2UKKyAgICAgICAgc2Nyb2xsVG9PZmZzZXQoc2Ny
b2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOwog
fQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNj
cm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjU5NiwyMiArMjYwNCw2OCBAQCBT
Y3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9m
ZnNldCYgc2Nyb2xsT2Zmc2V0KSBjbwogCiB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNl
dChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBl
LCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5
cGUoU2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRpZgorCisgICAgaWYgKGN1cnJl
bnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5h
dGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25z
KCk7CisKICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1waW5nID09
IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0
KSA6IHNjcm9sbE9mZnNldDsKLSAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5z
Y3JvbGxPZmZzZXQoKSkKKyAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3Jv
bGxPZmZzZXQoKSkgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpCisgICAgICAgIC8vIElmIFVJU2Nyb2xsVmlldyBpcyBwZXJmb3JtaW5nIGEgc2Ny
b2xsIGFuaW1hdGlvbiwgdGhlIHNjcm9sbCBvZmZzZXQgb2YgdGhlIFdlYiBwcm9jZXNzIG1pZ2h0
IGJlIG92ZXJyaWRkZW4uCisgICAgICAgIC8vIFNvIHdlIG5lZWQgdG8gY2FsbCByZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUgaGVyZSBhbmQgbGV0IGl0IGJlIGNoZWNrZWQgb24gdGhlIFVJIHBy
b2Nlc3MuCisgICAgICAgIC8vIElmIHRoZSBzY3JvbGwgb2Zmc2V0IG9uIHRoZSBVSSBwcm9jZXNz
IGlzIGRpZmZlcmVudCwgdGhlIGNvcnJlY3Qgc2Nyb2xsIG9mZnNldCBuZWVkcyB0byBzeW5jIGJh
Y2sgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9y
U3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5pbWF0aW9uKQorICAg
ICAgICAgICAgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9m
ZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAg
IH0KIAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsK
ICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKIAogICAgIGJvb2wgaGFuZGxl
ZCA9IGZhbHNlOwogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAgaWYgKFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5zY3JvbGxpbmdDb29y
ZGluYXRvcigpKQotICAgICAgICBoYW5kbGVkID0gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlcXVl
c3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgqdGhpcywgc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNs
YW1wZWRTY3JvbGxPZmZzZXQpKTsKKyAgICBoYW5kbGVkID0gcmVxdWVzdFNjcm9sbFBvc2l0aW9u
VXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSk7CiAj
ZW5kaWYKIAotICAgIGlmICghaGFuZGxlZCkKKyAgICBpZiAoIWhhbmRsZWQpIHsKICAgICAgICAg
c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNsYW1wZWRTY3JvbGxPZmZzZXQsIGNsYW1w
aW5nKTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0
dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAgICB9CisKKyAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShw
cmV2aW91c1Njcm9sbFR5cGUpOworfQorCitib29sIFJlbmRlckxheWVyOjpyZXF1ZXN0U2Nyb2xs
UG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uKQoreworI2lmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3Jv
bGxpbmdDb29yZGluYXRvciA9IHBhZ2UoKS5zY3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAg
ICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZSgqdGhpcywgcG9zaXRpb24pOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQogCit2b2lk
IFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zm
c2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBp
bmcpCit7CisgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgp
OworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOworCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Ny
b2xsQmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsKKyAgICBpZiAocmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQp
KSkgeworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBTY3JvbGxPZmZzZXQgbmV3U2Ny
b2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNj
cm9sbE9mZnNldChvZmZzZXQpIDogb2Zmc2V0OworICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24p
CisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOworICAgIGlmIChu
ZXdTY3JvbGxPZmZzZXQgIT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisgICAgICAgIFNjcm9sbGFi
bGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3U2Nyb2xsT2Zmc2V0KTsKICAg
ICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOwogfQogCkBAIC0yNjQ3
LDcgKzI3MDEsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhjb25zdCBTY3JvbGxQb3Np
dGlvbiYgcG9zaXRpb24pCiAjZW5kaWYKICAgICB9CiAgICAgCi0gICAgaWYgKG1fc2Nyb2xsUG9z
aXRpb24gPT0gbmV3UG9zaXRpb24pIHsKKyAgICBpZiAobV9zY3JvbGxQb3NpdGlvbiA9PSBuZXdQ
b3NpdGlvbiAmJiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlv
clN0YXR1czo6Tm90SW5BbmltYXRpb24pIHsKICAgICAgICAgLy8gRklYTUU6IE5vdGhpbmcgZ3Vh
cmFudGVlcyB3ZSBnZXQgYSBzY3JvbGxUbygpIHdpdGggYW4gdW5jaGFuZ2VkIHBvc2l0aW9uIGF0
IHRoZSBlbmQgb2YgYSB1c2VyIGdlc3R1cmUuCiAgICAgICAgIC8vIFRoZSBTY3JvbGxpbmdDb29y
ZGluYXRvciBwcm9iYWJseSBuZWVkcyB0byBtZXNzYWdlIHRoZSBtYWluIHRocmVhZCB3aGVuIGEg
Z2VzdHVyZSBlbmRzLgogICAgICAgICBpZiAocmVxdWlyZXNTY3JvbGxQb3NpdGlvblJlY29uY2ls
aWF0aW9uKCkpIHsKQEAgLTI3OTIsMTAgKzI4NDYsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Ny
b2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5z
aWQKICAgICAgICAgTGF5b3V0UmVjdCByZXZlYWxSZWN0ID0gZ2V0UmVjdFRvRXhwb3NlKGxheWVy
Qm91bmRzLCBsb2NhbEV4cG9zZVJlY3QsIGluc2lkZUZpeGVkLCBvcHRpb25zLmFsaWduWCwgb3B0
aW9ucy5hbGlnblkpOwogCiAgICAgICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0
ID0gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KCkgKyB0b0ludFNpemUocm91bmRlZElu
dFJlY3QocmV2ZWFsUmVjdCkubG9jYXRpb24oKSkpOwotICAgICAgICBpZiAoY2xhbXBlZFNjcm9s
bE9mZnNldCAhPSBzY3JvbGxPZmZzZXQoKSkgeworICAgICAgICBpZiAoY3VycmVudFNjcm9sbEJl
aGF2aW9yU3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uIHx8
IGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkpIHsKICAgICAgICAgICAgIFNj
cm9sbE9mZnNldCBvbGRTY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQoKTsKLSAgICAgICAgICAg
IHNjcm9sbFRvT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpOwotICAgICAgICAgICAgSW50U2l6
ZSBzY3JvbGxPZmZzZXREaWZmZXJlbmNlID0gc2Nyb2xsT2Zmc2V0KCkgLSBvbGRTY3JvbGxPZmZz
ZXQ7CisgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gKGJveC0+ZWxlbWVudCgpICYmIHVzZVNt
b290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCAqYm94LT5lbGVtZW50KCkpKTsKKyAgICAg
ICAgICAgIHNjcm9sbFRvUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRT
Y3JvbGxPZmZzZXQpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIGFuaW1hdGVkKTsKKyAgICAg
ICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSA9IGNsYW1wZWRTY3JvbGxPZmZz
ZXQgLSBvbGRTY3JvbGxPZmZzZXQ7CiAgICAgICAgICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZSgt
c2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSk7CiAgICAgICAgICAgICBuZXdSZWN0ID0gTGF5b3V0UmVj
dChib3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKEZsb2F0UmVjdChsb2NhbEV4cG9z
ZVJlY3QpKSwgVXNlVHJhbnNmb3JtcykuYm91bmRpbmdCb3goKSk7CiAgICAgICAgIH0KQEAgLTI4
MTUsMTAgKzI4NzAsMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShj
b25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgICAgICAg
ICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0gZnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdChMZWdh
Y3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsKICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IGV4
cG9zZVJlY3QgPSBnZXRSZWN0VG9FeHBvc2Uodmlld1JlY3QsIGFic29sdXRlUmVjdCwgaW5zaWRl
Rml4ZWQsIG9wdGlvbnMuYWxpZ25YLCBvcHRpb25zLmFsaWduWSk7CiAKLSAgICAgICAgICAgICAg
ICBJbnRQb2ludCBzY3JvbGxPZmZzZXQocm91bmRlZEludFBvaW50KGV4cG9zZVJlY3QubG9jYXRp
b24oKSkpOworICAgICAgICAgICAgICAgIEludFBvaW50IHNjcm9sbFBvc2l0aW9uKHJvdW5kZWRJ
bnRQb2ludChleHBvc2VSZWN0LmxvY2F0aW9uKCkpKTsKICAgICAgICAgICAgICAgICAvLyBBZGp1
c3Qgb2Zmc2V0cyBpZiB0aGV5J3JlIG91dHNpZGUgb2YgdGhlIGFsbG93YWJsZSByYW5nZS4KLSAg
ICAgICAgICAgICAgICBzY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQuY29uc3RyYWluZWRCZXR3
ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1lVmlldy5jb250ZW50c1NpemUoKSkpOwotICAg
ICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxPZmZzZXQpOwor
ICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb24uY29uc3RyYWlu
ZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1lVmlldy5jb250ZW50c1NpemUoKSkp
OworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGNvbnRlbnREb2N1bWVu
dCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKKyAgICAgICAgICAgICAgICBi
b29sIGFuaW1hdGVkID0gb3duZXJFbGVtZW50LT5jb250ZW50RG9jdW1lbnQoKSAmJiBvd25lckVs
ZW1lbnQtPmNvbnRlbnREb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSAmJiB1c2VTbW9vdGhT
Y3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgKm93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50
KCktPmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Ny
b2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGFuaW1hdGVkKTsKIAogICAgICAgICAgICAgICAg
IGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgPT0gU2hvdWxkQWxs
b3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8IGZyYW1lVmlldy5zYWZlVG9Qcm9wYWdhdGVT
Y3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHBhcmVudExheWVyID0gb3du
ZXJFbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOwpAQCAtMjg1Nyw3ICsyOTE1
LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0
UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgICAgICAvLyBBdm9pZCBzY3Jv
bGxpbmcgdG8gdGhlIHJvdW5kZWQgdmFsdWUgb2YgcmV2ZWFsUmVjdC5sb2NhdGlvbigpIGlmIHdl
IGRvbid0IGFjdHVhbGx5IG5lZWQgdG8gc2Nyb2xsCiAgICAgICAgICAgICBpZiAocmV2ZWFsUmVj
dCAhPSB2aWV3UmVjdCkgewogICAgICAgICAgICAgICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Ny
b2xsUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQocmV2ZWFsUmVjdC5sb2NhdGlvbigpKS5jb25z
dHJhaW5lZEJldHdlZW4obWluU2Nyb2xsUG9zaXRpb24sIG1heFNjcm9sbFBvc2l0aW9uKTsKLSAg
ICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBv
c2l0aW9uKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBkb2N1bWVu
dCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CisgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKKyAgICAgICAgICAgICAgICBi
b29sIGFuaW1hdGVkID0gcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpICYm
IHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCAqcmVuZGVyZXIoKS5kb2N1bWVu
dCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Ny
b2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0aW9uLCBhbmltYXRlZCk7CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVybW9zdCB2aWV3IG9mIGEgd2Vi
IHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0aGlzIHZpZXcgd2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKaW5kZXggNmNhNDIyYjdiMi4uOGM5Nzc4Mzc0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRl
ICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJQ
dHIuaCIKKyNpbmNsdWRlICJTY3JvbGxCZWhhdmlvci5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVB
cmVhLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC0x
MzQsNiArMTM1LDcgQEAgc3RydWN0IFNjcm9sbFJlY3RUb1Zpc2libGVPcHRpb25zIHsKICAgICBj
b25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCB7IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50
ZXJJZk5lZWRlZCB9OwogICAgIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZIHsgU2Nyb2xs
QWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkIH07CiAgICAgU2hvdWxkQWxsb3dDcm9zc09y
aWdpblNjcm9sbGluZyBzaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nIHsgU2hvdWxkQWxs
b3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfTsKKyAgICBTY3JvbGxCZWhhdmlvciBiZWhhdmlv
ciB7IFNjcm9sbEJlaGF2aW9yOjpBdXRvIH07CiB9OwogCiBjbGFzcyBSZW5kZXJMYXllciBmaW5h
bCA6IHB1YmxpYyBTY3JvbGxhYmxlQXJlYSB7CkBAIC00MzksOSArNDQxLDEzIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNjcm9sbEJ5UmVjdXJzaXZlbHkoY29uc3QgSW50U2l6ZSYgZGVsdGEsIFNjcm9s
bGFibGVBcmVhKiogc2Nyb2xsZWRBcmVhID0gbnVsbHB0cik7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNjcm9sbFRvT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYsIFNjcm9sbFR5cGUgPSBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6
OkNsYW1wZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5p
bWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9n
cmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCi0g
ICAgdm9pZCBzY3JvbGxUb1hQb3NpdGlvbihpbnQgeCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7Ci0gICAgdm9pZCBzY3JvbGxUb1lQb3NpdGlv
bihpbnQgeSwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCk7CisgICAgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xs
UG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2Nyb2xsVG9YUG9zaXRpb24oaW50IHgs
IFNjcm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBp
bmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5
cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1w
ZWQpOworICAgIHZvaWQgc2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNj
cm9sbFR5cGUsIGJvb2wgYW5pbWF0ZWQsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6
OkNsYW1wZWQpOwogCiAgICAgLy8gVGhlc2UgYXJlIG9ubHkgdXNlZCBieSBtYXJxdWVlLgogICAg
IHZvaWQgc2Nyb2xsVG9YT2Zmc2V0KGludCB4KSB7IHNjcm9sbFRvT2Zmc2V0KFNjcm9sbE9mZnNl
dCh4LCBzY3JvbGxPZmZzZXQoKS55KCkpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9s
bENsYW1waW5nOjpVbmNsYW1wZWQpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHAKaW5kZXggMjVjZDJkMzNhNy4uYzMzZTkwNjBmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtNzQzLDcgKzc0Myw3IEBAIGludCBS
ZW5kZXJMaXN0Qm94OjpzY3JvbGxMZWZ0KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9p
ZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcpCit2b2lkIFJlbmRlckxpc3RCb3g6OnNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBl
LCBib29sLCBTY3JvbGxDbGFtcGluZykKIHsKIH0KIApAQCAtNzYwLDcgKzc2MCw3IEBAIHN0YXRp
YyB2b2lkIHNldHVwV2hlZWxFdmVudFRlc3RNb25pdG9yKFJlbmRlckxpc3RCb3gmIHJlbmRlcmVy
KQogICAgIHJlbmRlcmVyLnNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVudFRlc3RNb25pdG9y
KHJlbmRlcmVyLnBhZ2UoKS53aGVlbEV2ZW50VGVzdE1vbml0b3IoKSk7CiB9CiAKLXZvaWQgUmVu
ZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIFNjcm9sbENs
YW1waW5nKQordm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Ny
b2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xhbXBpbmcpCiB7CiAgICAgLy8gRGV0ZXJtaW5lIGFuIGlu
ZGV4IGFuZCBzY3JvbGwgdG8gaXQuICAgIAogICAgIGludCBpbmRleCA9IG5ld1RvcCAvIGl0ZW1I
ZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDY1
ZDkyMjZiM2EuLjI1YzkwNjUxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guaApAQCAtMTA2LDggKzEwNiw4IEBAIHByaXZhdGU6CiAgICAgaW50IHNjcm9sbFRvcCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFNjcm9s
bExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgYm9vbCwgU2Nyb2xsQ2xh
bXBpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwg
Ym9vbCwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBub2RlQXRQb2ludChj
b25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRp
b24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9m
ZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggOWVl
ODg4ODY3MS4uNGRmN2QzMThkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTM3NiwxMyArMzc2LDEz
IEBAIGludCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNjcm9sbFRvcCgpIGNvbnN0CiAg
ICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2Nyb2xsVG9wKCk7CiB9CiAKLXZvaWQgUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxU
eXBlLCBTY3JvbGxDbGFtcGluZykKK3ZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpz
ZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBlLCBib29sLCBTY3JvbGxDbGFtcGlu
ZykKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxlbWVudCgpKQogICAgICAgICBpbm5lclRleHRFbGVt
ZW50KCktPnNldFNjcm9sbExlZnQobmV3TGVmdCk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcpCit2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9w
KGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKQogewogICAgIGlm
IChpbm5lclRleHRFbGVtZW50KCkpCiAgICAgICAgIGlubmVyVGV4dEVsZW1lbnQoKS0+c2V0U2Ny
b2xsVG9wKG5ld1RvcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggM2Y1Nzg2ZGZlNC4uNjY2YWEzMTQ1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuaApAQCAtNTcsOCArNTcsOCBAQCBwcml2YXRlOgogICAgIGludCBzY3JvbGxU
b3AoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRT
Y3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwotICAg
IHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJy
aWRlOworICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIGJvb2wsIFNjcm9s
bENsYW1waW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5
cGUsIGJvb2wsIFNjcm9sbENsYW1waW5nKSBvdmVycmlkZTsKICAgICBib29sIHNjcm9sbChTY3Jv
bGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgRWxl
bWVudCoqIHN0b3BFbGVtZW50ID0gbnVsbHB0ciwgUmVuZGVyQm94KiBzdGFydEJveCA9IG51bGxw
dHIsIGNvbnN0IEludFBvaW50JiB3aGVlbEV2ZW50QWJzb2x1dGVQb2ludCA9IEludFBvaW50KCkp
IGZpbmFsOwogICAgIGJvb2wgbG9naWNhbFNjcm9sbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBT
Y3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIEVsZW1lbnQqKiBzdG9wRWxl
bWVudCA9IDApIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCmluZGV4IDVkY2IyMWM2NDYuLjAwN2E0ZDEzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03MzYsNiArNzM2LDggQEAgcHVi
bGljOgogICAgIGJvb2wgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIGNvbnN0IHsgcmV0dXJu
IG1fcmFyZUluaGVyaXRlZERhdGEtPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmc7IH0KICNlbmRp
ZgogCisgICAgYm9vbCB1c2VTbW9vdGhTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT51c2VTbW9vdGhTY3JvbGxpbmc7IH0KKwogI2lmIEVOQUJMRShURVhU
X0FVVE9TSVpJTkcpCiAgICAgVGV4dFNpemVBZGp1c3RtZW50IHRleHRTaXplQWRqdXN0KCkgY29u
c3QgeyByZXR1cm4gbV9yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFNpemVBZGp1c3Q7IH0KICAgICBB
dXRvc2l6ZVN0YXR1cyBhdXRvc2l6ZVN0YXR1cygpIGNvbnN0OwpAQCAtMTI2Nyw2ICsxMjY5LDgg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZyhib29sIHYp
IHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCB1c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5n
LCB2KTsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHNldFVzZVNtb290aFNjcm9sbGluZyhib29sIHYp
IHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCB1c2VTbW9vdGhTY3JvbGxpbmcsIHYp
OyB9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIHZvaWQgc2V0VGV4dFNpemVB
ZGp1c3QoVGV4dFNpemVBZGp1c3RtZW50IGFkanVzdG1lbnQpIHsgU0VUX1ZBUihtX3JhcmVJbmhl
cml0ZWREYXRhLCB0ZXh0U2l6ZUFkanVzdCwgYWRqdXN0bWVudCk7IH0KICAgICB2b2lkIHNldEF1
dG9zaXplU3RhdHVzKEF1dG9zaXplU3RhdHVzKTsKQEAgLTE3MDQsNiArMTcwOCw4IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsVXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIHsg
cmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorICAgIHN0YXRpYyBib29sIGluaXRpYWxVc2VTbW9v
dGhTY3JvbGxpbmcoKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgc3RhdGljIGNvbnN0IEZpbHRl
ck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIoKSB7IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGaWx0
ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7IH0KICAgICBzdGF0aWMgY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYgaW5pdGlhbEFwcGxlQ29sb3JGaWx0ZXIoKSB7IHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxGaWx0ZXJPcGVyYXRpb25zPiBvcHM7IHJldHVybiBvcHM7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEuY3BwCmluZGV4IGZiMzIwODIzMzcuLmQyYTUzMWZhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBiYWNrZmFjZVZpc2liaWxpdHkoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQmFja2ZhY2VWaXNpYmlsaXR5KCkp
KQogICAgICwgdXNlckRyYWcoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0
aWFsVXNlckRyYWcoKSkpCiAgICAgLCB0ZXh0T3ZlcmZsb3coc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFJlbmRlclN0eWxlOjppbml0aWFsVGV4dE92ZXJmbG93KCkpKQorICAgICwgdXNlU21vb3RoU2Ny
b2xsaW5nKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZVNtb290
aFNjcm9sbGluZygpKSkKICAgICAsIG1hcmdpbkJlZm9yZUNvbGxhcHNlKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihNYXJnaW5Db2xsYXBzZTo6Q29sbGFwc2UpKQogICAgICwgbWFyZ2luQWZ0ZXJDb2xs
YXBzZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTWFyZ2luQ29sbGFwc2U6OkNvbGxhcHNlKSkKICAg
ICAsIGFwcGVhcmFuY2Uoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFs
QXBwZWFyYW5jZSgpKSkKQEAgLTE4MCw2ICsxODEsNyBAQCBpbmxpbmUgU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25J
bgogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KG8uYmFja2ZhY2VWaXNpYmlsaXR5KQogICAgICwg
dXNlckRyYWcoby51c2VyRHJhZykKICAgICAsIHRleHRPdmVyZmxvdyhvLnRleHRPdmVyZmxvdykK
KyAgICAsIHVzZVNtb290aFNjcm9sbGluZyhvLnVzZVNtb290aFNjcm9sbGluZykKICAgICAsIG1h
cmdpbkJlZm9yZUNvbGxhcHNlKG8ubWFyZ2luQmVmb3JlQ29sbGFwc2UpCiAgICAgLCBtYXJnaW5B
ZnRlckNvbGxhcHNlKG8ubWFyZ2luQWZ0ZXJDb2xsYXBzZSkKICAgICAsIGFwcGVhcmFuY2Uoby5h
cHBlYXJhbmNlKQpAQCAtMjc4LDYgKzI4MCw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAg
ICAgICAgICYmIGJhY2tmYWNlVmlzaWJpbGl0eSA9PSBvLmJhY2tmYWNlVmlzaWJpbGl0eQogICAg
ICAgICAmJiB1c2VyRHJhZyA9PSBvLnVzZXJEcmFnCiAgICAgICAgICYmIHRleHRPdmVyZmxvdyA9
PSBvLnRleHRPdmVyZmxvdworICAgICAgICAmJiB1c2VTbW9vdGhTY3JvbGxpbmcgPT0gby51c2VT
bW9vdGhTY3JvbGxpbmcKICAgICAgICAgJiYgbWFyZ2luQmVmb3JlQ29sbGFwc2UgPT0gby5tYXJn
aW5CZWZvcmVDb2xsYXBzZQogICAgICAgICAmJiBtYXJnaW5BZnRlckNvbGxhcHNlID09IG8ubWFy
Z2luQWZ0ZXJDb2xsYXBzZQogICAgICAgICAmJiBhcHBlYXJhbmNlID09IG8uYXBwZWFyYW5jZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmgKaW5kZXggMTljNTkxYjJkMS4uMTZhMjg1MTMyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oCkBAIC0xODEsNiArMTgxLDcgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQg
dXNlckRyYWcgOiAyOyAvLyBVc2VyRHJhZwogICAgIHVuc2lnbmVkIHRleHRPdmVyZmxvdyA6IDE7
IC8vIFdoZXRoZXIgb3Igbm90IGxpbmVzIHRoYXQgc3BpbGwgb3V0IHNob3VsZCBiZSB0cnVuY2F0
ZWQgd2l0aCAiLi4uIgorICAgIHVuc2lnbmVkIHVzZVNtb290aFNjcm9sbGluZyA6IDE7IC8vIFNj
cm9sbEJlaGF2aW9yCiAgICAgdW5zaWduZWQgbWFyZ2luQmVmb3JlQ29sbGFwc2UgOiAyOyAvLyBN
YXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIG1hcmdpbkFmdGVyQ29sbGFwc2UgOiAyOyAvLyBN
YXJnaW5Db2xsYXBzZQogICAgIHVuc2lnbmVkIGFwcGVhcmFuY2UgOiA2OyAvLyBFQXBwZWFyYW5j
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAppbmRleCA3
ZjNmMGNiYzRlLi5lMzgyMDRmNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1
aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTI5LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
Ym9vbCBjb252ZXJ0T3ZlcmZsb3dTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFs
dWUmKTsKICNlbmRpZgogICAgIHN0YXRpYyBGb250RmVhdHVyZVNldHRpbmdzIGNvbnZlcnRGb250
RmVhdHVyZVNldHRpbmdzKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CisgICAgc3Rh
dGljIGJvb2wgY29udmVydFNtb290aFNjcm9sbGluZyhCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NW
YWx1ZSYpOwogICAgIHN0YXRpYyBGb250U2VsZWN0aW9uVmFsdWUgY29udmVydEZvbnRXZWlnaHRG
cm9tVmFsdWUoY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgRm9udFNlbGVjdGlvblZhbHVl
IGNvbnZlcnRGb250U3RyZXRjaEZyb21WYWx1ZShjb25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRp
YyBPcHRpb25hbDxGb250U2VsZWN0aW9uVmFsdWU+IGNvbnZlcnRGb250U3R5bGVGcm9tVmFsdWUo
Y29uc3QgQ1NTVmFsdWUmKTsKQEAgLTE0MDMsNiArMTQwNCwxMSBAQCBpbmxpbmUgYm9vbCBCdWls
ZGVyQ29udmVydGVyOjpjb252ZXJ0T3ZlcmZsb3dTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29u
c3QgQ1NTVgogfQogI2VuZGlmCiAKK2lubGluZSBib29sIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZl
cnRTbW9vdGhTY3JvbGxpbmcoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQor
eworICAgIHJldHVybiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpLnZhbHVlSUQo
KSA9PSBDU1NWYWx1ZVNtb290aDsKK30KKwogaW5saW5lIFNWR0xlbmd0aFZhbHVlIEJ1aWxkZXJD
b252ZXJ0ZXI6OmNvbnZlcnRTVkdMZW5ndGhWYWx1ZShCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NW
YWx1ZSYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIFNWR0xlbmd0aFZhbHVlOjpmcm9tQ1NTUHJpbWl0
aXZlVmFsdWUoZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMzcyNTM5Y2IwZS4uN2M0ZGRhMjQzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTc0Niw3ICsxNzQ2LDcgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjp1bmNvbnN0cmFpbmVkU2Nyb2xsVG8oRWxlbWVudCYgZWxl
bWVudCwgZG91YmxlIHgsIGQKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+dmlldygp
KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CiAKLSAg
ICBlbGVtZW50LnNjcm9sbFRvKHsgeCwgeSB9LCBTY3JvbGxDbGFtcGluZzo6VW5jbGFtcGVkKTsK
KyAgICBlbGVtZW50LnNjcm9sbFRvKFNjcm9sbFRvT3B0aW9ucyh4LCB5KSwgU2Nyb2xsQ2xhbXBp
bmc6OlVuY2xhbXBlZCk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2MzUwOTNm
MjIzLi4wMzMyNjcxMWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE5LTEyLTExICBD
YXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBuYXRpdmUgc2Nyb2xsIGludGVyZmFjZXMg
Zm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAg
ICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4g
T24gaW9zIHBsYXRmb3JtLCB1c2UgbmF0aXZlIGFuaW1hdGVkIHNjcm9sbGluZworICAgICAgICBp
bnRlcmZhY2VzIHRvIHBlcmZvcm1hbmNlIHNtb290aCBzY3JvbGwgYW5kIHNlbmQgdGhlIHNjcm9s
bCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisKKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKToKKyAgICAgICAgKEFyZ3VtZW50
Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKToKKyAgICAgICAgKFdl
YktpdDo6ZHVtcCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06
CisgICAgICAgIChwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKTogSGVscCBmdW5jdGlv
biB0byBjaGVjayBpZiB0d28gZmxvYXQgcG9pbnRzIGFyZSBub3QgZXF1YWwgYnV0IGluIHRoZSBz
YW1lIGRldmljZSBwaXhlbC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRT
Y3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46YW5pbWF0ZWQ6XSk6IEFkZCBhbmltYXRlZCBmbGFn
IHRvIHN0YXJ0IGEgYW5pbWF0ZWQgc2Nyb2xsIGlmIG5lZWRlZC4KKyAgICAgICAgKC1bV0tXZWJW
aWV3IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246XSk6IFNlbmQgc3JvbGwgZW5k
IG1lc3NhZ2UgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9s
bFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbE9yaWdpbjpdKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICog
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6cmVx
dWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOiBQcm92aWRlIGludGVyZmFjZSBmb3IgYW5pbWF0ZWQg
c2Nyb2xsaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKTogQWRkIGFuaW1hdGVkIGZsYWcu
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOiBTeW5jIHRoZSBzY3JvbGwg
cG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTog
QWRkIGFuaW1hdGVkIHNjcm9sbGluZyBpbmZvIHRvIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5n
VHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBTeW5jIHNjcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVJ
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4gSXQncyBzcGVjaWZp
YyB0byB0aGUgcm9vdCBub2RlLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKTogQWRkIGFu
aW1hdGVkIGluZm8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9s
bGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmll
d0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246XSk6IFNlbmQgc2Nv
bGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4p
OiBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBXZWIgcHJvY2VzcyBpc24ndCBlcXVhbCB0
byB0aGUgVUkgcHJvY2VzcywKKyAgICAgICAgdGhlIHNjcm9sbCBwb3NpdGlvbiBzaG91bGQgYmUg
c3luY2hyb25pemVkLCBldmVuIHRoZXJlJ3Mgbm8gc2Nyb2xsaW5nIHBlcmZvcm1lZCBpbiB0aGUg
VUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycyk6IENhbGxpbmcgdGhlIG5hdGl2
ZSBhbmltYXRlZCBzY3JvbGxpbmcgaW50ZXJmYWNlIGZvciBzbW9vdGggc2Nyb2xsLgorICAgICAg
ICBJZiB0aGVyZSdzIGEgc2Nyb2xsIGFuaW1hdGlvbiBwZXJmb3JtaW5nLCBpdCBzaG91bGQgYmUg
c3RvcHBlZCBmaXJzdCwgdGhlbiBzdGFydCBhIG5ldyBzY3JvbGxpbmcuCisgICAgICAgIChXZWJL
aXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRF
bmRTY3JvbGxpbmdBbmltYXRpb24pOiBTeW5jIHNjcm9sbCBlbmQgaW5mbyB0byB0aGUgV2ViIHBy
b2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbCk6IFRvIGNhbGwgZGlmZmVyZW50IGZ1
bmN0aW9ucyBmb3Igc21vb3RoIGFuZCBpbnN0YW50IHNjcm9sbC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKToKKworMjAxOS0xMi0xMCAgQ2F0
aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBBZGQgQ1NTT00gc21vb3RoIHNj
cm9sbGluZyBhcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4KKworICAgICAgICBSZXZpZXdlZCBi
eSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lk
w6lyaWMgV2FuZy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorCiAy
MDE5LTEyLTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbmFtZSAiY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QiIHRvICJsYXlvdXRWaWV3cG9ydFJl
Y3QiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
bi5jcHAKaW5kZXggZDdiMWUxOTM3Mi4uODc3ZDI5YTMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJh
bnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcApAQCAtMTUyLDYgKzE1Miw5
IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcywgc2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbikKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25S
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlv
bikKKyNlbmRpZgogCiAgICAgaWYgKG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQogICAgICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4obm9kZS5zY3Jv
bGxDb250YWluZXJMYXllcigpKTsKQEAgLTI2MCw3ICsyNjMsMTIgQEAgYm9vbCBBcmd1bWVudENv
ZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBTY3JvbGwKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBub2RlLnNl
dFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCByZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsKTsKKyAgICAgICAgYm9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uID0gZmFsc2U7
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShz
Y3JvbGxXaXRoQW5pbWF0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgor
ICAgICAgICBub2RlLnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxXaXRoQW5pbWF0aW9uKTsKICAgICB9
CiAKICAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpIHsKQEAgLTYwOCw2ICs2MTYsOSBAQCBzdGF0
aWMgdm9pZCBkdW1wKFRleHRTdHJlYW0mIHRzLCBjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUmIG5vZGUsIGJvb2wgYwogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24pKSB7CiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVk
LXNjcm9sbC1wb3NpdGlvbiIsIG5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSk7CiAgICAg
ICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1wb3NpdGlvbi1pcy1wcm9ncmFt
YXRpYyIsIG5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsKCkpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIHRzLmR1bXBQcm9w
ZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1wb3NpdGlvbi13aXRoLWFuaW1hdGlvbiIsIG5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpOworI2VuZGlmCiAgICAgfQogCiAg
ICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllc09ubHkgfHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHko
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCAyZTdiNGI0ZmU0Li5mZWIy
YzNmODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEz
MjQsNiArMTMyNCwxMyBAQCBCbG9ja2luZ09mU21hbGxQbHVnaW5zRW5hYmxlZDoKICAgaHVtYW5S
ZWFkYWJsZURlc2NyaXB0aW9uOiAiU3RvcCBwbHVnaW5zIHNtYWxsZXIgdGhhbiBhIGNlcnRhaW4g
dGhyZXNob2xkIGZyb20gbG9hZGluZy4iCiAgIGNhdGVnb3J5OiBpbnRlcm5hbAogCitDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTog
ZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1NPTSBWaWV3IFNtb290aCBTY3JvbGxpbmci
CisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBET00gQVBJIGFuZCBDU1MgcHJv
cGVydHkgZm9yICdzbW9vdGgnIHNjcm9sbCBiZWhhdmlvciIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1l
bnRhbAorCiBXZWJBbmltYXRpb25zRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFs
dWU6IHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3SU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lP
Uy5oCmluZGV4IDUyMDVhM2Y2ZjQuLjFiYjE0Zjk4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaApAQCAtNTcsNyArNTcsNyBAQAogCiAtIChS
ZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90OwogCi0tICh2b2lk
KV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3Jv
bGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbjsK
Ky0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBv
aW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xs
T3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkOwogLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihX
ZWJDb3JlOjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQp
b3JpZ2luIG1pbmltdW1TY3JvbGxEaXN0YW5jZTooZmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNl
OwogCiAtIChkb3VibGUpX2luaXRpYWxTY2FsZUZhY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggMTVlZWU1NWEyMS4uNTQwMWMx
M2Q1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJ
T1MubW0KQEAgLTMwMiw2ICszMDIsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHBvaW50c0VxdWFs
SW5EZXZpY2VQaXhlbHMoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVMKICAgICAg
ICAgJiYgZmFicyhhLnkgKiBkZXZpY2VTY2FsZUZhY3RvciAtIGIueSAqIGRldmljZVNjYWxlRmFj
dG9yKSA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCk7CiB9CiAKK3N0YXRp
YyBpbmxpbmUgYm9vbCBwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKENHUG9pbnQgYSwg
Q0dQb2ludCBiLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICByZXR1cm4gQ0dSb3Vu
ZChhLnggKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChiLnggKiBkZXZpY2VTY2FsZUZh
Y3RvcikKKyAgICAgICAgJiYgQ0dSb3VuZChhLnkgKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dS
b3VuZChiLnkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CisKIHN0YXRpYyBDR1NpemUgcm91bmRT
Y3JvbGxWaWV3Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIENH
U2l6ZSBjb250ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IHBhZ2Uu
ZGV2aWNlU2NhbGVGYWN0b3IoKTsKQEAgLTEwMjYsOSArMTAzMiwxMCBAQCBzdGF0aWMgV2ViQ29y
ZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQg
Y29udGVudE9mZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihX
ZWJDb3JlOjpGbG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNvbnRlbnRP
ZmZzZXQpKTsKIH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdl
YkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJ
bnRQb2ludClzY3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0
aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2Vi
Q29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7Ci0g
ICAgaWYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9y
dFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNp
emluZykKKyAgICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBwZWQuCisg
ICAgaWYgKCFhbmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8fCBf
ZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0
ZU1vZGU6Ok5vdFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6Rmxv
YXRQb2ludCBjb250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9m
ZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2lu
KSk7CkBAIC0xMDQyLDEzICsxMDQ5LDIyIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNv
bnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAKICAg
ICBbX3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CiAKLSAg
ICBpZiAoIUNHUG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzLCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Njcm9sbFZp
ZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXNd
OworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1dCBpbiB0
aGUgc2FtZSBkZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4KKyAgICAv
LyBXZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhlcmUuCisg
ICAgaWYgKCFwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZzZXRJblNj
cm9sbFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBfcGFnZS0+
ZGV2aWNlU2NhbGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zm
c2V0OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDphbmltYXRl
ZF07CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBhbnl0aGlu
ZywgdGhlcmUgd291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRlIHNlbnQg
dG8gdGhlIGNvbnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtlZXAgdGhl
IGludmFsaWQgY29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAgICAgICAv
LyBUbyBzeW5jaHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2NyZWVuLCB3
ZSBzZW5kIHRoZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdlLT5yZXNl
bmRMYXN0VmlzaWJsZUNvbnRlbnRSZWN0cygpOworCisgICAgICAgIC8vIElmIF9zY3JvbGxWaWV3
IHdvbid0IGNoYW5nZSwgd2Ugc3RpbGwgbmVlZCB0byB0ZWxsIHRoZSBXZWIgcHJvY2VzcyB0aGF0
IHRoZSBhbmltYXRpb24gc3RvcHBlZC4KKyAgICAgICAgaWYgKGFuaW1hdGVkKSB7CisgICAgICAg
ICAgICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9y
ID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICAgICAgICAgIGlmIChj
b29yZGluYXRvcikKKyAgICAgICAgICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZVJv
b3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsKKyAgICAg
ICAgfQogICAgIH0KIH0KIApAQCAtMTU2NCw2ICsxNTgwLDEwIEBAIHN0YXRpYyBXZWJDb3JlOjpG
bG9hdFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250
ZW50T2ZmCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246KFVJU2Ny
b2xsVmlldyAqKXNjcm9sbFZpZXcKIHsKICAgICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xsaW5nXTsK
KworICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSogY29vcmRpbmF0
b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOworICAgIGlmIChjb29yZGlu
YXRvcikKKyAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CiB9CiAKIC0gKHZvaWQpX3Njcm9s
bFZpZXdEaWRJbnRlcnJ1cHREZWNlbGVyYXRpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlODQ4MjRmZDg1Li5kZTNkMzM2
NzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDgg
QEAgcHVibGljOgogICAgIC8vIFRlbGwgdGhlIHZpZXcgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBw
b3NpdGlvbiwgYW5kIHdoZXRoZXIgdGhpcyB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgogICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBzY3JvbGxPcmlnaW4pIHsgfQorCiAgICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBw
b3NpdGlvbiAobm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBw
b3NpdGlvbiwgYmVjYXVzZSBvZiBzY2FsaW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdl
YkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgPSAwOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDM4MGYxMjQ0NDMu
LjBhNDJmOTQ0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Lm1tCkBAIC0yMjQsOCArMjI0LDE0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAK
ICAgICAvLyBIYW5kbGUgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzIGZyb20gdGhl
IHNjcm9sbGluZyB0cmVlIHRyYW5zYWN0aW9uIGFmdGVyIGRpZENvbW1pdExheWVyVHJlZSgpCiAg
ICAgLy8gaGFzIHVwZGF0ZWQgdGhlIHZpZXcgc2l6ZSBiYXNlZCBvbiB0aGUgY29udGVudCBzaXpl
LgotICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRh
dGUpCi0gICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xs
SW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xs
T3JpZ2luKCkpOworICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9z
aXRpb25VcGRhdGUpIHsKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1
ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAsIGxh
eWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbE9yaWdpbigpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAgICAgICAgICwgcmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0V2l0aEFuaW1hdGlv
bgorI2VuZGlmCisgICAgICAgICAgICApOworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKQogCiAgICAgaWYgKG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0KSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXgg
NDgyM2Y3NmE5Ny4uOGNmMWQ4NGExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2Uo
V2ViQ29yZTo6CiB9CiAKIC8vIFRoaXMgY29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUuCi12
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlk
U2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
bmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3
cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3Jv
bGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNv
bnN0IEZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9hdFBv
aW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24g
c2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFu
aW1hdGlvbikKIHsKICAgICAvLyBTY3JvbGwgdXBkYXRlcyBmb3IgdGhlIG1haW4gZnJhbWUgYXJl
IHNlbnQgdmlhIFdlYlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cygpCiAgICAg
Ly8gc28gZG9uJ3Qgc2VuZCB0aGVtIGhlcmUuCkBAIC0yMjIsMjEgKzIyMiwzNiBAQCB2b2lkIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xs
KFNjcm9sbGluZ05vZGVJRAogICAgIG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVTY3JvbGxW
aWV3RGlkU2Nyb2xsKCk7CiAjZW5kaWYKIAotICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFu
ZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSkKKyAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT5pc0hh
bmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKCkgJiYgIWluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0
aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6U2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9k
ZShzY3JvbGxlZE5vZGVJRCwgbmV3U2Nyb2xsUG9zaXRpb24sIHNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24gPT0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykpOwogfQogCi12
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVx
dWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQor
dm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJl
cXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwg
Ym9vbCB3aXRoQW5pbWF0aW9uKQogewogICAgIGlmIChzY3JvbGxlZE5vZGVJRCA9PSByb290U2Ny
b2xsaW5nTm9kZUlEKCkgJiYgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvKSB7CiAgICAgICAgIG1fcmVx
dWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSA9IHRydWU7CiAg
ICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdElzUHJvZ3JhbW1hdGljU2Nyb2xs
ID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RXaXRoQW5pbWF0aW9uID0g
d2l0aEFuaW1hdGlvbjsKKyNlbmRpZgogICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247CiAgICAgfQogfQogCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uo
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBib29sIGlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5n
ZWRGb3JOb2RlKHNjcm9sbGVkTm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpKTsK
K30KKwordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVl
Um9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoYm9vbCBpc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdl
czo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3ND
aGFuZ2VkRm9yTm9kZShyb290U2Nyb2xsaW5nTm9kZUlEKCksIGlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzcykpOworfQorI2VuZGlmCisKIFN0cmluZyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5OjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkgY29uc3QKIHsKICAgICBpZiAobV9zY3JvbGxp
bmdUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgK
aW5kZXggMWE3Njk0M2YyNC4uODExNWU0NzdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01NSw5ICs1NSwxNCBAQCBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eShXZWJQYWdlUHJveHkmKTsK
ICAgICB2aXJ0dWFsIH5SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29s
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlUm9v
dE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoYm9vbCBpc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCisKICAgICAvLyBJbmZvcm0gdGhlIHdlYiBwcm9j
ZXNzIHRoYXQgdGhlIHNjcm9sbCBwb3NpdGlvbiBjaGFuZ2VkIChjYWxsZWQgZnJvbSB0aGUgc2Ny
b2xsaW5nIHRyZWUpCi0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBv
c2l0aW9uLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3Bv
cnRPcmlnaW4sIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwotICAgIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2Rl
SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRT
Y3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4m
IGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uLCBib29sIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uID0gZmFsc2UpOworICAgIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2Rl
SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlKTsKIAog
ICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50TmFtZSwgV2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0OwogCkBAIC04
MCw2ICs4NSw5IEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgUmVxdWVzdGVkU2Nyb2xsSW5mbyB7CiAg
ICAgICAgIGJvb2wgcmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSB7IH07CiAgICAgICAgIGJv
b2wgcmVxdWVzdElzUHJvZ3JhbW1hdGljU2Nyb2xsIHsgfTsKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgICAgICBib29sIHJlcXVlc3RXaXRoQW5pbWF0aW9uIHsgfTsKKyNlbmRpZgogICAg
ICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOwogICAgIH07
CiAgICAgdm9pZCBjb21taXRTY3JvbGxpbmdUcmVlU3RhdGUoY29uc3QgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JUcmFuc2FjdGlvbiYsIFJlcXVlc3RlZFNjcm9sbEluZm8mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdUcmVlLmNwcAppbmRleCBhZmFiYmMxZWFlLi5kNTczYTMxZjA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC0xMDQsMTIgKzEwNCwxNiBAQCB2b2lkIFJlbW90
ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlJgogICAgIGlmIChpczxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
Pihub2RlKSkKICAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4gPSBkb3duY2FzdDxTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKS5sYXlvdXRWaWV3cG9ydCgpLmxvY2F0aW9u
KCk7CiAKLSAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVE
aWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRp
b24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24p
OworICAgIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24gPSBmYWxzZTsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uID0g
bm9kZS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKCkgJiYgIW5vZGUucmVxdWVzdEFu
aW1hdGVkU2Nyb2xsKCk7CisjZW5kaWYKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5j
dXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb24sIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKTsKIH0KIAot
dm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xs
KFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCit2b2lkIFJlbW90ZVNjcm9sbGlu
Z1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5v
ZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIG1fc2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwg
c2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIG1fc2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5v
ZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIHdpdGhB
bmltYXRpb24pOwogfQogCiBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1Ry
ZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpAQCAtMTQzLDYgKzE0NywxMyBAQCBSZWY8U2Nyb2xsaW5n
VHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNj
cm9sbGluZ05vZAogICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRo
aXMsIG5vZGVJRCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVT
Y3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBib29sIGlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9k
ZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIHZvaWQgUmVt
b3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xs
aW5nTm9kZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwp
CiB7CiAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmN1cnJlbnRTbmFwUG9pbnRJbmRp
Y2VzRGlkQ2hhbmdlKG5vZGVJRCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1Ry
ZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmgKaW5kZXggMjNiYWMwNmEzYi4uMGY5ZTA5NDk0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1MiwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYgc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsgfQogCiAgICAgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZSYsIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBXZWJDb3JlOjpT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKLSAgICB2b2lkIHNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2Rl
UmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Ny
b2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSkgb3ZlcnJpZGU7CisKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIHZvaWQgY3Vy
cmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1
bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLmgKaW5kZXggZTYzN2Q2MTUzMi4uMDBiNGRiY2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKQEAgLTU3
LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsRGlkRW5kKCkgY29uc3Q7CiAgICAg
dm9pZCBzY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpIGNvbnN0OwogICAgIHZvaWQgc2Ny
b2xsVmlld0RpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPZmZzZXQs
IGJvb2wgaW5Vc2VySW50ZXJhY3Rpb24pOworICAgIHZvaWQgc2Nyb2xsVmlld0RpZEVuZFNjcm9s
bGluZ0FuaW1hdGlvbigpOwogCiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENo
YW5nZSh1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgY29uc3Q7CiAgICAg
Q0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdldCgp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1MubW0KaW5kZXggZTc2ODk4Mzc1OC4uODQ4ODYzYTgxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5tbQpAQCAtMTUyLDYgKzE1MiwxMSBAQAogICAgIH0KIH0KIAorLSAodm9pZClzY3JvbGxW
aWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7
CisgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxp
bmdBbmltYXRpb24oKTsKK30KKwogI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKIC0gKENHUG9p
bnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRG
b3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9u
IHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRp
b25JblZpZXcgaG9yaXpvbnRhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZl
bG9jaXR5Oihpbm91dCBkb3VibGUgKil2dgogewpAQCAtMzAwLDE1ICszMDUsMzYgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4oY29uc3QgU2Nyb2wKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24pKSB7CiAgICAgICAgIGF1dG8gc2Nyb2xsVHlwZSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSA/IFNj
cm9sbFR5cGU6OlByb2dyYW1tYXRpYyA6IFNjcm9sbFR5cGU6OlVzZXI7Ci0gICAgICAgIHNjcm9s
bGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24oKSwgc2Nyb2xsVHlwZSk7CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkpCisgICAgICAgICAgICBzY3JvbGxp
bmdOb2RlKCkuc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKHRydWUpOworICAgICAgICAvLyBJZiB0
aGUgc2Nyb2xsIHBvc2l0aW9ucyBhcmUgbm90IHRoZSBzYW1lLCB0aGVyZSdzIGEgcG9zc2liaWxp
dHkgdGhhdCB0aGUgc2Nyb2xsIG9mZnNldCBmcm9tIHRoZSBXZWIgcHJvY2VzcyBoYXMgYmVlbiBv
dmVycmlkZGVuLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSBzY3JvbGwgcG9zaXRpb24g
bmVlZCB0byBiZSBzZW50IHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgYm9vbCBzaG91bGRT
eW5jU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsUG9zaXRpb24oKSAh
PSBzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAgIHNjcm9s
bGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24oKSwgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMs
IHNob3VsZFN5bmNTY3JvbGxQb3NpdGlvbik7CiAgICAgfQogfQogCiB2b2lkIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKQog
ewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFtzY3JvbGxWaWV3KCkgc2V0
Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpXTsKLSAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgYm9vbCBhbmltYXRpb25JblByb2dyZXNz
ID0gc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKTsKKyAgICBib29s
IG5lZWRUb1N0b3BBbmltYXRpb24gPSBzY3JvbGxpbmdOb2RlKCkubmVlZHNTdG9wQ3VycmVudFNj
cm9sbEFuaW1hdGlvbigpOworICAgIGlmIChuZWVkVG9TdG9wQW5pbWF0aW9uICYmIGFuaW1hdGlv
bkluUHJvZ3Jlc3MpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAg
ICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxWaWV3KCkuY29udGVudE9m
ZnNldCBhbmltYXRlZDpOT107CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAg
ICB9CisKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZSgpLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKSB7
CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmll
dygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQo
KSBhbmltYXRlZDpZRVNdOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisKKyAg
ICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3ModHJ1ZSk7
CisgICAgfSBlbHNlIGlmICghYW5pbWF0aW9uSW5Qcm9ncmVzcyB8fCBuZWVkVG9TdG9wQW5pbWF0
aW9uKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Ny
b2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxP
ZmZzZXQoKV07CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CiB9CiAK
IHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsV2lsbFN0
YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICszNjEsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQK
ICAgICBzY3JvbGxpbmdOb2RlKCkud2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhzY3Jv
bGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJbnRlcmFjdGlvbiA/IFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb246OlN5bmMgOiBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwogfQog
Cit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdE
aWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKQoreworICAgIGF1dG8mIG5vZGUgPSBzY3JvbGxpbmdO
b2RlKCk7CisgICAgaWYgKCEobm9kZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBub2RlLnNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNj
cm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGUu
c2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5z
aWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAgaWYgKG1f
dXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggOTgwYmZiOWU2OS4uZjExMzVhOTlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzY3LDkgKzE3NjcsMTIgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAgICAgcGFn
ZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNv
bnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNj
cm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNj
cm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIHBhZ2VDbGllbnQo
KS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGlmICh3
aXRoQW5pbWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbFdpdGhBbmlt
YXRpb24oc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgZWxzZQorICAgICAgICBw
YWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsK
IH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQb3NpdGlv
bigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDBjNmJk
MjAyNjQuLjQ2YzYzMTI4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC02MTQsNyArNjE0LDcgQEAgcHVibGljOgogICAgIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQo
KSBjb25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpS
ZWdpb24mKTsKLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4p
OworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3Jv
bGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgYm9vbCB3
aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmll
d1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggZDZjOGMzOGQ0YS4uNTE5OGVmNDQyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAg
LTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQ
cm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsK
ICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
c2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3Jv
bGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBv
dmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGEy
MTI1NjM4NjEuLjEzNjEyZGVhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTk3LDcgKzk3LDEyIEBAIHZvaWQgUGFnZUNsaWVu
dEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
Y29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9zY3JvbGxU
b0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xs
T3JpZ2luXTsKKyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpz
Y3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5PXTsKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4p
Cit7CisgICAgW21fd2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xs
UG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwogfQogCiBX
ZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRpb24oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApp
bmRleCA4ZTY0OTM1NTQ1Li4zZDM0NWQ3NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9v
bCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0No
YW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRh
bCwgdW5zaWduZWQgdmVydGljYWwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2
b2lkIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgor
CiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4
IDJjMDk4YTEwOTcuLjUzN2ZkMzRkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYg
KzI1LDkgQEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAgICBT
Y3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6Rmxv
YXRQb2ludCBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgQ3Vy
cmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIHVuc2ln
bmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1aW50NjRf
dCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQppbmRleCA4MzU0NDFkMzE5Li42
ODlkNTU2MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLm1tCkBAIC0xMDQsNiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoU2Nyb2xs
aW5nCiAgICAgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMobm9kZUlELCBob3Jpem9udGFsLCB2
ZXJ0aWNhbCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2Rl
KFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKQoreworICAgIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9kZUlELCBp
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCA1NjBjMzJjNWFiLi42ZWM0MDM5NTMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTItMTAgIENhdGhpZSBDaGVu
ICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3Jv
bGwgYmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAg
ICAgICAgQWRkIHJ1biB0aW1lIGZsYWcgZm9yIENTU09NVmlld1Ntb290aFNjcm9sbGluZy4KKwor
ICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEhhbmRsZSBDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmcgYnkuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbToKKyAgICAgICAgKFtXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IERpc2FibGUgQ1NT
T01WaWV3U21vb3RoU2Nyb2xsaW5nIGJ5IGRlZmF1bHQuCisgICAgICAgICgtW1dlYlByZWZlcmVu
Y2VzIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRdKTogR2V0dGVyLgorICAgICAgICAo
LVtXZWJQcmVmZXJlbmNlcyBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOl0pOiBT
ZXR0ZXIuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2Vz
Q2hhbmdlZDpdKToKKwogMjAxOS0xMi0xNCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCByZWxlYXNlIGFzc2VydCBmb3Igc2VsZWN0ZWRJbmRleCBpbiBX
ZWJLaXQ6OldlYlBvcHVwTWVudTo6c2hvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCA0NDFi
NWE4Nzc2Li5jNjc5ZmJkNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE4OCw2ICsxODgs
NyBAQAogI2RlZmluZSBXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFZpc3VhbFZpZXdw
b3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJs
ZWQiCiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRNb2Rlcm5NZWRpYUNv
bnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5h
YmxlZCIKICNkZWZpbmUgV2ViS2l0UmVtb3RlUGxheWJhY2tFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdFJlbW90ZVBsYXliYWNrRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0U3VidGxlQ3J5cHRv
RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTdWJ0bGVDcnlwdG9FbmFibGVkIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXgg
NDdmN2M3NWRkYS4uY2QyMzY3NDRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC02NjMsNiArNjYzLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKICAgICAgICAgQFlFUywgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxl
ZFByZWZlcmVuY2VLZXksCisgICAgICAgIEBOTywgV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xs
aW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIEBZRVMsIFdlYktpdE5lZWRzU3RvcmFn
ZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrS2V5LAogICAgICAgICBATk8sIFdlYktpdEFsbG93Q3Jv
c3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzS2V5LAogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCkBAIC0zMTgxLDYgKzMxODIsMTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFz
c0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6
V2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCist
IChCT09MKUNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQKK3sKKyAgICByZXR1cm4gW3Nl
bGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
UHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktl
eTpXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9
CisKIC0gKEJPT0wpd2ViQW5pbWF0aW9uc0VuYWJsZWQKIHsKICAgICByZXR1cm4gW3NlbGYgX2Jv
b2xWYWx1ZUZvcktleTpXZWJLaXRXZWJBbmltYXRpb25zRW5hYmxlZFByZWZlcmVuY2VLZXldOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmgKaW5kZXggNTk3NThlMjMzNS4uMDkxMTkzMWRjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CkBAIC02MzIsNiArNjMyLDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hl
TW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIAogQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBsYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7CiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBhbmltYXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBqYXZhU2NyaXB0TWFya3VwRW5hYmxlZDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA5NjFlMDVjZjFj
Li5jOTg2MjQxNDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCkBAIC0yOTkyLDYgKzI5OTIsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRhaW5XaGls
ZUxvYWRpbmdRdWlyaygpCiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVk
KFtwcmVmZXJlbmNlcyB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5z
ZXRTeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkKFtwcmVmZXJlbmNlcyBzeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZHNFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZF0p
OworICAgIHNldHRpbmdzLnNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoW3ByZWZl
cmVuY2VzIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5z
ZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChbcHJlZmVyZW5jZXMg
bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRdKTsKIAogICAgIHN3aXRj
aCAoW3ByZWZlcmVuY2VzIHN0b3JhZ2VCbG9ja2luZ1BvbGljeV0pIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZwppbmRleCAxZTI5MjUyNDY2Li5mZjA4Y2Y1ZjM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8
Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwg
YmVoYXZpb3IgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA1MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgor
CisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAg
ICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsOiBIYW5kbGUgc21vb3Ro
IHNjcm9sbGluZyBvcHRpb24uCisgICAgICAgICogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6
IERpdHRvLgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDogRGl0dG8uCisgICAgICAgIChX
ZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncyk6CisgICAgICAgIChXZWJQ
cmVmZXJlbmNlczo6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCk6CisgICAgICAgIChX
ZWJQcmVmZXJlbmNlczo6c2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCk6CisgICAg
ICAgICogV2ViUHJlZmVyZW5jZXMuaDogRGl0dG8uCisgICAgICAgICogV2ViVmlldy5jcHA6IERp
dHRvLgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAx
OS0xMi0xMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVm
YWN0b3IgU2NyaXB0Q29udHJvbGxlcidzIHByb2xpZmVyYXRpb24gb2YgRXhjZXB0aW9uRGV0YWls
cyouCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNl
cy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAppbmRleCBhNzE3NjIyMjFiLi5jY2ZmOWYwNTk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFj
ZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKQEAgLTIyMyw2ICsyMjMsOCBAQCBpbnRlcmZh
Y2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTYgOiBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNQogICAg
IEhSRVNVTFQgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsK
ICAgICBIUkVTVUxUIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW291dCwgcmV0dmFsXSBC
T09MKik7CiAgICAgSFJFU1VMVCBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtpbl0g
Qk9PTCBlbmFibGVkKTsKKyAgICBIUkVTVUxUIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQoW291dCwgcmV0dmFsXSBCT09MKik7CisgICAgSFJFU1VMVCBzZXRDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIGZldGNoQVBJ
S2VlcEFsaXZlRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqIGVuYWJsZWQpOwogICAgIEhSRVNV
TFQgc2V0RmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBI
UkVTVUxUIHNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wgKmVuYWJs
ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAppbmRleCAwOTkzNzQyMGU0Li4wOGM0NTY3MjdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMjA5LDYgKzIw
OSw3IEBACiAjZGVmaW5lIFdlYktpdFNlcnZlclRpbWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJX
ZWJLaXRTZXJ2ZXJUaW1pbmdFbmFibGVkIgogCiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkIgorI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJl
ZmVyZW5jZUtleSAiV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIKIAogI2Rl
ZmluZSBXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRSZXNp
emVPYnNlcnZlckVuYWJsZWQiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVu
Y2VzLmNwcAppbmRleCA5NWViZWEyNjhjLi5jOGUyMjVhYTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0zMzksNiArMzM5LDggQEAgdm9pZCBXZWJQ
cmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rpb25h
cnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJl
ZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKKyAgICBDRkRpY3Rpb25hcnlBZGRWYWx1
ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFBy
ZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOworCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFs
dWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdENvcmVNYXRoTUxFbmFibGVkUHJlZmVyZW5jZUtleSks
IGtDRkJvb2xlYW5GYWxzZSk7CiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywg
Q0ZTVFIoV2ViS2l0UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NG
Qm9vbGVhbkZhbHNlKTsKQEAgLTIyODMsNiArMjI4NSwyMCBAQCBIUkVTVUxUIFdlYlByZWZlcmVu
Y2VzOjpzZXRDb3JlTWF0aE1MRW5hYmxlZChCT09MIGVuYWJsZWQpCiAgICAgcmV0dXJuIFNfT0s7
CiB9CiAKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAg
IHJldHVybiBFX1BPSU5URVI7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVy
biBTX09LOworfQorCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkKEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQpOwor
ICAgIHJldHVybiBTX09LOworfQorCiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpyZXF1ZXN0SWRs
ZUNhbGxiYWNrRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQogewogICAgIGlmICghZW5hYmxl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDFkYWFhNzMw
MjUuLjYwNjZlNDY0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMu
aApAQCAtMjcxLDYgKzI3MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
KF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChCT09MKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChfT3V0XyBC
T09MKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldENTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIGZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEZldGNoQVBJS2VlcEFsaXZlRW5h
YmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc3BhdGlh
bE5hdmlnYXRpb25FbmFibGVkKF9PdXRfIEJPT0wqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAKaW5kZXggZTcyZWE0M2VkYi4uMTgwMGUwNDcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAKQEAgLTUzMTgsNiArNTMxOCwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlm
eVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAg
ICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkKCEhZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZzUHJpdmF0ZS0+Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAg
IHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkKCEhZW5hYmxlZCk7CisKICAgICBociA9IHByZWZlcmVuY2VzLT5wcml2YXRlQnJvd3NpbmdF
bmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhy
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg3
YzcyMjU1NDcuLjQ4ZTMzMDhjYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOS0xMi0xMCAgQ2F0aGllIENoZW4g
IDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9s
bCBiZWhhdmlvciBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDUwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcu
CisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFRlc3RPcHRp
b25zOjpUZXN0T3B0aW9ucyk6IFBhcnNlIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQu
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaDogQWRkIENTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWQsIGRpc2FibGVkIGJ5IGRlZmF1bHQuCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoc2V0V2ViUHJlZmVy
ZW5jZXNGb3JUZXN0T3B0aW9ucyk6IFNldCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
IGZyb20gdGhlIHRlc3Qgb3B0aW9ucy4KKwogMjAxOS0xMi0xMyAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggdGhlIG1hY0Nh
dGFseXN0IGJ1aWxkIGFmdGVyIHIyNTM0ODYKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNw
cAppbmRleCA3YzlhZTU5OTRhLi4yMzdjOTg4NzhmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuY3BwCkBAIC0xNDIsNiArMTQyLDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNv
bnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUKICAg
ICAgICAgICAgIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBwYXJzZUJvb2xlYW5UZXN0SGVh
ZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpS
ZXNpemVPYnNlcnZlckVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlUmVzaXplT2JzZXJ2ZXIg
PSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIikKKyAg
ICAgICAgICAgIGVuYWJsZUNTU09NVmlld1Ntb290aFNjcm9sbGluZyA9IHBhcnNlQm9vbGVhblRl
c3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVu
dGFsOkNvcmVNYXRoTUxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZUNvcmVNYXRoTUwgPSBw
YXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkg
PT0gImV4cGVyaW1lbnRhbDpSZXF1ZXN0SWRsZUNhbGxiYWNrRW5hYmxlZCIpCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuaAppbmRleCBlNTMzNWU4MzExLi5mN2U4ZDI5MTFkIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTUwLDYgKzUwLDcgQEAgc3RydWN0IFRlc3RPcHRpb25z
IHsKICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAgIGJvb2wgYWRDbGlj
a0F0dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVSZXNpemVPYnNl
cnZlciB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcg
eyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlQ29yZU1hdGhNTCB7IGZhbHNlIH07CiAgICAgYm9v
bCBlbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUFz
eW5jQ2xpcGJvYXJkQVBJIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQppbmRleCBjY2ZmZTA1NWQzLi42N2NhZWE3MThkIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMDI5LDYgKzEwMjksNyBAQCBz
dGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RPcHRp
b25zJiBvcHRpb25zKQogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0aW9u
cy5lbmFibGVDU1NMb2dpY2FsOwogICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlvbkVu
YWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CiAgICAgcHJlZmVyZW5j
ZXMucmVzaXplT2JzZXJ2ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXNpemVPYnNlcnZlcjsK
KyAgICBwcmVmZXJlbmNlcy5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkID0gb3B0aW9u
cy5lbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmc7CiAgICAgcHJlZmVyZW5jZXMuY29yZU1h
dGhNTEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNvcmVNYXRoTUw7CiAgICAgcHJlZmVyZW5jZXMu
cmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJlcXVlc3RJZGxlQ2Fs
bGJhY2s7CiAgICAgcHJlZmVyZW5jZXMuYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkID0gb3B0aW9u
cy5lbmFibGVBc3luY0NsaXBib2FyZEFQSTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385723</attachid>
            <date>2019-12-15 09:14:16 -0800</date>
            <delta_ts>2020-01-19 22:22:42 -0800</delta_ts>
            <desc>native-animation-for-review</desc>
            <filename>upload_44.diff</filename>
            <type>text/plain</type>
            <size>151526</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNWYxYjBhYmQ3Li5iODY2YTM0MGUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIw
MTktMTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwg
aW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5n
LgorCisgICAgICAgIFRoZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0g
aXMgYmFzZWQgb24gQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5j
IHNjcm9sbCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJl
Zm9yZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0
byBmYXN0L3Njcm9sbGluZy9pb3MvLCB0aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xs
LWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAgICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAg
ICAod2FpdEZvclNjcm9sbEVuZCk6CisgICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNj
cm9sbFdpbmRvdyk6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1m
cmFtZS1yb290Lmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2
aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sLgorCiAyMDE5LTEyLTEwICBDYXRoaWUgQ2hlbiAgPGNh
dGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJl
aGF2aW9yIHJlbGllcyBvbiBTY3JvbGxBbmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1i
ZWhhdmlvci5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Ny
b2xsLWJlaGF2aW9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBh
MDk2OGUwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcwpAQCAtMCwwICsxLDg3IEBACitmdW5jdGlv
biBvYnNlcnZlU2Nyb2xsaW5nKGVsZW1lbnRzLCBjYWxsYmFjaykgeworICBpZiAoIUFycmF5Lmlz
QXJyYXkoZWxlbWVudHMpKQorICAgICAgZWxlbWVudHMgPSBbZWxlbWVudHNdOworICB2YXIgbGFz
dENoYW5nZWRGcmFtZSA9IDA7CisgIHZhciBsYXN0TGVmdCA9IG5ldyBNYXAoKTsKKyAgdmFyIGxh
c3RUb3AgPSBuZXcgTWFwKCk7CisgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAg
ICBsYXN0TGVmdC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICBsYXN0VG9w
LnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbFRvcCk7CisgIH0pOworICBmdW5jdGlvbiB0aWNr
KGZyYW1lcykgeworICAgIC8vIFdlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIDUw
MCBmcmFtZXMgb3IgdW50aWwgMjAgZnJhbWVzIHdpdGgKKyAgICAvLyBubyBjaGFuZ2UgaGF2ZSBi
ZWVuIG9ic2VydmVkLgorICAgIGlmIChmcmFtZXMgPj0gNTAwIHx8IGZyYW1lcyAtIGxhc3RDaGFu
Z2VkRnJhbWUgPiAyMCkgeworICAgICAgY2FsbGJhY2sodHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgIHZhciBzY3JvbGxIYXBwZW5lZCA9IGVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IHsKKyAg
ICAgICAgcmV0dXJuIGVsZW1lbnQuc2Nyb2xsTGVmdCAhPSBsYXN0TGVmdC5nZXQoZWxlbWVudCkg
fHwgZWxlbWVudC5zY3JvbGxUb3AgIT0gbGFzdFRvcC5nZXQoZWxlbWVudCk7CisgICAgICB9KTsK
KyAgICAgIGlmIChzY3JvbGxIYXBwZW5lZCkgeworICAgICAgICBsYXN0Q2hhbmdlZEZyYW1lID0g
ZnJhbWVzOworICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7CisgICAgICAg
ICAgbGFzdExlZnQuc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsTGVmdCk7CisgICAgICAgICAg
bGFzdFRvcC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOworICAgICAgICB9KTsKKyAg
ICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgfQorICAgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKHRpY2suYmluZChudWxsLCBmcmFtZXMgKyAxKSk7CisgICAgfQorICB9CisgIHRpY2soMCk7
Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JTY3JvbGxFbmQoZWxlbWVudHMpIHsKKyAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywg
KGRvbmUpID0+IHsKKyAgICAgIGlmIChkb25lKQorICAgICAgICByZXNvbHZlKCk7CisgICAgfSk7
CisgIH0pOworfQorCitmdW5jdGlvbiByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KSB7Cisg
IC8vIFRyeSB2YXJpb3VzIG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlz
IHJlc2V0IGltbWVkaWF0ZWx5LgorICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOwor
ICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rp
b24gcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KSB7CisgIC8vIFRyeSB2YXJp
b3VzIG1ldGhvZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVk
aWF0ZWx5LgorICBzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0ID0gMDsKKyAgc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wID0gMDsKKyAgc2Nyb2xsaW5nV2luZG93LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAw
LCBiZWhhdmlvcjogImluc3RhbnQifSk7Cit9CisKK2Z1bmN0aW9uIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsIGNsYXNzTmFtZSkgeworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5y
ZW1vdmUoImF1dG9CZWhhdmlvciIsICJzbW9vdGhCZWhhdmlvciIpOworICBzdHlsZWRFbGVtZW50
LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZp
b3IpCisgICAgYXJncy5iZWhhdmlvciA9IGJlaGF2aW9yOworICBzd2l0Y2ggKHNjcm9sbEZ1bmN0
aW9uKSB7CisgICAgY2FzZSAic2Nyb2xsSW50b1ZpZXciOgorICAgICAgYXJncy5pbmxpbmUgPSAi
c3RhcnQiOworICAgICAgYXJncy5ibG9jayA9ICJzdGFydCI7CisgICAgICBlbGVtZW50VG9SZXZl
YWwuc2Nyb2xsSW50b1ZpZXcoYXJncyk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg
ICAgYXJncy5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVmdDsKKyAgICAgIGFyZ3MudG9wID0gZWxl
bWVudFRvUmV2ZWFsVG9wOworICAgICAgc2Nyb2xsaW5nRWxlbWVudFtzY3JvbGxGdW5jdGlvbl0o
YXJncyk7CisgICAgICBicmVhazsKKyAgfQorfQorCitmdW5jdGlvbiBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZp
b3IpCisgICAgYXJncy5iZWhhdmlvciA9IGJlaGF2aW9yOworICBhcmdzLmxlZnQgPSBlbGVtZW50
VG9SZXZlYWxMZWZ0OworICBhcmdzLnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgc2Nyb2xs
aW5nV2luZG93W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1k
ZWZhdWx0LWNzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMC4uOGQ0Y2E2NDE1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorCitQQVNTIEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBk
ZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKK1BBU1MgU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVt
ZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1j
c3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zNWM2NTAzYWIy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0Vu
YWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1ZSBvZiBzY3JvbGwt
YmVoYXZpb3I8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpm
d2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9s
bGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2
aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93
OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICB9Cis8L3N0
eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFz
cz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAw
MHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgor
ICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVp
Z2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlz
cGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBo
ZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2
PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZh
ciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0g
MjUwOworICB2YXIgc2Nyb2xsRnVuY3Rpb24gPSAic2Nyb2xsIjsKKworICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICB9
LCAiSW5zdGFudCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJl
aGF2aW9yIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVt
ZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMC4uNTNhOTYxZWY1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzNiBAQAorCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZh
dWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhh
dmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmll
dygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQg
d2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kMzhkZmZkZWNlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVt
ZW50Lmh0bWwKQEAgLTAsMCArMSwxNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgor
PHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xs
KiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIGFuIGVsZW1lbnQ8L3RpdGxlPgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOp
ZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYt
c2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAg
LnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAg
ICBoZWlnaHQ6IDIwMHB4OworICB9CisgIC5hdXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhh
dmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlv
cjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBp
ZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRo
OiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1
ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVu
dFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjog
LTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9z
cGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQg
PSBvdmVyZmxvd05vZGU7CisgIHZhciBzdHlsZWRFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2
YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9
IDI1MDsKKworICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRv
VmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2
ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
IHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Jg
KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxp
bmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRv
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVt
ZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVz
ZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1l
ZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAw
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3Rh
bnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAg
IH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdF
bGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAy
KTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwg
IkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGgg
YW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQi
LCAwLCAwKTsKKyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIGFuIGVsZW1lbnQgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTdjYWVhMjdiYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFp
bi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgUGFnZSBs
b2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRv
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRv
VmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9y
IAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4g
ZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQg
c2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kMzI1YjRiOWUyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXJvb3QuaHRtbApAQCAtMCwwICsxLDE2OSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVu
dC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJh
bWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0Bp
Z2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cu
b3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1i
b3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpz
Ij48L3NjcmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5h
dXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3Ro
QmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgor
PGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9S
ZXZlYWwiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsg
d2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwv
ZGl2PgorPHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRl
ZCIpOworICB2YXIgc2Nyb2xsaW5nRWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIHBhZ2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xs
aW5nRWxlbWVudCA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVu
dCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0
aCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRoKSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50
LnN0eWxlLmhlaWdodCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAg
ICBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAg
ICBlbGVtZW50VG9SZXZlYWxUb3AgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAg
ICBlbGVtZW50VG9SZXZlYWwuc3R5bGUubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgi
OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAi
cHgiOworCisgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsgfSk7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3Jv
bGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7Cisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0
aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0
b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAg
ICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNz
X3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVt
ZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAg
ICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRU
b1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5n
RWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOwor
CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJl
aGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgi
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
IH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBt
YWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM4MjM4NWFhYjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisKK1BB
U1MgUGFnZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBB
Ym9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdp
bmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjkwNTdiMGNk
MTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09N
Vmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Nj
cm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycg
YmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBvbiB0aGUgd2luZG93IG9mIHRoZSBtYWluIGZy
YW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2Fs
ZT0xLGluaXRpYWwtc2NhbGU9MSI+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6ly
aWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3Jv
bGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5
IHsKKyAgICBtYXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJl
aGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2
aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2
IGlkPSJwYWdlQ29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9w
OiAwOyI+CisgIDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxv
YWRlZCA9IGFzeW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdXaW5kb3cs
IHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsK
KyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19k
b25lKGZ1bmN0aW9uKCkgeworICAgIHNjcm9sbGluZ1dpbmRvdyA9IHdpbmRvdzsKKyAgICBzdHls
ZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50LnN0
eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJweCI7CisgICAgcGFn
ZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYgKyAi
cHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkg
KiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkg
KiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVm
dCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1JldmVh
bFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlc2V0
U2Nyb2xsRm9yV2luZG93KHdpbmRvdyk7IH0pOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8i
LCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhh
dmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7Cisg
ICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxs
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOwor
ICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7Cisg
ICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93
LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5k
b3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBv
ZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhh
dmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9s
bEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRv
dy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5n
V2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24s
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
ICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7Cisg
ICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3co
c2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQs
ICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21v
b3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNj
cm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVu
dFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7
CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7
CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3Jv
bGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xs
aW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50
aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9u
IHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDQz
YTgyMGU1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVtZW50cyB3
aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNj
cm9sbGludG92aWV3LW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAuLjQ1YjVkOGQ3YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCkBA
IC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJu
YWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rp
bmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3Igd2l0aCBzY3JvbGxJbnRvVmlldyBmb3IgbmVzdGVk
IHNjcm9sbGluZyBub2RlczwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAg
b3ZlcmZsb3c6IGF1dG87CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuc21vb3RoQmVoYXZp
b3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9CisgIC5ncmFkaWVudCB7Cisg
ICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7CisgIH0K
Kzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2PgorICA8ZGl2IGNsYXNzPSJz
Y3JvbGxhYmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQ1MHB4Ij4KKyAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3
aWR0aDogNDAwcHgiPgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDog
MTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFi
bGUiIHN0eWxlPSJ3aWR0aDogMzUwcHgiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIg
c3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICA8ZGl2
IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDMwMHB4Ij4KKyAgICAgICAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0
eWxlPSJ3aWR0aDogMjUwcHgiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0
eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMjAwcHgiPgorICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBw
eDsiPjwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxl
PSJ3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2Pgor
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsg
aGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsi
PjwvZGl2PgorICAgICAgICAgIDwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50
IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhl
aWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3Jh
ZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8
L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIFRoZSBDU1NPTS1WaWV3IHNw
ZWMgYW5kIGltcGxlbWVudGF0aW9ucyBmb2xsb3cgZGlmZmVyZW50IGFsZ29yaXRobXMgKHNjcm9s
bHMgcGVyZm9ybWVkIGluIHBhcmFsbGVsLCBhcyBpbm5lci10by1vdXRlciBzZXF1ZW5jZSBvciBh
cyBvdXRlci10by1pbm5lciBzZXF1ZW5jZSkuCisgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20v
dzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMzEyNworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZh
ciBkaXZzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNjcm9sbGFibGUiKTsKKyAgICAg
IGRpdnMuZm9yRWFjaCgoc2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICByZXNldFNjcm9sbChz
Y3JvbGxhYmxlRGl2KTsKKyAgICAgIH0pOworICAgICAgZWxlbWVudFRvUmV2ZWFsLnNjcm9sbElu
dG9WaWV3KHtpbmxpbmU6ICJzdGFydCIsIGJsb2NrOiAic3RhcnQiLCBiZWhhdmlvcjogImF1dG8i
fSk7CisgICAgICB2YXIgc2Nyb2xsVG9wID0gbmV3IE1hcCgpOworICAgICAgdmFyIGlzU21vb3Ro
ID0gbmV3IE1hcCgpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7Cisg
ICAgICAgIHNjcm9sbFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3JvbGxU
b3ApOworICAgICAgICBpc1Ntb290aC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5j
bGFzc0xpc3QuY29udGFpbnMoInNtb290aEJlaGF2aW9yIikpOworICAgICAgICAvLyBJZiBzY3Jv
bGwgb3BlcmF0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgc2Nyb2xsIGJveGVz
IHdpdGggaW5zdGFudCBiZWhhdmlvciBtaWdodCBhbHNvIG5lZWQgdG8gd2FpdCBmb3IgdGhlaXIg
cHJlZGVjZXNzb3JzLgorICAgICAgICBpZiAoaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQor
ICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsVG9wLmdldChzY3JvbGxhYmxlRGl2KSwg
NTAwLCAiRWxlbWVudCB3aXRoIHNtb290aCBiZWhhdmlvciBzaG91bGQgbm90IHNjcm9sbCBpbW1l
ZGlhdGVseSIpOworICAgICAgfSk7CisKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcoQXJyYXkuZnJv
bShkaXZzKSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgIGRpdnMu
Zm9yRWFjaCgoc2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhh
bl9lcXVhbChzY3JvbGxUb3AuZ2V0KHNjcm9sbGFibGVEaXYpLCBzY3JvbGxhYmxlRGl2LnNjcm9s
bFRvcCwgIlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICBpZiAoIWlz
U21vb3RoLmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAgICAgICAgYXNzZXJ0X2FueShhc3Nl
cnRfZXF1YWxzLCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgWzAsIDUwMF0sICJFbGVtZW50IHdp
dGggaW5zdGFudCBiZWhhdmlvciBzaG91bGQganVtcCB0byB0aGUgZmluYWwgcG9zaXRpb24iKTsK
KyAgICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGFibGVEaXYuc2Nyb2xsVG9wLCA1MDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAg
ICAgICAgICAgIHNjcm9sbFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURpdi5zY3Jv
bGxUb3ApOworICAgICAgICAgIH0pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICBy
ZWplY3QoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH0sICJzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3Rl
ZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODU1YTZhNjEwZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIFNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwg
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwg
MjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNj
cm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNj
cm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkg
dG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3
aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5n
IHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAg
CitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcg
ZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Ny
b2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1
MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlv
bnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAo
NTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4g
cGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNp
bmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBz
Y3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcg
c21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xs
SW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290
aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbElu
dG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGgg
c2Nyb2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBTY3JvbGwgcG9z
aXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW4gaW5zdGFudCBz
Y3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMGE0MWI4YjA4ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21v
b3RoLXBvc2l0aW9ucy5odG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbCBwb3NpdGlvbnMgd2hlbiBzY3JvbGxpbmcg
YW4gZWxlbWVudCB3aXRoIHNtb290aCBiZWhhdmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1l
b3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6ly
aWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3Jv
bGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Ny
b2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhl
aWdodDogMjAwcHg7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+
Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJz
Y3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7
IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAg
PHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6
IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdo
dDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8
c2NyaXB0PgorICAvLyBGb3Igc21vb3RoIGJlaGF2aW9yLCBldm9sdXRpb24gb2Ygc2Nyb2xsIHBv
c2l0aW9ucyBvdmVyIHRpbWUgaXMgbm90IHNwZWNpZmllZCBieSBDU1NPTSBWaWV3LgorICAvLyBU
aGlzIHRlc3QgcmVsaWVzIG9uIHRoZSBtaW5pbWFsIGFzc3VtcHRpb24gdGhhdCBzY3JvbGwgcG9z
aXRpb24gZnVuY3Rpb25zIGFyZSBtb25vdG9uaWMuCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwg
InNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaChmdW5jdGlvbihzY3JvbGxGdW5j
dGlvbikgeworICAgIFt7bGVmdDowLCB0b3A6MH0sIHtsZWZ0OjEwMDAsIHRvcDowfSwge2xlZnQ6
MCwgdG9wOjUwMH0sIHtsZWZ0OjEwMDAsIHRvcDo1MDB9XS5mb3JFYWNoKChpbml0aWFsKSA9PiB7
CisgICAgICB2YXIgZmluYWxMZWZ0ID0gNTAwOworICAgICAgdmFyIGZpbmFsVG9wID0gMjUwOwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dO
b2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCBpbml0aWFsLmxlZnQsIGluaXRpYWwudG9wKTsKKyAg
ICAgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAg
IHZhciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMob2xkTGVmdCwgaW5pdGlhbC5sZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgYmUgYXQgaW5p
dGlhbCBwb3NpdGlvbiIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCBpbml0aWFs
LnRvcCwgIlNjcm9sbFRvcCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIpOworICAgICAg
ICAgIGlmIChzY3JvbGxGdW5jdGlvbiA9PT0gInNjcm9sbEJ5IikKKyAgICAgICAgICAgIHNjcm9s
bE5vZGUob3ZlcmZsb3dOb2RlLCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCAt
IGluaXRpYWwubGVmdCwgZmluYWxUb3AgLSBpbml0aWFsLnRvcCk7CisgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0aW9uLCAic21v
b3RoIiwgZmluYWxMZWZ0LCBmaW5hbFRvcCk7CisgICAgICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhv
dmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAg
ICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICBh
c3NlcnRfbGVzc190aGFuX2VxdWFsKE1hdGguaHlwb3QoZmluYWxMZWZ0IC0gbmV3TGVmdCwgZmlu
YWxUb3AgLSBuZXdUb3ApLCBNYXRoLmh5cG90KGZpbmFsTGVmdCAtIG9sZExlZnQsIGZpbmFsVG9w
IC0gb2xkVG9wKSwgIlNjcm9sbCBwb3NpdGlvbiBzaG91bGQgbW92ZSB0b3dhcmRzIHRoZSBmaW5h
bCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobmV3TGVmdCwgZmluYWxMZWZ0LCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVh
Y2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1Rv
cCwgZmluYWxUb3AsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7Cisg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAg
ICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAg
ICAgICAgICByZWplY3QoZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZG9uZSkK
KyAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAg
ICAgIH0sIGBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5n
IGZyb20gKCR7aW5pdGlhbC5sZWZ0fSwgJHtpbml0aWFsLnRvcH0pIHRvICgke2ZpbmFsTGVmdH0s
ICR7ZmluYWxUb3B9KSB1c2luZyAke3Njcm9sbEZ1bmN0aW9ufSgpIGApOworICAgIH0pOworICB9
KTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7
CisgICAgICB2YXIgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBzY3Jv
bGxEaXJlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93
Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxU
b3A7CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhvbGRUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAi
c21vb3RoIiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2Rl
LCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQg
PSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZs
b3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoaW5pdGlhbFNjcm9sbEFib3J0ZWQpIHsK
KyAgICAgICAgICAgIGlmIChzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkKSB7CisgICAgICAgICAgICAg
IGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQg
a2VlcHMgZGVjcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2Vx
dWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGRlY3JlYXNpbmciKTsKKyAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICBzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkID0gbmV3
TGVmdCA8PSBvbGRMZWZ0ICYmIG5ld1RvcCA8PSBvbGRUb3A7CisgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBuZXdMZWZ0LCAi
U2Nyb2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNz
X3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVhc2luZyIp
OworICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4gNTAwKSB7Cisg
ICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAgICAgICAgICAg
ICAgIGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzY3JvbGxO
b2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCA1MDAsIDI1MCk7CisgICAgICAg
ICAgICAgICAgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAg
ICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24i
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hv
dWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAgICAgIG9sZExl
ZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgfSBjYXRj
aChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAgIGlmIChkb25l
KQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9LCAiU2Nyb2xs
IHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIg
c21vb3RoIHNjcm9sbGluZyIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgcmVzZXRTY3Jv
bGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IGZhbHNl
OworICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgIHZh
ciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFscyhv
bGRMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNjcm9s
bE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7CisgICAg
ICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAg
ICB0cnkgeworICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7
CisgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAg
ICAgaWYgKCFpbml0aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfbGVz
c190aGFuX2VxdWFsKG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNp
bmciKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1Rv
cCwgIlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdM
ZWZ0ID4gMTAwMCAmJiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0
aGUgaW5pdGlhbCBzY3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQg
PSB0cnVlOworICAgICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xs
IiwgImluc3RhbnQiLCA1MDAsIDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVmdCA9IG92ZXJm
bG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9k
ZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAs
ICJTY3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZp
bmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAg
aWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Ny
b2xsTGVmdCBzaG91bGQgc3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgc3RheSBhdCBmaW5hbCBw
b3NpdGlvbiIpOworICAgICAgICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAg
ICAgICAgICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAg
IHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBh
Ym9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yNzk5ZmRjYzI5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhh
dmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1Mg
aWZyYW1lIGxvYWRlZCAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
VG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1
YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJh
bWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxp
bmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMC4uOTZkMTFhYjk2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5o
dG1sCkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUg
IGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5
bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xs
T3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9y
IG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIg
Y29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdh
bmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJl
aGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rp
dj4KKzxpZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIg
c3JjZG9jPSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAg
bWFyZ2luOiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhh
dmlvcjogYXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1i
ZWhhdmlvcjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBz
dHlsZT0nd2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1n
cmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxh
eTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNw
YW4gaWQ9J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVy
dGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5k
OiBibGFjazsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lm
cmFtZT4KKzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFt
ZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxlZEVsZW1lbnQsIGVsZW1l
bnRUb1JldmVhbDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVt
ZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlmcmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdF
bGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAg
ICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9s
bFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rp
b24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
c2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOwor
ICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1
bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1l
bnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlv
cmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChz
Y3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNj
cm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0p
OworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9s
bEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJl
aGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKwor
ICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAg
ICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVu
Y3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3Nl
cnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgU3Vi
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Ny
b2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZl
YWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9
LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUt
d2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwLi4wNWViMzI3MmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5k
b3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFt
ZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2lu
ZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMzMzNkNjRmODUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1l
LXdpbmRvdy5odG1sCkBAIC0wLDAgKzEsMTcxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50
ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rp
bmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xs
LWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOp
ZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYt
c2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9Imxv
ZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0
PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkg
eworICAgICAgbWFyZ2luOiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNj
cm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAg
IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+Cisg
ICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHls
ZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48
L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1i
bG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBi
YWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1s
PiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rl
c3QoImlmcmFtZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVu
dCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAg
dmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAgaWZyYW1lTm9kZS5hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgIHNj
cm9sbGluZ1dpbmRvdyA9IGlmcmFtZU5vZGUuY29udGVudFdpbmRvdzsKKyAgICBzdHlsZWRFbGVt
ZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVs
ZW1lbnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJlbGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9s
bEJ5Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7Cisg
ICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Ny
b2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsK
KworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Ny
b2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIp
OworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3Jg
KTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JX
aW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVk
RWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
c2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAg
ICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAg
ICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVy
biB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9
KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGlu
Z1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7Cisg
ICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5k
b3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVh
bFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0s
ICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUg
d2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93
KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRv
dywgInNjcm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9s
bEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9
PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9
KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7CisKKyAgfSkpOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMTNmZTY5NzlkMS4uMmY3MzNmMDFkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY0IEBACisyMDE5LTEyLTExICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBu
YXRpdmUgc2Nyb2xsIGludGVyZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZy
w6lkw6lyaWMgV2FuZy4KKworICAgICAgICBUaGlzIHBhdGNoIHN1cHBvcnQgbmF0aXZlIHNjcm9s
bCBhbmltYXRpb24gb24gaU9TIHBsYXRmb3JtLiBJdCByZWxpZXMgb24gVUlTY3JvbGxWaWV3J3MK
KyAgICAgICAgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gc3VwcG9ydCBhbmQgaXMgZXhlY3V0ZWQg
aW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3cuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1i
ZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9v
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXdpbmRvdy5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6
IFJlcXVlc3RzIGEgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gYnkgY2FsbGluZyBhbmltYXRlZCBy
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKS4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6IEFkZCBhIGZs
YWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAg
ICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyk6IFVwZGF0ZSB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMgZnJvbSB0
aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKTogQWRkIG1fcmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb25XaXRoQW5pbWF0aW9uIHRvIGluZGljYXRlIGl0J3MgYW5pbWF0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0
aEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1Ry
ZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogVXBkYXRlIHRoZSBz
Y3JvbGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBBZGQgYSBmbGFnIHRvIGluZGljYXRl
IGlmIHRoaXMgaXMgYW4gYW5pbWF0ZWQgc2Nyb2xsIG9yIG5vdC4KKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTog
QWRkIGEgZmxhZyB0byBpbmRpY2F0ZSB0aGUgc2Nyb2xsIGlzIGFuaW1hdGVkIG9yIG5vdC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyk6IElm
IG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24gaXMgdHJ1ZSwgc2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9u
IHRvIHRoZSBXZWIgcHJvY2VzcywgZXZlbiBpZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGRvZXNuJ3Qg
Y2hhbmdlLgorICAgICAgICBNYWludGFpbiB0aGUgc3RhdHVzIG9mIG1fc3RvcFNjcm9sbEFuaW1h
dGlvbiBhbmQgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6IEFu
aW1hdGVkIHNjcm9sbCB3b24ndCBjaGFuZ2UgdGhlIHNjcm9sbCBwb3NpdGlvbiBpbW1lZGlhdGVs
eSwgc28gZG9uJ3Qgbm90aWZ5IHRoZSBzY3JvbGxpbmcgaW5mbyBub3cuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xs
KTogbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgaW5kaWNhdGVzIHRoYXQgdGhpcyBpcyBhbiBhbmlt
YXRlZCBzY3JvbGwgcmVxdWVzdC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgY29uc3QpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKTogTWFpbnRhaW4gdGhlIHNjcm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKTogSWYgdGhl
IE5vZGUgaXMgcGVyZm9ybWluZyBhIHNjcm9sbCBhbmltYXRpb24sIHRoZSBwcmV2aW91cyBzY3Jv
bGwgYW5pbWF0aW9uIHNob3VsZCBzdG9wIGZpcnN0LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24gY29u
c3QpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZS5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6IEFkZCBTY3JvbGxC
ZWhhdmlvclR5cGUgdG8gaW5kaWNhdGUgaXQncyBpbnN0YW50IG9yIHNtb290aCBzY3JvbGwuCisg
ICAgICAgIEFkZCBTY3JvbGxCZWhhdmlvclN0YXR1cyB0byBpbmRpY2F0ZSB0aGUgc3RhdHVzIG9m
IHNjcm9sbGluZy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKTogVXBkYXRlIFNjcm9sbEJl
aGF2aW9yVHlwZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEpOiBBZGQgbV9jdXJy
ZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVh
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6Y3VycmVudFNjcm9sbEJlaGF2
aW9yVHlwZSBjb25zdCk6IE1haW50YWluIGN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlw
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldCk6IFNlbmQgYSBxdWVzdCBvZiBuYXRpdmUg
c2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0V2l0
aEFuaW1hdGlvbik6IFJlcXVlc3RzIGEgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gYnkgY2FsbGlu
ZyBhbmltYXRlZCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKS4KKwogMjAxOS0xMi0xMCAg
Q2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBX
ZWIgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDkzOWNlNGJlZTIuLjcz
MWUzMjI5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTM2NjgsNiArMzY2OCwx
NCBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNj
cm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGxUeQogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBl
ID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxU
eXBlKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJ
TkcpCisgICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6
OlNtb290aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3Np
dGlvbkZyb21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUo
cHJldmlvdXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAg
ICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5j
ZWxBbmltYXRpb25zKCk7CiAgICAgaWYgKG9mZnNldCAhPSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNDI5ZWVlOWE5Ni4uMDJkNTg5NzU3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5jcHAKQEAgLTI0OCw3ICsyNDgsMTYgQEAgYm9vbCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEm
IHNjcm8KIAogICAgIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgp
LmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJh
Y2tGb3J3YXJkQ2FjaGU7CiAgICAgYm9vbCBpblByb2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbGFi
bGVBcmVhLmN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwot
ICAgIGlmIChpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGUpCisKKyAg
ICBib29sIHVwZGF0ZVNjcm9sbFBvc2l0aW9uID0gaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5C
YWNrRm9yd2FyZENhY2hlOworCisgICAgYm9vbCBhbmltYXRlZCA9IGZhbHNlOworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgYW5pbWF0ZWQgPSBzY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Ny
b2xsQmVoYXZpb3JUeXBlKCkgPT0gU2Nyb2xsQmVoYXZpb3JUeXBlOjpTbW9vdGg7CisgICAgLy8g
VGhlIHNjcm9sbCBwb3NpdGlvbiBvZiBhbmltYXRlZCBzY3JvbGxpbmcgd2lsbCBiZSBzZXQgYnkg
dGhlIFVJIHByb2Nlc3MuIFNvIHNob3VsZG4ndCBzZXQgaXQgbm93LgorICAgIHVwZGF0ZVNjcm9s
bFBvc2l0aW9uID0gIWFuaW1hdGVkICYmIHVwZGF0ZVNjcm9sbFBvc2l0aW9uOworI2VuZGlmCisg
ICAgaWYgKHVwZGF0ZVNjcm9sbFBvc2l0aW9uKQogICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlv
bkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNl
dCk7CiAKICAgICAvLyBJZiB0aGlzIGZyYW1lIHZpZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQg
aW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB3ZSBkb24ndCB3YW50IHRvIHVwZGF0ZSBvdXIK
QEAgLTI2MCw3ICsyNjksMTIgQEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1
ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIXN0
YXRlTm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGVOb2RlLT5zZXRSZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgaW5Qcm9ncmFtbWF0aWNTY3JvbGwp
OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYXV0byBzdGF0dXMgPSBhbmltYXRlZCA/
IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5hdGl2ZUFuaW1hdGlvbiA6IFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpOb3RJbkFuaW1hdGlvbjsKKyAgICBzY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhh
dmlvclN0YXR1cyhzdGF0dXMpOworI2VuZGlmCisKKyAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCwgYW5p
bWF0ZWQpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yOTEsNiArMzA1LDMyIEBAIHZvaWQg
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2NoZWR1bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFm
dGVyQXN5bmNTY3JvbGwoU2NyCiAgICAgbV91cGRhdGVOb2RlU2Nyb2xsUG9zaXRpb25UaW1lci5z
dGFydE9uZVNob3QoMF9zKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoU2Ny
b2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmICghbV9wYWdlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvKiBmcmFtZVZpZXcgPSBmcmFtZVZpZXdGb3JTY3JvbGxpbmdO
b2RlKG5vZGVJRCk7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChub2RlSUQgPT0gZnJhbWVWaWV3LT5zY3JvbGxpbmdOb2RlSUQoKSkgeworICAgICAgICBp
ZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAgICAgICAgICAgIGZyYW1lVmlldy0+
c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0
aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIE92ZXJmbG93LXNjcm9sbCBh
cmVhLgorICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IGZyYW1lVmlldy0+c2Nyb2xsYWJs
ZUFyZWFGb3JTY3JvbGxMYXllcklEKG5vZGVJRCkpIHsKKyAgICAgICAgaWYgKCFpc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpCisgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xs
QmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyAg
ICB9Cit9CisjZW5kaWYKKwogdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVT
Y3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGxUaW1lckZpcmVkKCkKIHsKICAgICB1cGRhdGVT
Y3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwobV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUubm9k
ZUlELCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5zY3JvbGxQb3NpdGlvbiwgbV9zY2hlZHVsZWRT
Y3JvbGxVcGRhdGUubGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbFR5cGU6OlVzZXIsIG1fc2No
ZWR1bGVkU2Nyb2xsVXBkYXRlLnVwZGF0ZUxheWVyUG9zaXRpb25BY3Rpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5oCmluZGV4IDliZTY5YWFmYjEuLjNkZTAxY2MyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgK
QEAgLTUyLDYgKzUyLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5nU3RhdGVUcmVlUHJv
cGVydGllc0NoYW5nZWQoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVVcGRh
dGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiwgY29uc3QgT3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3Jp
Z2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MoU2Nyb2xsaW5nTm9kZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cisj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
QWN0aXZlU2Nyb2xsU25hcEluZGljZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9u
dGFsSW5kZXgsIHVuc2lnbmVkIHZlcnRpY2FsSW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5j
cHAKaW5kZXggNzE3YmZjMmE1NS4uNGU0MDE0ZTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
Y3BwCkBAIC01Niw2ICs1Niw5IEBAIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2NyCiAjZW5kaWYKICAg
ICAsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKHN0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnMoKSkKICAgICAsIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsKHN0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwoKSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICwg
bV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oc3RhdGVOb2RlLnJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKQorI2VuZGlmCiAgICAgLCBtX2lzTW9uaXRv
cmluZ1doZWVsRXZlbnRzKHN0YXRlTm9kZS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQogewog
ICAgIGlmIChoYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpAQCAtMjE5
LDEwICsyMjIsMTUgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9s
bGFibGVBcmVhUGFyYW1ldGVycyhjb25zdCBTY3JvbGxhYmxlQXIKICAgICBzZXRQcm9wZXJ0eUNo
YW5nZWQoU2Nyb2xsYWJsZUFyZWFQYXJhbXMpOwogfQogCi12b2lkIFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYg
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9s
bCkKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHJlcXVlc3RlZFdpdGhBbmltYXRpb24p
CiB7CiAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uOwogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uID0gcmVx
dWVzdGVkV2l0aEFuaW1hdGlvbjsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlcXVlc3RlZFdp
dGhBbmltYXRpb24pOworI2VuZGlmCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKTsKIH0KIApAQCAtMzE0LDYgKzMyMiwxMSBAQCB2b2lkIFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNjcm9sbGlu
Z1N0YXRlVAogICAgIGlmIChtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dy
YW1tYXRpY1Njcm9sbCkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQgc2Nyb2xs
IHBvc2l0aW9uIHJlcHJlc2VudHMgcHJvZ3JhbW1hdGljIHNjcm9sbCIsIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0
aW9uKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24g
d2l0aCBhbmltYXRpb24iLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbik7
CisjZW5kaWYKKwogICAgIGlmICghbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0LmlzRW1w
dHkoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJwYXJlbnQgcmVsYXRpdmUgc2Nyb2xsYWJs
ZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUuaAppbmRleCA0OTY3YTZjZTgxLi42YzY5MmMxZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuaApAQCAtMTExLDcgKzExMSwxMCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBGbG9hdFBvaW50
JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb247IH0KICAgICBib29sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGJvb2wgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb247IH0KKyNlbmRpZgor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3Qg
RmxvYXRQb2ludCYsIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCByZXF1
ZXN0ZWRXaXRoQW5pbWF0aW9uKTsKIAogICAgIGJvb2wgaXNNb25pdG9yaW5nV2hlZWxFdmVudHMo
KSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzOyB9CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRJc01vbml0b3JpbmdXaGVlbEV2ZW50cyhib29sKTsKQEAgLTE3MSw2
ICsxNzQsOSBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9s
bGFibGVBcmVhUGFyYW1ldGVyczsKIAogICAgIGJvb2wgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlv
blJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgeyBmYWxzZSB9OworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlv
biB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMg
eyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCmluZGV4IDE1MWFjMjlmOGEuLjdhZGRmZWY0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTgyLDggKzgyLDEzIEBAIHB1
YmxpYzoKICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5kZXJMYXllciBzY3JvbGxpbmcgc3Rh
dGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9k
ZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSA9IDA7CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIENhbGxlZCBmb3Igc2Nyb2xsIGFuaW1h
dGlvbiBzdGF0dXMgdXBkYXRlcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJ
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBib29sIC8qaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKi8pIHsgfQorI2VuZGlmCisK
ICAgICAvLyBDYWxsZWQgZm9yIHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gdXBkYXRlcy4KLSAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdO
b2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xsUG9zaXRpb24qLywgYm9vbCAvKnJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50
JiAvKnNjcm9sbFBvc2l0aW9uKi8sIGJvb2wgLypyZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xs
Ki8sIGJvb2wgLyp3aXRoQW5pbWF0aW9uKi8gPSBmYWxzZSkgeyB9CiAKICAgICAvLyBEZWxlZ2F0
ZWQgc2Nyb2xsaW5nL3pvb21pbmcgaGFzIGNhdXNlZCB0aGUgdmlld3BvcnQgdG8gY2hhbmdlLCBz
byB1cGRhdGUgdmlld3BvcnQtY29uc3RyYWluZWQgbGF5ZXJzCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBtYWluRnJhbWVWaWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGF5
b3V0Vmlld3BvcnQsIGRvdWJsZSBzY2FsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXgg
NzNkY2EyOGVmMS4uMTdjN2YyYThmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMTA3
LDggKzEwNywxMiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTgogdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0
YXRlTm9kZSYgc3RhdGVOb2RlKQogewogICAgIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZSYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlPihzdGF0ZU5vZGUpOworICAgIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZhbHNlOworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgd2l0aEFuaW1hdGlvbiA9IHNjcm9sbGluZ1N0YXRl
Tm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKTsKKyNlbmRpZgogICAg
IGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKQotICAgICAgICBzY3JvbGxp
bmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChzY3JvbGxpbmdOb2RlSUQo
KSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbGlu
Z1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwoKSk7CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpLCB3aXRoQW5pbWF0aW9uKTsKIAogICAg
IG1faXNGaXJzdENvbW1pdCA9IGZhbHNlOwogfQpAQCAtMTU3LDIxICsxNjEsNDEgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0
YSwgU2Nyb2xsUG9zaXRpb24KICAgICBzY3JvbGxUbyhjdXJyZW50U2Nyb2xsUG9zaXRpb24oKSAr
IGRlbHRhLCBTY3JvbGxUeXBlOjpVc2VyLCBjbGFtcCk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXApCit2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
biwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxQb3NpdGlvbkNsYW1wIGNsYW1wLCBib29s
IG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24pCiB7Ci0gICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVu
dFNjcm9sbFBvc2l0aW9uKQorICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3Np
dGlvbikgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIC8vIFNlbmQgdGhlIHNj
cm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIGlmIChyZXF1ZXN0QW5p
bWF0ZWRTY3JvbGwoKSAmJiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQorICAgICAgICAgICAgc2Ny
b2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzLCBTY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9s
bGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKHNjcm9sbGlu
Z05vZGVJRCgpLCBmYWxzZSk7CisgICAgICAgIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChmYWxz
ZSk7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0obmVlZFN5bmNTY3JvbGxQb3NpdGlvbik7
CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgLy8gSWYgZHVyaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgbmVlZCB0byBzdG9wIGl0
IGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuCisgICAgaWYgKHNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MoKSkKKyAgICAgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbih0cnVl
KTsKKyNlbmRpZgogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGlj
U2Nyb2xsKHNjcm9sbFR5cGUgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKLSAgICAKKwog
ICAgIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uID0gYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihwb3Np
dGlvbiwgY2xhbXApOwotICAgIAorCiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3Ry
ZWFtIDw8ICJTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSAiIDw8IHNjcm9sbGluZ05vZGVJRCgp
IDw8ICIgc2Nyb2xsVG8gIiA8PCBwb3NpdGlvbiA8PCAiIChkZWx0YSBmcm9tIGxhc3QgY29tbWl0
dGVkIHBvc2l0aW9uICIgPDwgKG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uIC0gbV9jdXJy
ZW50U2Nyb2xsUG9zaXRpb24pIDw8ICIpIik7CiAKICAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJl
bnRTY3JvbGxQb3NpdGlvbigpOwogICAgIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKTsK
IAogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKGZh
bHNlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc2V0TmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbihmYWxzZSk7CisgICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGZh
bHNlKTsKKyNlbmRpZgogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJy
ZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKQEAgLTE3OSw2ICsyMDMsMTAgQEAgdm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiAg
ICAgcmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpOwogICAgIHJlcG9zaXRpb25SZWxhdGVkTGF5
ZXJzKCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghcmVxdWVzdEFuaW1h
dGVkU2Nyb2xsKCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIHNjcm9sbGluZ1RyZWUo
KS5ub3RpZnlSZWxhdGVkTm9kZXNBZnRlclNjcm9sbFBvc2l0aW9uQ2hhbmdlKCp0aGlzKTsKICAg
ICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMpOwogfQpA
QCAtMjY2LDYgKzI5NCwzNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpkdW1w
UHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcgogICAgIHRzLmR1bXBQ
cm9wZXJ0eSgic2Nyb2xsYWJsZSBhcmVhIHBhcmFtZXRlcnMiLCBtX3Njcm9sbGFibGVBcmVhUGFy
YW1ldGVycyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wgYW5pbWF0ZWQp
Cit7CisgICAgbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwgPSBhbmltYXRlZDsKK30KKworYm9vbCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGw7Cit9CisKK3ZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9vbCBp
blByb2dyZXNzKQoreworICAgIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGluUHJvZ3Jl
c3M7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3M7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3Rv
cEN1cnJlbnRTY3JvbGxBbmltYXRpb24oYm9vbCBzdG9wKQoreworICAgIG1fbmVlZHNTdG9wQ3Vy
cmVudFNjcm9sbEFuaW1hdGlvbiA9IHN0b3A7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6Om5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdAoreworICAg
IHJldHVybiBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb247Cit9CisjZW5kaWYKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCA0Y2JmNGQxYWYwLi5mOWYzMTBkYjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIEZsb2F0U2l6ZSBz
Y3JvbGxEZWx0YVNpbmNlTGFzdENvbW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFNjcm9s
bFBvc2l0aW9uIC0gbV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb247IH0KIAogICAgIC8vIFRo
ZXNlIGFyZSBpbXBlcmF0aXZlOyB0aGV5IGFkanVzdCB0aGUgc2Nyb2xsaW5nIGxheWVycy4KLSAg
ICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlw
ZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0aW9uQ2xhbXA6OlRvQ29u
dGVudEVkZ2VzKTsKKyAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxU
eXBlID0gU2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsUG9zaXRpb25DbGFtcCA9IFNjcm9sbFBvc2l0
aW9uQ2xhbXA6OlRvQ29udGVudEVkZ2VzLCBib29sIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24gPSBm
YWxzZSk7CiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmLCBTY3JvbGxQb3NpdGlv
bkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50RWRnZXMpOwogCiAgICAgdm9p
ZCB3YXNTY3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0
aW9uLCBPcHRpb25hbDxGbG9hdFJlY3Q+IG92ZXJyaWRlTGF5b3V0Vmlld3BvcnQgPSB7IH0sIFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
OjpTeW5jKTsKQEAgLTkxLDYgKzkxLDE1IEBAIHB1YmxpYzoKICAgICBjb25zdCBMYXllclJlcHJl
c2VudGF0aW9uJiBzY3JvbGxDb250YWluZXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xs
Q29udGFpbmVyTGF5ZXI7IH0KICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxl
ZENvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsg
fQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNldFJlcXVlc3RBbmltYXRl
ZFNjcm9sbChib29sKTsKKyAgICBib29sIHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sKTsKKyAgICBib29sIHNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSBjb25zdDsKKyAgICB2b2lkIHNldE5lZWRzU3RvcEN1
cnJlbnRTY3JvbGxBbmltYXRpb24oYm9vbCk7CisgICAgYm9vbCBuZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uKCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Ny
b2xsaW5nTm9kZUlEKTsKIApAQCAtMTQ4LDYgKzE1NywxMiBAQCBwcml2YXRlOgogICAgIFNjcm9s
bGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKICAgICBib29s
IG1faXNGaXJzdENvbW1pdCB7IHRydWUgfTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgYm9vbCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9uZWVkc1N0b3BD
dXJyZW50U2Nyb2xsQW5pbWF0aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgTGF5ZXJSZXBy
ZXNlbnRhdGlvbiBtX3Njcm9sbENvbnRhaW5lckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRp
b24gbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKaW5kZXggZjQ1N2IxNTYxZS4uZjZkMzU2NjVmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC01NCwxMSArNTQsMTkgQEAgZW51bSBjbGFzcyBTY3JvbGxQ
b3NpdGlvbkNsYW1wIDogdWludDhfdCB7CiAgICAgVG9Db250ZW50RWRnZXMsCiB9OwogCi0vLyBG
SVhNRTogQWRkIGFub3RoZXIgc3RhdHVzIEluTmF0aXZlQW5pbWF0aW9uIHRvIGluZGljYXRlIG5h
dGl2ZSBzY3JvbGxpbmcgaXMgaW4gcHJvZ3Jlc3MuCi0vLyBTZWU6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvclR5cGUg
OiB1aW50OF90IHsKKyAgICBJbnN0YW50LAorICAgIFNtb290aCwKK307CisjZW5kaWYKKwogZW51
bSBjbGFzcyBTY3JvbGxCZWhhdmlvclN0YXR1cyA6IHVpbnQ4X3QgewogICAgIE5vdEluQW5pbWF0
aW9uLAogICAgIEluTm9uTmF0aXZlQW5pbWF0aW9uLAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgSW5OYXRpdmVBbmltYXRpb24sCisjZW5k
aWYKIH07CiAKIGlubGluZSBTY3JvbGxEaXJlY3Rpb24gbG9naWNhbFRvUGh5c2ljYWwoU2Nyb2xs
TG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgaXNWZXJ0aWNhbCwgYm9vbCBpc0ZsaXBw
ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDhlNmIwYzY1MzUu
LjFkMmMzMmVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00
NjUsNiArNDY1LDEwIEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBib29sLyoKIHsKICAgICBMT0dfV0lUSF9T
VFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
ICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKFNj
cm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCk7CisjZW5kaWYKKwogICAgIGlmIChwcm9oaWJpdHNT
Y3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggYThiNjAzN2ZiYy4uMTUwNzA0YzJkMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNzEsNiArNzEsOSBAQCBT
Y3JvbGxhYmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEoKQogICAgICwgbV9zY3JvbGxPcmlnaW5DaGFu
Z2VkKGZhbHNlKQogICAgICwgbV9jdXJyZW50U2Nyb2xsVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oU2Nyb2xsVHlwZTo6VXNlcikpCiAgICAgLCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0
YXRlKGZhbHNlKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JP
TExJTkcpCisgICAgLCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCkpCisjZW5kaWYKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggN2Q5NzkwNzE4NS4uNTU2
NzJmODFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0y
NDYsNiArMjQ2LDExIEBAIHB1YmxpYzoKICAgICBTY3JvbGxUeXBlIGN1cnJlbnRTY3JvbGxUeXBl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsVHlwZT4obV9jdXJyZW50U2Nyb2xs
VHlwZSk7IH0KICAgICB2b2lkIHNldEN1cnJlbnRTY3JvbGxUeXBlKFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSkgeyBtX2N1cnJlbnRTY3JvbGxUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcm9s
bFR5cGUpOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQorICAgIFNjcm9sbEJlaGF2aW9yVHlwZSBjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsQmVoYXZpb3JUeXBlPihtX2N1cnJl
bnRTY3JvbGxCZWhhdmlvclR5cGUpOyB9CisgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsQmVoYXZp
b3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZSBzY3JvbGxCZWhhdmlvclR5cGUpIHsgbV9jdXJyZW50
U2Nyb2xsQmVoYXZpb3JUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcm9sbEJlaGF2aW9y
VHlwZSk7IH0KKyNlbmRpZgorCiAgICAgYm9vbCBzY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGU7IH0KICAg
ICB2b2lkIHNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKGJvb2wgc2hvdWxkQ2xlYXIp
IHsgbV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSA9IHNob3VsZENsZWFyOyB9CiAKQEAg
LTQwOSw2ICs0MTQsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hh
bmdlZCA6IDE7CiAgICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9s
bFR5cGUKICAgICB1bnNpZ25lZCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAg
IHVuc2lnbmVkIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCmluZGV4IDlmZDRmMmFiYTYuLjQ3YmNmN2Q1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjYwNCwxMiArMjYwNCwyNCBAQCBTY3JvbGxPZmZz
ZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Ny
b2xsT2Zmc2V0KSBjbwogCiB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBT
Y3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxD
bGFtcGluZyBjbGFtcGluZykKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xs
QmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRpZgorCiAgICAgaWYgKGN1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1h
dGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CiAKICAg
ICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9s
bE9mZnNldDsKLSAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZz
ZXQoKSkKKyAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQo
KSkgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
CisgICAgICAgIC8vIElmIFVJU2Nyb2xsVmlldyBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1h
dGlvbiwgdGhlIHNjcm9sbCBvZmZzZXQgb2YgdGhlIFdlYiBwcm9jZXNzIG1pZ2h0IGJlIG92ZXJy
aWRkZW4uCisgICAgICAgIC8vIFNvIHdlIG5lZWQgdG8gY2FsbCByZXF1ZXN0U2Nyb2xsUG9zaXRp
b25VcGRhdGUgaGVyZSBhbmQgbGV0IGl0IGJlIGNoZWNrZWQgb24gdGhlIFVJIHByb2Nlc3MuCisg
ICAgICAgIC8vIElmIHRoZSBzY3JvbGwgb2Zmc2V0IG9uIHRoZSBVSSBwcm9jZXNzIGlzIGRpZmZl
cmVudCwgdGhlIGNvcnJlY3Qgc2Nyb2xsIG9mZnNldCBuZWVkcyB0byBzeW5jIGJhY2sgdG8gdGhl
IFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkg
PT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICAgICAg
cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFt
cGVkU2Nyb2xsT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAg
IGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRD
dXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKQEAgLTI2NDEsNiArMjY1MywxNCBAQCB2b2lk
IFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zm
c2V0JiBvZmZzZXQsIFNjcm9sbAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVu
dFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKIAor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAg
c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290aCk7
CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZyb21P
ZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNT
Y3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgU2Nyb2xs
T2Zmc2V0IG5ld1Njcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkID8gY2xhbXBTY3JvbGxPZmZzZXQob2Zmc2V0KSA6IG9mZnNldDsKICAgICBpZiAoY3VycmVu
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0
aXZlQW5pbWF0aW9uKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggMzNjOGIxMTM2Yi4uMDMzMjY3MTFjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1OSBAQAorMjAxOS0xMi0xMSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0
aXZlIHNjcm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOp
ZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcgYXMgYW4g
ZXhwZXJpbWVudGFsIGZlYXR1cmUuIE9uIGlvcyBwbGF0Zm9ybSwgdXNlIG5hdGl2ZSBhbmltYXRl
ZCBzY3JvbGxpbmcKKyAgICAgICAgaW50ZXJmYWNlcyB0byBwZXJmb3JtYW5jZSBzbW9vdGggc2Ny
b2xsIGFuZCBzZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorCisg
ICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29k
ZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46
OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAocG9pbnRzRXF1YWxJblJvdW5kVG9EZXZp
Y2VQaXhlbCk6IEhlbHAgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdHdvIGZsb2F0IHBvaW50cyBhcmUg
bm90IGVxdWFsIGJ1dCBpbiB0aGUgc2FtZSBkZXZpY2UgcGl4ZWwuCisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsT3JpZ2luOmFuaW1hdGVk
Ol0pOiBBZGQgYW5pbWF0ZWQgZmxhZyB0byBzdGFydCBhIGFuaW1hdGVkIHNjcm9sbCBpZiBuZWVk
ZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0
aW9uOl0pOiBTZW5kIHNyb2xsIGVuZCBtZXNzYWdlIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmln
aW46XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJ
bnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnQ6OnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKTogUHJvdmlkZSBp
bnRlcmZhY2UgZm9yIGFuaW1hdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJl
ZSk6IEFkZCBhbmltYXRlZCBmbGFnLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKTogU3luYyB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJl
ZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhbmltYXRlZCBzY3JvbGxpbmcgaW5mbyB0byBtX3Jl
cXVlc3RlZFNjcm9sbEluZm8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNz
RGlkQ2hhbmdlKTogU3luYyBzY3JvbGxBbmltYXRpb25JblByb2dyZXNzIHRvIHRoZSBXZWIgcHJv
Y2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdl
KTogRGl0dG8uIEl0J3Mgc3BlY2lmaWMgdG8gdGhlIHJvb3Qgbm9kZS4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVl
Tm9kZURpZFNjcm9sbCk6IEFkZCBhbmltYXRlZCBpbmZvLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2Rl
SXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKTogRGl0dG8uCisgICAgICAgICog
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9z
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06CisgICAgICAgICgtW1dL
U2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5n
QW5pbWF0aW9uOl0pOiBTZW5kIHNjb2xsIGVuZCBpbmZvIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAg
ICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29t
bWl0U3RhdGVBZnRlckNoaWxkcmVuKTogSWYgdGhlIHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgV2Vi
IHByb2Nlc3MgaXNuJ3QgZXF1YWwgdG8gdGhlIFVJIHByb2Nlc3MsCisgICAgICAgIHRoZSBzY3Jv
bGwgcG9zaXRpb24gc2hvdWxkIGJlIHN5bmNocm9uaXplZCwgZXZlbiB0aGVyZSdzIG5vIHNjcm9s
bGluZyBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXll
cnMpOiBDYWxsaW5nIHRoZSBuYXRpdmUgYW5pbWF0ZWQgc2Nyb2xsaW5nIGludGVyZmFjZSBmb3Ig
c21vb3RoIHNjcm9sbC4KKyAgICAgICAgSWYgdGhlcmUncyBhIHNjcm9sbCBhbmltYXRpb24gcGVy
Zm9ybWluZywgaXQgc2hvdWxkIGJlIHN0b3BwZWQgZmlyc3QsIHRoZW4gc3RhcnQgYSBuZXcgc2Ny
b2xsaW5nLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TOjpzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uKTogU3luYyBzY3JvbGwg
ZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwp
OiBUbyBjYWxsIGRpZmZlcmVudCBmdW5jdGlvbnMgZm9yIHNtb290aCBhbmQgaW5zdGFudCBzY3Jv
bGwuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVx
dWVzdFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Ny
b2xsV2l0aEFuaW1hdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9k
ZSk6CisKIDIwMTktMTItMTAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgog
CiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4
IGQ3YjFlMTkzNzIuLjg3N2QyOWEzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKQEAgLTE1Miw2ICsxNTIsOSBAQCB2b2lkIEFy
Z3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0CiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMsIHNjcm9sbGFibGVBcmVhUGFyYW1l
dGVycykKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pCiAg
ICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFNDUk9MTElO
R19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisjZW5kaWYK
IAogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuc2Nyb2xsQ29udGFpbmVy
TGF5ZXIoKSk7CkBAIC0yNjAsNyArMjYzLDEyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsCiAg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgbm9kZS5zZXRSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9s
bCk7CisgICAgICAgIGJvb2wgc2Nyb2xsV2l0aEFuaW1hdGlvbiA9IGZhbHNlOworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Nyb2xsV2l0aEFu
aW1hdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgbm9k
ZS5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xsV2l0aEFuaW1hdGlvbik7CiAgICAgfQogCiAgICAgaWYg
KG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Ny
b2xsQ29udGFpbmVyTGF5ZXIpKSB7CkBAIC02MDgsNiArNjE2LDkgQEAgc3RhdGljIHZvaWQgZHVt
cChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2Rl
LCBib29sIGMKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKSkgewogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9z
aXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB0cy5kdW1w
UHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24taXMtcHJvZ3JhbWF0aWMiLCBub2Rl
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKTsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVl
c3RlZC1zY3JvbGwtcG9zaXRpb24td2l0aC1hbmltYXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICghY2hh
bmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKaW5kZXggNTIwNWEzZjZmNC4uMWJi
MTRmOTg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmll
d0lPUy5oCkBAIC01Nyw3ICs1Nyw3IEBACiAKIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hv
dD4pX3Rha2VWaWV3U25hcHNob3Q7CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBv
c2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjoo
V2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luOworLSAodm9pZClfc2Nyb2xsVG9Db250ZW50
U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xs
T3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6KEJPT0wpYW5p
bWF0ZWQ7CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRS
ZWN0IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNjcm9sbERpc3Rh
bmNlOihmbG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFuY2U7CiAKIC0gKGRvdWJsZSlfaW5pdGlhbFNj
YWxlRmFjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmll
d0lPUy5tbQppbmRleCAxNWVlZTU1YTIxLi41NDAxYzEzZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQpAQCAtMzAyLDYgKzMwMiwxMiBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgcG9pbnRzRXF1YWxJbkRldmljZVBpeGVscyhDR1BvaW50IGEs
IENHUG9pbnQgYiwgZmxvYXQgZGV2aWNlUwogICAgICAgICAmJiBmYWJzKGEueSAqIGRldmljZVNj
YWxlRmFjdG9yIC0gYi55ICogZGV2aWNlU2NhbGVGYWN0b3IpIDwgc3RkOjpudW1lcmljX2xpbWl0
czxmbG9hdD46OmVwc2lsb24oKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHBvaW50c0VxdWFs
SW5Sb3VuZFRvRGV2aWNlUGl4ZWwoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKQoreworICAgIHJldHVybiBDR1JvdW5kKGEueCAqIGRldmljZVNjYWxlRmFjdG9y
KSA9PSBDR1JvdW5kKGIueCAqIGRldmljZVNjYWxlRmFjdG9yKQorICAgICAgICAmJiBDR1JvdW5k
KGEueSAqIGRldmljZVNjYWxlRmFjdG9yKSA9PSBDR1JvdW5kKGIueSAqIGRldmljZVNjYWxlRmFj
dG9yKTsKK30KKwogc3RhdGljIENHU2l6ZSByb3VuZFNjcm9sbFZpZXdDb250ZW50U2l6ZShjb25z
dCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgQ0dTaXplIGNvbnRlbnRTaXplKQogewogICAg
IGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpOwpAQCAt
MTAyNiw5ICsxMDMyLDEwIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFpbkNv
bnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAgICAgcmV0dXJuIGNv
bnRlbnRPZmZzZXQuY29uc3RyYWluZWRCZXR3ZWVuKFdlYkNvcmU6OkZsb2F0UG9pbnQoKSwgV2Vi
Q29yZTo6RmxvYXRQb2ludChtYXhpbXVtQ29udGVudE9mZnNldCkpOwogfQogCi0tICh2b2lkKV9z
Y3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQ
b3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbgorLSAo
dm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQp
c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmln
aW4gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQKIHsKLSAgICBpZiAoX2NvbW1pdERpZFJlc3RvcmVT
Y3JvbGxQb3NpdGlvbiB8fCBfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5
bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKQorICAgIC8vIEFuaW1hdGVkIHNj
cm9sbGluZyBzaG91bGRuJ3QgYmUgc2tpcHBlZC4KKyAgICBpZiAoIWFuaW1hdGVkICYmIChfY29t
bWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uIHx8IF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2Rl
ICE9IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmZzZXQgPSBX
ZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHNjcm9sbFBv
c2l0aW9uLCB0b0Zsb2F0U2l6ZShzY3JvbGxPcmlnaW4pKTsKQEAgLTEwNDIsMTMgKzEwNDksMjIg
QEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJD
b3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKIAogICAgIFtfc2Nyb2xsVmlldyBfc3RvcFNjcm9s
bGluZ0FuZFpvb21pbmdBbmltYXRpb25zXTsKIAotICAgIGlmICghQ0dQb2ludEVxdWFsVG9Qb2lu
dChjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFtfc2Nyb2xsVmlldyBjb250
ZW50T2Zmc2V0XSkpCi0gICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OmNvbnRl
bnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlc107CisgICAgLy8gSXQncyBwb3NzaWJsZSB0
aGF0IHRoZXkgYXJlIG5vdCBlcXVhbCwgYnV0IGluIHRoZSBzYW1lIGRldmljZSBwaXhlbCwgc28g
X3Njcm9sbFZpZXcgd29uJ3QgY2hhbmdlLgorICAgIC8vIFdlIG5lZWQgdG8gY2FsY3VsYXRlIHRo
ZSByb3VuZCB0byBkZXZpY2UgcGl4ZWwgaGVyZS4KKyAgICBpZiAoIXBvaW50c0VxdWFsSW5Sb3Vu
ZFRvRGV2aWNlUGl4ZWwoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBbX3Nj
cm9sbFZpZXcgY29udGVudE9mZnNldF0sIF9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKSkKKyAg
ICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldEluU2Nyb2xs
Vmlld0Nvb3JkaW5hdGVzIGFuaW1hdGVkOmFuaW1hdGVkXTsKICAgICBlbHNlIHsKICAgICAgICAg
Ly8gSWYgd2UgaGF2ZW4ndCBjaGFuZ2VkIGFueXRoaW5nLCB0aGVyZSB3b3VsZCBub3QgYmUgYW55
IFZpc2libGVDb250ZW50UmVjdCB1cGRhdGUgc2VudCB0byB0aGUgY29udGVudC4KICAgICAgICAg
Ly8gVGhlIFdlYlByb2Nlc3Mgd291bGQga2VlcCB0aGUgaW52YWxpZCBjb250ZW50T2Zmc2V0IGFz
IGl0cyBzY3JvbGwgcG9zaXRpb24uCiAgICAgICAgIC8vIFRvIHN5bmNocm9uaXplIHRoZSBXZWJQ
cm9jZXNzIHdpdGggd2hhdCBpcyBvbiBzY3JlZW4sIHdlIHNlbmQgdGhlIFZpc2libGVDb250ZW50
UmVjdCBhZ2Fpbi4KICAgICAgICAgX3BhZ2UtPnJlc2VuZExhc3RWaXNpYmxlQ29udGVudFJlY3Rz
KCk7CisKKyAgICAgICAgLy8gSWYgX3Njcm9sbFZpZXcgd29uJ3QgY2hhbmdlLCB3ZSBzdGlsbCBu
ZWVkIHRvIHRlbGwgdGhlIFdlYiBwcm9jZXNzIHRoYXQgdGhlIGFuaW1hdGlvbiBzdG9wcGVkLgor
ICAgICAgICBpZiAoYW5pbWF0ZWQpIHsKKyAgICAgICAgICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eSogY29vcmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eSgpOworICAgICAgICAgICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICAgICAg
ICAgIGNvb3JkaW5hdG9yLT5zY3JvbGxpbmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NEaWRDaGFuZ2UoZmFsc2UpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xNTY0
LDYgKzE1ODAsMTAgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVu
dE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKIC0gKHZvaWQpc2Nyb2xsVmll
d0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewog
ICAgIFtzZWxmIF9kaWRGaW5pc2hTY3JvbGxpbmddOworCisgICAgV2ViS2l0OjpSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5KCk7CisgICAgaWYgKGNvb3JkaW5hdG9yKQorICAgICAgICBjb29yZGluYXRv
ci0+c2Nyb2xsaW5nVHJlZVJvb3ROb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hh
bmdlKGZhbHNlKTsKIH0KIAogLSAodm9pZClfc2Nyb2xsVmlld0RpZEludGVycnVwdERlY2VsZXJh
dGluZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCmluZGV4IGU4NDgyNGZkODUuLmRlM2QzMzY3OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKQEAgLTE4MSw2ICsxODEsOCBAQCBwdWJsaWM6CiAgICAgLy8gVGVsbCB0
aGUgdmlldyB0byBzY3JvbGwgdG8gdGhlIGdpdmVuIHBvc2l0aW9uLCBhbmQgd2hldGhlciB0aGlz
IHdhcyBhIHByb2dyYW1tYXRpYyBzY3JvbGwuCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3Jv
bGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgeyB9CisKICAg
ICAvLyBSZXR1cm4gdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIChub3QgbmVjZXNzYXJpbHkg
dGhlIHNhbWUgYXMgdGhlIFdlYkNvcmUgc2Nyb2xsIHBvc2l0aW9uLCBiZWNhdXNlIG9mIHNjYWxp
bmcsIGluc2V0cyBldGMuKQogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Ny
b2xsUG9zaXRpb24oKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkubW0KaW5kZXggMzgwZjEyNDQ0My4uMGE0MmY5NDQ5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KQEAgLTIyNCw4ICsyMjQs
MTQgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRy
ZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKIAogICAgIC8vIEhhbmRsZSByZXF1ZXN0ZWQg
c2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUgdHJhbnNhY3Rp
b24gYWZ0ZXIgZGlkQ29tbWl0TGF5ZXJUcmVlKCkKICAgICAvLyBoYXMgdXBkYXRlZCB0aGUgdmll
dyBzaXplIGJhc2VkIG9uIHRoZSBjb250ZW50IHNpemUuCi0gICAgaWYgKHJlcXVlc3RlZFNjcm9s
bEluZm8ucmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSkKLSAgICAgICAgbV93ZWJQYWdlUHJv
eHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uLCBsYXllclRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKSk7CisgICAgaWYgKHJlcXVl
c3RlZFNjcm9sbEluZm8ucmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSkgeworICAgICAgICBt
X3dlYlBhZ2VQcm94eS5yZXF1ZXN0U2Nyb2xsKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb24KKyAgICAgICAgICAgICwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xs
T3JpZ2luKCkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICAgICAgLCByZXF1ZXN0
ZWRTY3JvbGxJbmZvLnJlcXVlc3RXaXRoQW5pbWF0aW9uCisjZW5kaWYKKyAgICAgICAgICAgICk7
CisgICAgfQogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAKICAgICBpZiAobV9k
ZWJ1Z0luZGljYXRvckxheWVyVHJlZUhvc3QpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA0ODIzZjc2YTk3Li44Y2YxZDg0YTEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBA
IC0yMDgsNyArMjA4LDcgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpj
dXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjoKIH0KIAogLy8gVGhpcyBj
b21lcyBmcm9tIHRoZSBzY3JvbGxpbmcgdHJlZS4KLXZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNj
cm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3Qg
T3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXll
clBvc2l0aW9uQWN0aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pCit2b2lkIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNj
cm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xs
UG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdp
biwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uLCBib29sIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKQogewogICAgIC8vIFNjcm9s
bCB1cGRhdGVzIGZvciB0aGUgbWFpbiBmcmFtZSBhcmUgc2VudCB2aWEgV2ViUGFnZVByb3h5Ojp1
cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKCkKICAgICAvLyBzbyBkb24ndCBzZW5kIHRoZW0gaGVy
ZS4KQEAgLTIyMiwyMSArMjIyLDM2IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlECiAgICAgbV93
ZWJQYWdlUHJveHkuc2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEaWRTY3JvbGwoKTsKICNlbmRpZgog
Ci0gICAgaWYgKG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgp
KQorICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwo
KSAmJiAhaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHNjcm9sbGVkTm9kZUlELCBuZXdTY3Jv
bGxQb3NpdGlvbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9PSBTY3JvbGxpbmdMYXll
clBvc2l0aW9uQWN0aW9uOjpTeW5jKSk7CiB9CiAKLXZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2Rl
SUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29s
IHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9v
bCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24pCiB7CiAg
ICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RTY3JvbGxpbmdOb2RlSUQoKSAmJiBtX3JlcXVl
c3RlZFNjcm9sbEluZm8pIHsKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0
c1Njcm9sbFBvc2l0aW9uVXBkYXRlID0gdHJ1ZTsKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJ
bmZvLT5yZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIG1fcmVxdWVzdGVkU2Ny
b2xsSW5mby0+cmVxdWVzdFdpdGhBbmltYXRpb24gPSB3aXRoQW5pbWF0aW9uOworI2VuZGlmCiAg
ICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24gPSBz
Y3JvbGxQb3NpdGlvbjsKICAgICB9CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9p
ZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQg
c2Nyb2xsZWROb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAg
IG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUoc2Nyb2xsZWROb2RlSUQs
IGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykpOworfQorCit2b2lkIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sK
KyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHJvb3RTY3JvbGxp
bmdOb2RlSUQoKSwgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKSk7Cit9CisjZW5kaWYKKwog
U3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVBc1Rl
eHQoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9sbGluZ1RyZWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAppbmRleCAxYTc2OTQzZjI0Li44MTE1ZTQ3
N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgK
QEAgLTU1LDkgKzU1LDE0IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYpOwogICAgIHZpcnR1YWwgflJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5n
ZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzc0RpZENoYW5nZShib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisjZW5k
aWYKKwogICAgIC8vIEluZm9ybSB0aGUgd2ViIHByb2Nlc3MgdGhhdCB0aGUgc2Nyb2xsIHBvc2l0
aW9uIGNoYW5nZWQgKGNhbGxlZCBmcm9tIHRoZSBzY3JvbGxpbmcgdHJlZSkKLSAgICB2b2lkIHNj
cm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPFdl
YkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xs
aW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7Ci0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7
CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdO
b2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25z
dCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFdl
YkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGJvb2wgaW5zdGFudFNjcm9sbERp
ZFN0b3BBbmltYXRpb24gPSBmYWxzZSk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwg
Ym9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogCiAgICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBl
IGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBX
ZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CiAKQEAgLTgwLDYgKzg1LDkgQEAgcHVibGljOgogICAg
IHN0cnVjdCBSZXF1ZXN0ZWRTY3JvbGxJbmZvIHsKICAgICAgICAgYm9vbCByZXF1ZXN0c1Njcm9s
bFBvc2l0aW9uVXBkYXRlIHsgfTsKICAgICAgICAgYm9vbCByZXF1ZXN0SXNQcm9ncmFtbWF0aWNT
Y3JvbGwgeyB9OworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIGJvb2wgcmVxdWVz
dFdpdGhBbmltYXRpb24geyB9OworI2VuZGlmCiAgICAgICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQg
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgfTsKICAgICB2b2lkIGNvbW1pdFNjcm9sbGlu
Z1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uJiwg
UmVxdWVzdGVkU2Nyb2xsSW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4
IGFmYWJiYzFlYWUuLmQ1NzNhMzFmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAK
QEAgLTEwNCwxMiArMTA0LDE2IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5n
VHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmCiAgICAgaWYgKGlz
PFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpKQogICAgICAgICBsYXlvdXRW
aWV3cG9ydE9yaWdpbiA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+
KG5vZGUpLmxheW91dFZpZXdwb3J0KCkubG9jYXRpb24oKTsKIAotICAgIG1fc2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChub2RlLnNjcm9sbGluZ05v
ZGVJRCgpLCBub2RlLmN1cnJlbnRTY3JvbGxQb3NpdGlvbigpLCBsYXlvdXRWaWV3cG9ydE9yaWdp
biwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CisgICAgYm9vbCBpbnN0YW50U2Nyb2xs
RGlkU3RvcEFuaW1hdGlvbiA9IGZhbHNlOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
aW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24gPSBub2RlLm5lZWRzU3RvcEN1cnJlbnRTY3Jv
bGxBbmltYXRpb24oKSAmJiAhbm9kZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKTsKKyNlbmRpZgor
ICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9s
bChub2RlLnNjcm9sbGluZ05vZGVJRCgpLCBub2RlLmN1cnJlbnRTY3JvbGxQb3NpdGlvbigpLCBs
YXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgaW5zdGFu
dFNjcm9sbERpZFN0b3BBbmltYXRpb24pOwogfQogCi12b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwg
Y29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVS
ZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdp
dGhBbmltYXRpb24pCiB7Ci0gICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGlu
Z1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCk7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgd2l0aEFuaW1hdGlvbik7CiB9CiAKIFJlZjxTY3Jv
bGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5v
ZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCkBA
IC0xNDMsNiArMTQ3LDEzIEBAIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5n
VHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kCiAgICAgcmV0dXJuIFNj
cm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1Ry
ZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9s
bGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorewor
ICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShub2RlSUQsIGlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzcyk7Cit9CisjZW5kaWYKKwogdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjdXJyZW50
U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCB1bnNpZ25l
ZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkKIHsKICAgICBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2Uobm9kZUlELCBob3Jp
em9udGFsLCB2ZXJ0aWNhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAppbmRleCAyM2JhYzA2
YTNiLi4wZjllMDk0OTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKQEAgLTUyLDcgKzUy
LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
JiBzY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OyB9CiAKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xs
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJiwgV2ViQ29yZTo6U2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rp
b246OlN5bmMpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpIG92ZXJy
aWRlOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFuaW1hdGlvbiA9
IGZhbHNlKSBvdmVycmlkZTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJD
b3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKSBv
dmVycmlkZTsKKyNlbmRpZgogCiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENo
YW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2ln
bmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaAppbmRleCBlNjM3ZDYxNTMyLi4w
MGI0ZGJjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzY3JvbGxEaWRFbmQoKSBjb25zdDsKICAgICB2b2lkIHNjcm9sbFZpZXdXaWxsU3RhcnRQ
YW5HZXN0dXJlKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9mZnNldCwgYm9vbCBpblVzZXJJbnRlcmFjdGlvbik7
CisgICAgdm9pZCBzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uKCk7CiAKICAgICB2
b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKHVuc2lnbmVkIGhvcml6b250YWws
IHVuc2lnbmVkIHZlcnRpY2FsKSBjb25zdDsKICAgICBDQUxheWVyICpzY3JvbGxMYXllcigpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQppbmRleCBl
NzY4OTgzNzU4Li44NDg4NjNhODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCkBAIC0xNTIsNiArMTUyLDEx
IEBACiAgICAgfQogfQogCistICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRp
b246KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKK3sKKyAgICBfc2Nyb2xsaW5nVHJlZU5vZGVE
ZWxlZ2F0ZS0+c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbigpOworfQorCiAjaWYg
RU5BQkxFKFBPSU5URVJfRVZFTlRTKQogLSAoQ0dQb2ludClfc2Nyb2xsVmlldzooVUlTY3JvbGxW
aWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNldEZvck9mZnNldDooQ0dQb2ludClvZmZzZXQg
dHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRpb24gc3RhcnRQb2ludDooQ0dQb2ludClzdGFy
dCBsb2NhdGlvbkluVmlldzooQ0dQb2ludClsb2NhdGlvbkluVmlldyBob3Jpem9udGFsVmVsb2Np
dHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2FsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKXZ2
CiB7CkBAIC0zMDAsMTUgKzMwNSwzNiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbAogCiAgICAg
aWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpIHsKICAgICAgICAgYXV0byBz
Y3JvbGxUeXBlID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpID8gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljIDog
U2Nyb2xsVHlwZTo6VXNlcjsKLSAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbFRvKHNjcm9s
bGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxUeXBlKTsKKyAg
ICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhB
bmltYXRpb24oKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ05vZGUoKS5zZXRSZXF1ZXN0QW5pbWF0
ZWRTY3JvbGwodHJ1ZSk7CisgICAgICAgIC8vIElmIHRoZSBzY3JvbGwgcG9zaXRpb25zIGFyZSBu
b3QgdGhlIHNhbWUsIHRoZXJlJ3MgYSBwb3NzaWJpbGl0eSB0aGF0IHRoZSBzY3JvbGwgb2Zmc2V0
IGZyb20gdGhlIFdlYiBwcm9jZXNzIGhhcyBiZWVuIG92ZXJyaWRkZW4uCisgICAgICAgIC8vIElu
IHRoaXMgY2FzZSwgdGhlIHNjcm9sbCBwb3NpdGlvbiBuZWVkIHRvIGJlIHNlbnQgdG8gdGhlIFdl
YiBwcm9jZXNzLgorICAgICAgICBib29sIHNob3VsZFN5bmNTY3JvbGxQb3NpdGlvbiA9IHNjcm9s
bGluZ1N0YXRlTm9kZS5zY3JvbGxQb3NpdGlvbigpICE9IHNjcm9sbGluZ05vZGUoKS5jdXJyZW50
U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbFRvKHNjcm9s
bGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxUeXBlLCBTY3Jv
bGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcywgc2hvdWxkU3luY1Njcm9sbFBvc2l0aW9u
KTsKICAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlP
Uzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TCi0gICAgW3Njcm9sbFZpZXcoKSBzZXRDb250ZW50T2Zmc2V0OnNjcm9sbGluZ05v
ZGUoKS5jdXJyZW50U2Nyb2xsT2Zmc2V0KCldOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKKyAgICBib29sIGFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBzY3JvbGxpbmdOb2RlKCkuc2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcygpOworICAgIGJvb2wgbmVlZFRvU3RvcEFuaW1hdGlvbiA9IHNj
cm9sbGluZ05vZGUoKS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKCk7CisgICAgaWYg
KG5lZWRUb1N0b3BBbmltYXRpb24gJiYgYW5pbWF0aW9uSW5Qcm9ncmVzcykgeworICAgICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICAgICAgW3Njcm9sbFZpZXcoKSBzZXRDb250
ZW50T2Zmc2V0OnNjcm9sbFZpZXcoKS5jb250ZW50T2Zmc2V0IGFuaW1hdGVkOk5PXTsKKyAgICAg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0KKworICAgIGlmIChzY3JvbGxpbmdO
b2RlKCkucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3Jv
bGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpIGFuaW1hdGVkOllFU107CisgICAgICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKworICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2V0
U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyh0cnVlKTsKKyAgICB9IGVsc2UgaWYgKCFhbmltYXRp
b25JblByb2dyZXNzIHx8IG5lZWRUb1N0b3BBbmltYXRpb24pIHsKKyAgICAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNl
dDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpXTsKKyAgICAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUworICAgIH0KIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxXaWxsU3RhcnQoKSBjb25zdApAQCAtMzM1LDYgKzM2
MSwxNSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9s
bFZpZXdEaWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludAogICAgIHNjcm9sbGluZ05vZGUoKS53YXNT
Y3JvbGxlZEJ5RGVsZWdhdGVkU2Nyb2xsaW5nKHNjcm9sbFBvc2l0aW9uLCB7IH0sIGluVXNlcklu
dGVyYWN0aW9uID8gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYyA6IFNjcm9sbGlu
Z0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbigp
Cit7CisgICAgYXV0byYgbm9kZSA9IHNjcm9sbGluZ05vZGUoKTsKKyAgICBpZiAoIShub2RlLnJl
cXVlc3RBbmltYXRlZFNjcm9sbCgpICYmIG5vZGUuc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygp
KSkgeworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgZmFsc2Up
OworICAgICAgICBub2RlLnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoZmFsc2UpOworICAg
IH0KK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjdXJy
ZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25l
ZCB2ZXJ0aWNhbCkgY29uc3QKIHsKICAgICBpZiAobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5ODBiZmI5ZTY5Li5m
MTEzNWE5OWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTE3NjcsOSArMTc2NywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Vmlld05lZWRzRGlzcGxh
eShjb25zdCBSZWdpb24mIHJlZ2lvbikKICAgICBwYWdlQ2xpZW50KCkuc2V0Vmlld05lZWRzRGlz
cGxheShyZWdpb24pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbChjb25z
dCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdp
bikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBjb25zdCBib29sIHdp
dGhBbmltYXRpb24pCiB7Ci0gICAgcGFnZUNsaWVudCgpLnJlcXVlc3RTY3JvbGwoc2Nyb2xsUG9z
aXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgaWYgKHdpdGhBbmltYXRpb24pCisgICAgICAgIHBh
Z2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihzY3JvbGxQb3NpdGlvbiwgc2Ny
b2xsT3JpZ2luKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xs
KHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOwogfQogCiBXZWJDb3JlOjpGbG9hdFBvaW50
IFdlYlBhZ2VQcm94eTo6dmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMGM2YmQyMDI2NC4uNDZjNjMxMjg3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTYxNCw3ICs2MTQsNyBAQCBwdWJs
aWM6CiAgICAgUGFnZUNsaWVudCYgcGFnZUNsaWVudCgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRW
aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpOwotICAgIHZvaWQgcmVxdWVz
dFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbik7CisgICAgdm9pZCByZXF1ZXN0U2Nyb2xs
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSk7CiAg
ICAgCiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24oKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApp
bmRleCBkNmM4YzM4ZDRhLi41MTk4ZWY0NDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtNTcsNiArNTcsNyBAQCBwcml2YXRlOgog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBjcmVhdGVEcmF3aW5nQXJlYVBy
b3h5KFdlYlByb2Nlc3NQcm94eSYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlz
cGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIHJlcXVlc3RT
Y3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVz
dFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pIG92ZXJyaWRlOwog
ICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CiAg
ICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNWaWV3
V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggYTIxMjU2Mzg2MS4uMTM2MTJkZWFiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpA
QCAtOTcsNyArOTcsMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxh
eShjb25zdCBSZWdpb24mKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNv
bnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3Jp
Z2luKQogewotICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNj
cm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW5dOworICAgIFttX3dlYlZpZXcg
X3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdp
bjpzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6Tk9dOworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpy
ZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKK3sKKyAgICBbbV93ZWJWaWV3IF9zY3Jv
bGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Ny
b2xsT3JpZ2luIGFuaW1hdGVkOllFU107CiB9CiAKIFdlYkNvcmU6OkZsb2F0UG9pbnQgUGFnZUNs
aWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDhlNjQ5MzU1NDUuLjNkMzQ1ZDc2
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvci5oCkBAIC03Myw2ICs3MywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2Nyb2xsUG9zaXRp
b25DaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHN5bmNMYXllclBvc2l0aW9uKTsKICAg
ICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCk7CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9s
bEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCisKICAgICBXZWJQYWdlKiBtX3dlYlBhZ2U7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KaW5kZXggMmMwOThhMTA5Ny4uNTM3ZmQzNGQ2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUsOSBAQAogbWVzc2FnZXMgLT4gUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IgewogICAgIFNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5v
ZGUodWludDY0X3Qgbm9kZUlELCBXZWJDb3JlOjpGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uLCBi
b29sIHN5bmNMYXllclBvc2l0aW9uKTsKICAgICBDdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5n
ZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQg
dmVydGljYWwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yLm1tCmluZGV4IDgzNTQ0MWQzMTkuLjY4OWQ1NTYyNmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KQEAgLTEwNCw2
ICsxMDQsMTMgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3VycmVudFNuYXBQ
b2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZShTY3JvbGxpbmcKICAgICBzZXRBY3RpdmVTY3JvbGxT
bmFwSW5kaWNlcyhub2RlSUQsIGhvcml6b250YWwsIHZlcnRpY2FsKTsKIH0KIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxB
bmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAgc2V0U2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhub2RlSUQsIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cyk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388201</attachid>
            <date>2020-01-19 22:22:57 -0800</date>
            <delta_ts>2020-02-12 01:43:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204936-20200120142244.patch</filename>
            <type>text/plain</type>
            <size>155695</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzNDdkNjUyNTMyNDky
ZWEwNDM0ZjU1MmQzOTk1ZGU1MDYwY2QwMy4uOWUyMTZlMTNjYTA1NTMzNWQzY2VjM2M0MTNhY2E5
MTJhN2Y2Mzc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE5LTEyLTExICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBuYXRpdmUgc2Nyb2xsIGludGVyZmFjZXMgZm9y
IGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBU
aGlzIHBhdGNoIHN1cHBvcnQgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gb24gaU9TIHBsYXRmb3Jt
LiBJdCByZWxpZXMgb24gVUlTY3JvbGxWaWV3J3MKKyAgICAgICAgbmF0aXZlIHNjcm9sbCBhbmlt
YXRpb24gc3VwcG9ydCBhbmQgaXMgZXhlY3V0ZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAg
ICAgVGVzdHM6IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3Mu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1l
bGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBmYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCisKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6IFJlcXVlc3RzIGEgbmF0aXZlIHNjcm9sbCBh
bmltYXRpb24gYnkgY2FsbGluZyBhbmltYXRlZCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUo
KS4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RT
Y3JvbGxQb3NpdGlvblVwZGF0ZSk6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBh
biBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk6IFVwZGF0ZSB0aGUg
c2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlKTogQWRkIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIHRvIGlu
ZGljYXRlIGl0J3MgYW5pbWF0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbiBjb25zdCk6IERpdHRvLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzRGlkQ2hhbmdlKTogVXBkYXRlIHRoZSBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cy4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNT
Y3JvbGwpOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIGlmIHRoaXMgaXMgYW4gYW5pbWF0ZWQgc2Ny
b2xsIG9yIG5vdC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTogQWRkIGEgZmxhZyB0byBpbmRpY2F0ZSB0aGUg
c2Nyb2xsIGlzIGFuaW1hdGVkIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyk6IElmIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24gaXMg
dHJ1ZSwgc2VuZCB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJvY2VzcywgZXZlbiBp
ZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGRvZXNuJ3QgY2hhbmdlLgorICAgICAgICBNYWludGFpbiB0
aGUgc3RhdHVzIG9mIG1fc3RvcFNjcm9sbEFuaW1hdGlvbiBhbmQgbV9yZXF1ZXN0QW5pbWF0ZWRT
Y3JvbGwuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3Vy
cmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6IEFuaW1hdGVkIHNjcm9sbCB3b24ndCBjaGFuZ2Ug
dGhlIHNjcm9sbCBwb3NpdGlvbiBpbW1lZGlhdGVseSwgc28gZG9uJ3Qgbm90aWZ5IHRoZSBzY3Jv
bGxpbmcgaW5mbyBub3cuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZTo6c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKTogbV9yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwg
aW5kaWNhdGVzIHRoYXQgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgcmVxdWVzdC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpyZXF1ZXN0QW5pbWF0ZWRT
Y3JvbGwgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTogTWFpbnRhaW4gdGhlIHNj
cm9sbCBhbmltYXRpb24gc3RhdHVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgY29uc3QpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXROZWVkc1N0b3BD
dXJyZW50U2Nyb2xsQW5pbWF0aW9uKTogSWYgdGhlIE5vZGUgaXMgcGVyZm9ybWluZyBhIHNjcm9s
bCBhbmltYXRpb24sIHRoZSBwcmV2aW91cyBzY3JvbGwgYW5pbWF0aW9uIHNob3VsZCBzdG9wIGZp
cnN0LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6Om5lZWRz
U3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24gY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbFR5cGVzLmg6IEFkZCBTY3JvbGxCZWhhdmlvclR5cGUgdG8gaW5kaWNhdGUgaXQn
cyBpbnN0YW50IG9yIHNtb290aCBzY3JvbGwuCisgICAgICAgIEFkZCBTY3JvbGxCZWhhdmlvclN0
YXR1cyB0byBpbmRpY2F0ZSB0aGUgc3RhdHVzIG9mIHNjcm9sbGluZy4KKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFNj
cm9sbFBvc2l0aW9uKTogVXBkYXRlIFNjcm9sbEJlaGF2aW9yVHlwZS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJl
YTo6U2Nyb2xsYWJsZUFyZWEpOiBBZGQgbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlLgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxhYmxlQXJlYTo6Y3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSBjb25zdCk6IE1haW50YWluIGN1
cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJl
YTo6c2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09m
ZnNldCk6IFNlbmQgYSBxdWVzdCBvZiBuYXRpdmUgc2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6IFJlcXVlc3RzIGEgbmF0
aXZlIHNjcm9sbCBhbmltYXRpb24gYnkgY2FsbGluZyBhbmltYXRlZCByZXF1ZXN0U2Nyb2xsUG9z
aXRpb25VcGRhdGUoKS4KKwogMjAyMC0wMS0xOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGln
YWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxp
ZXMgb24gU2Nyb2xsQW5pbWF0aW9uIG9mIHRoZSBXZWIgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3ODQ5
NGYyMTQ2YTAyMzkzN2Q3MmUwY2Q5NTA0OTBmZTVmYmUyNDFkLi44MTkxN2JkOGEzZDRiZGRlZjNi
NjMyNjBmMmYyYTdlMjE1OGQ2NjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE5LTEy
LTExICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBuYXRpdmUgc2Nyb2xsIGludGVy
ZmFjZXMgZm9yIGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKwor
ICAgICAgICBBZGQgQ1NTT00gc21vb3RoIHNjcm9sbGluZyBhcyBhbiBleHBlcmltZW50YWwgZmVh
dHVyZS4gT24gaW9zIHBsYXRmb3JtLCB1c2UgbmF0aXZlIGFuaW1hdGVkIHNjcm9sbGluZworICAg
ICAgICBpbnRlcmZhY2VzIHRvIHBlcmZvcm1hbmNlIHNtb290aCBzY3JvbGwgYW5kIHNlbmQgdGhl
IHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisKKyAgICAgICAgKEFyZ3VtZW50
Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKToKKyAgICAgICAgKEFy
Z3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6ZHVtcCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW06CisgICAgICAgIChwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKTogSGVscCBm
dW5jdGlvbiB0byBjaGVjayBpZiB0d28gZmxvYXQgcG9pbnRzIGFyZSBub3QgZXF1YWwgYnV0IGlu
IHRoZSBzYW1lIGRldmljZSBwaXhlbC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0Nv
bnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46YW5pbWF0ZWQ6XSk6IEFkZCBhbmltYXRl
ZCBmbGFnIHRvIHN0YXJ0IGEgYW5pbWF0ZWQgc2Nyb2xsIGlmIG5lZWRlZC4KKyAgICAgICAgKC1b
V0tXZWJWaWV3IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246XSk6IFNlbmQgc3Jv
bGwgZW5kIG1lc3NhZ2UgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoLVtXS1dlYlZpZXcg
X3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbE9yaWdpbjpdKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOiBQcm92aWRlIGludGVyZmFjZSBmb3IgYW5p
bWF0ZWQgc2Nyb2xsaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKTogQWRkIGFuaW1hdGVk
IGZsYWcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOiBTeW5jIHRoZSBz
Y3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKTogQWRkIGFuaW1hdGVkIHNjcm9sbGluZyBpbmZvIHRvIG1fcmVxdWVzdGVkU2Nyb2xsSW5m
by4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Ny
b2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBTeW5j
IHNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlUm9v
dE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4gSXQncyBz
cGVjaWZpYyB0byB0aGUgcm9vdCBub2RlLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKTog
QWRkIGFuaW1hdGVkIGluZm8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOiBEaXR0by4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3NEaWRDaGFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Ny
b2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246XSk6IFNl
bmQgc2NvbGwgZW5kIGluZm8gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4pOiBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBXZWIgcHJvY2VzcyBpc24ndCBl
cXVhbCB0byB0aGUgVUkgcHJvY2VzcywKKyAgICAgICAgdGhlIHNjcm9sbCBwb3NpdGlvbiBzaG91
bGQgYmUgc3luY2hyb25pemVkLCBldmVuIHRoZXJlJ3Mgbm8gc2Nyb2xsaW5nIHBlcmZvcm1lZCBp
biB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycyk6IENhbGxpbmcgdGhl
IG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcgaW50ZXJmYWNlIGZvciBzbW9vdGggc2Nyb2xsLgor
ICAgICAgICBJZiB0aGVyZSdzIGEgc2Nyb2xsIGFuaW1hdGlvbiBwZXJmb3JtaW5nLCBpdCBzaG91
bGQgYmUgc3RvcHBlZCBmaXJzdCwgdGhlbiBzdGFydCBhIG5ldyBzY3JvbGxpbmcuCisgICAgICAg
IChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZp
ZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24pOiBTeW5jIHNjcm9sbCBlbmQgaW5mbyB0byB0aGUg
V2ViIHByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbCk6IFRvIGNhbGwgZGlmZmVy
ZW50IGZ1bmN0aW9ucyBmb3Igc21vb3RoIGFuZCBpbnN0YW50IHNjcm9sbC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKToKKwogMjAyMC0wMS0x
OSAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIFJlbW92ZSB1c2FnZSBvZiBkZXByZWNhdGVkIEdUaW1lVmFsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKaW5kZXggODlhNzUwMzZiMDhjNzYzMjYzYjNhYWQzZThlZTQ3OTNhNTQ5ZDM5Yy4u
ZjdhOGNlMzRjZmZiZWQ1NzFkYmJjZmYzYjQ1NmJkNjY5NzhlNjlkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMzY2Niw2ICszNjY2LDE0IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3Jv
bGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9s
bFR5CiAgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOwog
ICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRDdXJyZW50U2Nyb2xs
QmVoYXZpb3JUeXBlKFNjcm9sbEJlaGF2aW9yVHlwZTo6U21vb3RoKTsKKyAgICBpZiAocmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpKSkg
eworICAgICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2
aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9u
KQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKICAgICBpZiAo
b2Zmc2V0ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRl
eCA0MjllZWU5YTk2NTNmZGM0ZmY3ZTA5ODgzYmM0YTA4OGZkMWNjZWZlLi4wMmQ1ODk3NTdiMjg4
MzBlMGU1ZWNmYTIyZGFjZGNkMGRkNjc0YTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAt
MjQ4LDcgKzI0OCwxNiBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RT
Y3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJh
Y2tGb3J3YXJkQ2FjaGUgPSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0Zvcndh
cmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBi
b29sIGluUHJvZ3JhbW1hdGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5
cGUoKSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGlj
U2Nyb2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgdXBkYXRlU2Nyb2xsUG9z
aXRpb24gPSBpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpbkJhY2tGb3J3YXJkQ2FjaGU7CisKKyAg
ICBib29sIGFuaW1hdGVkID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBh
bmltYXRlZCA9IHNjcm9sbGFibGVBcmVhLmN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoKSA9PSBT
Y3JvbGxCZWhhdmlvclR5cGU6OlNtb290aDsKKyAgICAvLyBUaGUgc2Nyb2xsIHBvc2l0aW9uIG9m
IGFuaW1hdGVkIHNjcm9sbGluZyB3aWxsIGJlIHNldCBieSB0aGUgVUkgcHJvY2Vzcy4gU28gc2hv
dWxkbid0IHNldCBpdCBub3cuCisgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb24gPSAhYW5pbWF0ZWQg
JiYgdXBkYXRlU2Nyb2xsUG9zaXRpb247CisjZW5kaWYKKyAgICBpZiAodXBkYXRlU2Nyb2xsUG9z
aXRpb24pCiAgICAgICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3Jv
bGxpbmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCB7IH0sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRp
YywgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsKIAogICAgIC8vIElmIHRoaXMg
ZnJhbWUgdmlldydzIGRvY3VtZW50IGlzIGJlaW5nIHB1dCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUsIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIG91cgpAQCAtMjYwLDcgKzI2OSwxMiBAQCBi
b29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogICAgIGlmICghc3RhdGVOb2RlKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNj
cm9sbFBvc2l0aW9uLCBpblByb2dyYW1tYXRpY1Njcm9sbCk7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBhdXRvIHN0YXR1cyA9IGFuaW1hdGVkID8gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6
OkluTmF0aXZlQW5pbWF0aW9uIDogU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9u
OworICAgIHNjcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKHN0YXR1cyk7Cisj
ZW5kaWYKKworICAgIHN0YXRlTm9kZS0+c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xs
UG9zaXRpb24sIGluUHJvZ3JhbW1hdGljU2Nyb2xsLCBhbmltYXRlZCk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTI5MSw2ICszMDUsMzIgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3IKICAg
ICBtX3VwZGF0ZU5vZGVTY3JvbGxQb3NpdGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQog
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBi
b29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8q
IGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUobm9kZUlEKTsKKyAgICBpZiAo
IWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5vZGVJRCA9PSBmcmFtZVZp
ZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAgIGlmICghaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKQorICAgICAgICAgICAgZnJhbWVWaWV3LT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1
cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgLy8gT3ZlcmZsb3ctc2Nyb2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNj
cm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQo
bm9kZUlEKSkgeworICAgICAgICBpZiAoIWlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKKyAg
ICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxC
ZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lk
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3lu
Y1Njcm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3lu
Y1Njcm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5ub2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xs
VXBkYXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3
cG9ydE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBk
YXRlTGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOWJlNjlhYWZi
MWUyODVmOGE1NTM5Mjg5NWNkZTYzNGJjYzE2ZjcxMS4uM2RlMDFjYzI4OTZhNTBkNGU2NDg1Y2Fh
MWQyZGNjNzdkMWRjMDYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTIsNiArNTIsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQcm9wZXJ0aWVzQ2hhbmdlZCgpOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0
ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBP
cHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIAorICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQs
IGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5k
aWNlcyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWxJbmRleCwgdW5zaWduZWQg
dmVydGljYWxJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3MTdiZmMyYTU1
Y2MxOGNiMzhjZGI0NGVkYjBlZjU0MzU4N2YyYWUwLi40ZTQwMTRlOWE2NjhhZWY2NTI0MGU3OThi
ZDY0OTQxMGI1YjVlYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTU2LDYgKzU2
LDkgQEAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3IKICNlbmRpZgogICAgICwgbV9zY3JvbGxhYmxl
QXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpKQogICAg
ICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwo
c3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCgpKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBtX3JlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uV2l0aEFuaW1hdGlvbihzdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25X
aXRoQW5pbWF0aW9uKCkpCisjZW5kaWYKICAgICAsIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHMo
c3RhdGVOb2RlLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiB7CiAgICAgaWYgKGhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxDb250YWluZXJMYXllcikpCkBAIC0yMTksMTAgKzIyMiwxNSBAQCB2
b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0
ZXJzKGNvbnN0IFNjcm9sbGFibGVBcgogICAgIHNldFByb3BlcnR5Q2hhbmdlZChTY3JvbGxhYmxl
QXJlYVBhcmFtcyk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRS
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQordm9pZCBTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwsIGJvb2wgcmVxdWVzdGVkV2l0aEFuaW1hdGlvbikKIHsKICAgICBtX3JlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiAgICAgbV9yZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgPSByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9y
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24gPSByZXF1ZXN0ZWRXaXRoQW5pbWF0
aW9uOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVxdWVzdGVkV2l0aEFuaW1hdGlvbik7Cisj
ZW5kaWYKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwog
fQogCkBAIC0zMTQsNiArMzIyLDExIEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUCiAgICAgaWYg
KG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQog
ICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gcmVwcmVz
ZW50cyBwcm9ncmFtbWF0aWMgc2Nyb2xsIiwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICBpZiAobV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24pCisgICAgICAgIHRz
LmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB3aXRoIGFuaW1hdGlvbiIs
IG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKTsKKyNlbmRpZgorCiAgICAg
aWYgKCFtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICB0
cy5kdW1wUHJvcGVydHkoInBhcmVudCByZWxhdGl2ZSBzY3JvbGxhYmxlIHJlY3QiLCBtX3BhcmVu
dFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDQ5
NjdhNmNlODEyZjJiYTNiMmZiZjBkOTEyYTAzNTcxNzhlOGYxNzEuLjZjNjkyYzFkYzViNDk1YTkx
MmI1MGI3NTU0MjY3NGM2OGVjMGZmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xMTEs
NyArMTExLDEwIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEZsb2F0UG9pbnQmIHJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsg
fQogICAgIGJvb2wgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGlj
U2Nyb2xsKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGw7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCByZXF1
ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbjsgfQorI2VuZGlmCisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jiwg
Ym9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHJlcXVlc3RlZFdpdGhBbmlt
YXRpb24pOwogCiAgICAgYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpIGNvbnN0IHsgcmV0
dXJuIG1faXNNb25pdG9yaW5nV2hlZWxFdmVudHM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldElzTW9uaXRvcmluZ1doZWVsRXZlbnRzKGJvb2wpOwpAQCAtMTcxLDYgKzE3NCw5IEBAIHBy
aXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJh
bWV0ZXJzOwogCiAgICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCB7IGZhbHNlIH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICBib29sIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uIHsgZmFsc2UgfTsK
KyNlbmRpZgogICAgIGJvb2wgbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5k
ZXggMTUxYWMyOWY4YTUzY2RkMzg3YzkzYzQ3NWE1ZGVkMzZjYzZkMWM0Zi4uN2FkZGZlZjRhMWI3
Njg5YTlkZTdlZDY3MjQ2MjQ2MmQ3OTU4ZDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtODIsOCArODIsMTMgQEAgcHVibGljOgogICAg
IC8vIFVwZGF0ZXMgRnJhbWVWaWV3L1JlbmRlckxheWVyIHNjcm9sbGluZyBzdGF0ZSBhbmQgR3Jh
cGhpY3NMYXllcnMuCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xs
KFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpID0gMDsKIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgLy8gQ2FsbGVkIGZvciBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1
cyB1cGRhdGVzLgorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wg
Lyppc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MqLykgeyB9CisjZW5kaWYKKwogICAgIC8vIENh
bGxlZCBmb3IgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzLgotICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29u
c3QgRmxvYXRQb2ludCYgLypzY3JvbGxQb3NpdGlvbiovLCBib29sIC8qcmVwcmVzZW50c1Byb2dy
YW1tYXRpY1Njcm9sbCovKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVS
ZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIC8qc2Nyb2xs
UG9zaXRpb24qLywgYm9vbCAvKnJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwqLywgYm9vbCAv
KndpdGhBbmltYXRpb24qLyA9IGZhbHNlKSB7IH0KIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxp
bmcvem9vbWluZyBoYXMgY2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVwZGF0ZSB2
aWV3cG9ydC1jb25zdHJhaW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1haW5G
cmFtZVZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsYXlvdXRWaWV3cG9y
dCwgZG91YmxlIHNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3M2RjYTI4ZWYx
ZTNjMmQ1NWE5NTNmYzVlNDA2NzZjMzcxYWVkOWU2Li4xN2M3ZjJhOGZhNGI5NmM4YzJlZmUzZDZj
NzU4NTI3MGI0ZWJhOGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMDcsOCArMTA3
LDEyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3Jl
Q2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2Rl
JiBzdGF0ZU5vZGUpCiB7CiAgICAgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBz
Y3JvbGxpbmdTdGF0ZU5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+
KHN0YXRlTm9kZSk7CisgICAgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICB3aXRoQW5pbWF0aW9uID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uV2l0aEFuaW1hdGlvbigpOworI2VuZGlmCiAgICAgaWYgKHNj
cm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpCi0gICAgICAgIHNjcm9sbGluZ1RyZWUo
KS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3Jv
bGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsaW5nU3RhdGVO
b2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgp
KTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3Jv
bGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbigpLCBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCksIHdpdGhBbmltYXRpb24pOwogCiAgICAgbV9pc0Zp
cnN0Q29tbWl0ID0gZmFsc2U7CiB9CkBAIC0xNTcsMjEgKzE2MSw0MSBAQCB2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBTY3Jv
bGxQb3NpdGlvbgogICAgIHNjcm9sbFRvKGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpICsgZGVsdGEs
IFNjcm9sbFR5cGU6OlVzZXIsIGNsYW1wKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbFR5cGUg
c2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25DbGFtcCBjbGFtcCkKK3ZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXAsIGJvb2wgbmVlZFN5
bmNTY3JvbGxQb3NpdGlvbikKIHsKLSAgICBpZiAocG9zaXRpb24gPT0gbV9jdXJyZW50U2Nyb2xs
UG9zaXRpb24pCisgICAgaWYgKHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSB7
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgLy8gU2VuZCB0aGUgc2Nyb2xsIHBv
c2l0aW9uIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgaWYgKHJlcXVlc3RBbmltYXRlZFNj
cm9sbCgpICYmIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24pCisgICAgICAgICAgICBzY3JvbGxpbmdU
cmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMsIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb246OlN5bmMpOworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJl
ZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2Uoc2Nyb2xsaW5nTm9kZUlE
KCksIGZhbHNlKTsKKyAgICAgICAgc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGZhbHNlKTsKKyNl
bHNlCisgICAgICAgIFVOVVNFRF9QQVJBTShuZWVkU3luY1Njcm9sbFBvc2l0aW9uKTsKKyNlbmRp
ZgogICAgICAgICByZXR1cm47CisgICAgfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICAvLyBJZiBkdXJpbmcgYSBzY3JvbGwgYW5pbWF0aW9uLCBuZWVkIHRvIHN0b3AgaXQgYmVmb3Jl
IHN0YXJ0aW5nIGEgbmV3IG9uZS4KKyAgICBpZiAoc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygp
KQorICAgICAgICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKHRydWUpOworI2Vu
ZGlmCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwo
c2Nyb2xsVHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOwotICAgIAorCiAgICAgbV9j
dXJyZW50U2Nyb2xsUG9zaXRpb24gPSBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBj
bGFtcCk7Ci0gICAgCisKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwg
IlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBz
Y3JvbGxUbyAiIDw8IHBvc2l0aW9uIDw8ICIgKGRlbHRhIGZyb20gbGFzdCBjb21taXR0ZWQgcG9z
aXRpb24gIiA8PCAobV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gLSBtX2N1cnJlbnRTY3Jv
bGxQb3NpdGlvbikgPDwgIikiKTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9s
bFBvc2l0aW9uKCk7CiAgICAgY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogCiAgICAg
c2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2UpOwor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzZXROZWVkc1N0b3BDdXJyZW50U2Nyb2xs
QW5pbWF0aW9uKGZhbHNlKTsKKyAgICBzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoZmFsc2UpOwor
I2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3Jv
bGxQb3NpdGlvbkNoYW5nZWQoKQpAQCAtMTc5LDYgKzIwMywxMCBAQCB2b2lkIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKICAgICByZXBv
c2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCk7CiAgICAgcmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKTsK
IAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFyZXF1ZXN0QW5pbWF0ZWRTY3Jv
bGwoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCiAgICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlm
eVJlbGF0ZWROb2Rlc0FmdGVyU2Nyb2xsUG9zaXRpb25DaGFuZ2UoKnRoaXMpOwogICAgIHNjcm9s
bGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcyk7CiB9CkBAIC0yNjYs
NiArMjk0LDM3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0
aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAgdHMuZHVtcFByb3BlcnR5
KCJzY3JvbGxhYmxlIGFyZWEgcGFyYW1ldGVycyIsIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJz
KTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCBhbmltYXRlZCkKK3sKKyAg
ICBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCA9IGFuaW1hdGVkOworfQorCitib29sIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSBjb25zdAoreworICAg
IHJldHVybiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbDsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sIGluUHJvZ3Jl
c3MpCit7CisgICAgbV9zY3JvbGxBbmltYXRpb25JblByb2dyZXNzID0gaW5Qcm9ncmVzczsKK30K
KworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzczsK
K30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbihib29sIHN0b3ApCit7CisgICAgbV9uZWVkc1N0b3BDdXJyZW50U2Ny
b2xsQW5pbWF0aW9uID0gc3RvcDsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbjsKK30KKyNlbmRpZgogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5oCmluZGV4IDRjYmY0ZDFhZjBkY2Y0NzAxMzRmNGI3MjY0ZjIwZGI3Yjk1ZWM5
ZGQuLmY5ZjMxMGRiOWNmNGExODE5YzY4ODMzYmZmYWYyNzU0OGUwNjkwZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHNjcm9s
bERlbHRhU2luY2VMYXN0Q29tbWl0KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9z
aXRpb24gLSBtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8gVGhlc2Ug
YXJlIGltcGVyYXRpdmU7IHRoZXkgYWRqdXN0IHRoZSBzY3JvbGxpbmcgbGF5ZXJzLgotICAgIHZv
aWQgc2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpV
c2VyLCBTY3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xsUG9zaXRpb25DbGFtcDo6VG9Db250ZW50
RWRnZXMpOworICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUg
PSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxQb3NpdGlvbkNsYW1wID0gU2Nyb2xsUG9zaXRpb25D
bGFtcDo6VG9Db250ZW50RWRnZXMsIGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiA9IGZhbHNl
KTsKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYsIFNjcm9sbFBvc2l0aW9uQ2xh
bXAgPSBTY3JvbGxQb3NpdGlvbkNsYW1wOjpUb0NvbnRlbnRFZGdlcyk7CiAKICAgICB2b2lkIHdh
c1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24s
IE9wdGlvbmFsPEZsb2F0UmVjdD4gb3ZlcnJpZGVMYXlvdXRWaWV3cG9ydCA9IHsgfSwgU2Nyb2xs
aW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5
bmMpOwpAQCAtOTEsNiArOTEsMTUgQEAgcHVibGljOgogICAgIGNvbnN0IExheWVyUmVwcmVzZW50
YXRpb24mIHNjcm9sbENvbnRhaW5lckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxDb250
YWluZXJMYXllcjsgfQogICAgIGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbGVkQ29u
dGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOyB9CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2V0UmVxdWVzdEFuaW1hdGVkU2Ny
b2xsKGJvb2wpOworICAgIGJvb2wgcmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3Q7CisgICAg
dm9pZCBzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKGJvb2wpOworICAgIGJvb2wgc2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0OworICAgIHZvaWQgc2V0TmVlZHNTdG9wQ3VycmVu
dFNjcm9sbEFuaW1hdGlvbihib29sKTsKKyAgICBib29sIG5lZWRzU3RvcEN1cnJlbnRTY3JvbGxB
bmltYXRpb24oKSBjb25zdDsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxp
bmdOb2RlSUQpOwogCkBAIC0xNDgsNiArMTU3LDEyIEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogICAgIGJvb2wgbV9p
c0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBi
b29sIG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX25lZWRzU3RvcEN1cnJl
bnRTY3JvbGxBbmltYXRpb24geyBmYWxzZSB9OworI2VuZGlmCisKICAgICBMYXllclJlcHJlc2Vu
dGF0aW9uIG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXI7CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBt
X3Njcm9sbGVkQ29udGVudHNMYXllcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlw
ZXMuaAppbmRleCBmNDU3YjE1NjFlMzdiMDdlZDAwZjgxYTFmYTJlM2VkOGIwMWZmMWEzLi5mNmQz
NTY2NWYzM2ZmNGJhNzkzMGQyZDhjODEwNTAwNTIyNTdjYzI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFR5cGVzLmgKQEAgLTU0LDExICs1NCwxOSBAQCBlbnVtIGNsYXNzIFNjcm9sbFBv
c2l0aW9uQ2xhbXAgOiB1aW50OF90IHsKICAgICBUb0NvbnRlbnRFZGdlcywKIH07CiAKLS8vIEZJ
WE1FOiBBZGQgYW5vdGhlciBzdGF0dXMgSW5OYXRpdmVBbmltYXRpb24gdG8gaW5kaWNhdGUgbmF0
aXZlIHNjcm9sbGluZyBpcyBpbiBwcm9ncmVzcy4KLS8vIFNlZTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCitlbnVtIGNsYXNzIFNjcm9sbEJlaGF2aW9yVHlwZSA6
IHVpbnQ4X3QgeworICAgIEluc3RhbnQsCisgICAgU21vb3RoLAorfTsKKyNlbmRpZgorCiBlbnVt
IGNsYXNzIFNjcm9sbEJlaGF2aW9yU3RhdHVzIDogdWludDhfdCB7CiAgICAgTm90SW5BbmltYXRp
b24sCiAgICAgSW5Ob25OYXRpdmVBbmltYXRpb24sCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBJbk5hdGl2ZUFuaW1hdGlvbiwKKyNlbmRp
ZgogfTsKIAogaW5saW5lIFNjcm9sbERpcmVjdGlvbiBsb2dpY2FsVG9QaHlzaWNhbChTY3JvbGxM
b2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBpc1ZlcnRpY2FsLCBib29sIGlzRmxpcHBl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMTg3MzVlYWU5ZmUz
Y2E2ZDZkZTc3ZTRhZWZjMzVkYWI0ZTgxNjRhNS4uNGY1NmM5OTQ1MjFjNjMzOGFmYzFkNmJhMGRh
NzdmYmU4N2QzOTRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAg
LTUyMiw2ICs1MjIsMTAgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIGJvb2wvKgogewogICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRp
b24gIiA8PCBzY3JvbGxQb3NpdGlvbik7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUo
U2Nyb2xsQmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRpZgorCiAgICAgaWYgKHByb2hpYml0
c1Njcm9sbGluZygpKQogICAgICAgICByZXR1cm47CiAKQEAgLTUzOCwxMCArNTQyLDggQEAgdm9p
ZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Ny
b2xsUG9zaXRpb24sIGJvb2wvKgogICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMo
KSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pCiAgICAgICAg
IHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwogCi0gICAgaWYgKHJlcXVlc3RT
Y3JvbGxQb3NpdGlvblVwZGF0ZShuZXdTY3JvbGxQb3NpdGlvbikpIHsKLSAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsK
KyAgICBpZiAocmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKG5ld1Njcm9sbFBvc2l0aW9uKSkK
ICAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIHVwZGF0ZVNjcm9sbGJhcnMobmV3U2Nyb2xs
UG9zaXRpb24pOwogICAgIHNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpOb3RJbkFuaW1hdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5jcHAKaW5kZXggZjUzNWY2MzI0MGMxMGZkZWI3NDQ2MTNhZjQwY2M4ZmFhYjdmOGIyMi4u
YTRhYjAxZmIwNTQ5NzQ3YzEwZTg0NDIyOGZhZTg3NWJiNGE3MmY2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNzEsNiArNzEsOSBAQCBTY3JvbGxh
YmxlQXJlYTo6U2Nyb2xsYWJsZUFyZWEoKQogICAgICwgbV9zY3JvbGxPcmlnaW5DaGFuZ2VkKGZh
bHNlKQogICAgICwgbV9jdXJyZW50U2Nyb2xsVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oU2Ny
b2xsVHlwZTo6VXNlcikpCiAgICAgLCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKGZh
bHNlKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
CisgICAgLCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFNjcm9sbEJlaGF2aW9yVHlwZTo6SW5zdGFudCkpCisjZW5kaWYKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNGJkOWQ5NTI5NjQ5OGIyMmY1YjE1
N2JkZTVkNzY4YjcwMjU4M2FkNi4uODA3NGU4ZjU3OGJjOTRlMjVhM2FmNTllMTRjMjk4YmU4YTM2
OWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0yNDcs
NiArMjQ3LDExIEBAIHB1YmxpYzoKICAgICBTY3JvbGxUeXBlIGN1cnJlbnRTY3JvbGxUeXBlKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsVHlwZT4obV9jdXJyZW50U2Nyb2xsVHlw
ZSk7IH0KICAgICB2b2lkIHNldEN1cnJlbnRTY3JvbGxUeXBlKFNjcm9sbFR5cGUgc2Nyb2xsVHlw
ZSkgeyBtX2N1cnJlbnRTY3JvbGxUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcm9sbFR5
cGUpOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKQorICAgIFNjcm9sbEJlaGF2aW9yVHlwZSBjdXJyZW50U2Nyb2xsQmVoYXZpb3JUeXBlKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsQmVoYXZpb3JUeXBlPihtX2N1cnJlbnRT
Y3JvbGxCZWhhdmlvclR5cGUpOyB9CisgICAgdm9pZCBzZXRDdXJyZW50U2Nyb2xsQmVoYXZpb3JU
eXBlKFNjcm9sbEJlaGF2aW9yVHlwZSBzY3JvbGxCZWhhdmlvclR5cGUpIHsgbV9jdXJyZW50U2Ny
b2xsQmVoYXZpb3JUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcm9sbEJlaGF2aW9yVHlw
ZSk7IH0KKyNlbmRpZgorCiAgICAgYm9vbCBzY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGU7IH0KICAgICB2
b2lkIHNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKGJvb2wgc2hvdWxkQ2xlYXIpIHsg
bV9zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSA9IHNob3VsZENsZWFyOyB9CiAKQEAgLTQx
MCw2ICs0MTUsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hhbmdl
ZCA6IDE7CiAgICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9sbFR5
cGUKICAgICB1bnNpZ25lZCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIHVu
c2lnbmVkIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZSA6IDE7CisjZW5kaWYKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCmluZGV4IDhkOTdjNmEyNjg5ZDViODcwNTIxMGZmNTNiYTg1MzMwYWM2ODJhMzguLjFlNmVh
MDVlOTAyMWEzYzUzMzFmY2VhNGViZmU1YzljZTk4NzkyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjYwNiwxMiArMjYwNiwyNCBAQCBTY3JvbGxPZmZz
ZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Ny
b2xsT2Zmc2V0KSBjbwogCiB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBT
Y3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxD
bGFtcGluZyBjbGFtcGluZykKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQorICAgIHNldEN1cnJlbnRTY3JvbGxCZWhhdmlvclR5cGUoU2Nyb2xs
QmVoYXZpb3JUeXBlOjpJbnN0YW50KTsKKyNlbmRpZgorCiAgICAgaWYgKGN1cnJlbnRTY3JvbGxC
ZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1h
dGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CiAKICAg
ICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9s
bE9mZnNldDsKLSAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZz
ZXQoKSkKKyAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQo
KSkgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcp
CisgICAgICAgIC8vIElmIFVJU2Nyb2xsVmlldyBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1h
dGlvbiwgdGhlIHNjcm9sbCBvZmZzZXQgb2YgdGhlIFdlYiBwcm9jZXNzIG1pZ2h0IGJlIG92ZXJy
aWRkZW4uCisgICAgICAgIC8vIFNvIHdlIG5lZWQgdG8gY2FsbCByZXF1ZXN0U2Nyb2xsUG9zaXRp
b25VcGRhdGUgaGVyZSBhbmQgbGV0IGl0IGJlIGNoZWNrZWQgb24gdGhlIFVJIHByb2Nlc3MuCisg
ICAgICAgIC8vIElmIHRoZSBzY3JvbGwgb2Zmc2V0IG9uIHRoZSBVSSBwcm9jZXNzIGlzIGRpZmZl
cmVudCwgdGhlIGNvcnJlY3Qgc2Nyb2xsIG9mZnNldCBuZWVkcyB0byBzeW5jIGJhY2sgdG8gdGhl
IFdlYiBwcm9jZXNzLgorICAgICAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkg
PT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICAgICAg
cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFt
cGVkU2Nyb2xsT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAg
IGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRD
dXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKQEAgLTI2MjEsOSArMjYzMywxMCBAQCB2b2lk
IFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9m
ZnNldCwgU2Nyb2xsVHlwZSBzYwogICAgIGhhbmRsZWQgPSByZXF1ZXN0U2Nyb2xsUG9zaXRpb25V
cGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpKTsKICNl
bmRpZgogCi0gICAgaWYgKCFoYW5kbGVkKQorICAgIGlmICghaGFuZGxlZCkgewogICAgICAgICBz
Y3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY2xhbXBlZFNjcm9sbE9mZnNldCwgY2xhbXBp
bmcpOwotICAgIHNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpO
b3RJbkFuaW1hdGlvbik7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgfQogCiAgICAgc2V0Q3VycmVudFNj
cm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKIH0KQEAgLTI2NDIsNiArMjY1NSwxNCBAQCB2
b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xs
T2Zmc2V0JiBvZmZzZXQsIFNjcm9sbAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3Vy
cmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsK
IAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisg
ICAgc2V0Q3VycmVudFNjcm9sbEJlaGF2aW9yVHlwZShTY3JvbGxCZWhhdmlvclR5cGU6OlNtb290
aCk7CisgICAgaWYgKHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShzY3JvbGxQb3NpdGlvbkZy
b21PZmZzZXQob2Zmc2V0KSkpIHsKKyAgICAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlv
dXNTY3JvbGxUeXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgU2Ny
b2xsT2Zmc2V0IG5ld1Njcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpD
bGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQob2Zmc2V0KSA6IG9mZnNldDsKICAgICBpZiAoY3Vy
cmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9u
TmF0aXZlQW5pbWF0aW9uKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlv
bnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0
aW9uLmNwcAppbmRleCAwYmI3MDQxZWQ0N2VmODllN2Q5NzdjMTc3NTQ5OWU1NzEzNmEyZjg2Li5j
NGMwZjMzNmNiYjZiNzJhOTZjN2VmYmMxNzZiNTRiYjk0M2UwMWE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xNTMsNiAr
MTUzLDkgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdAogICAgIFNDUk9MTElOR19OT0RFX0VOQ09E
RShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zLCBzY3Jv
bGxhYmxlQXJlYVBhcmFtZXRlcnMpCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5p
bWF0aW9uKQorI2VuZGlmCiAKICAgICBpZiAobm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCiAgICAgICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2Rl
LnNjcm9sbENvbnRhaW5lckxheWVyKCkpOwpAQCAtMjYxLDcgKzI2NCwxMiBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFNjcm9sbAogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIG5v
ZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQ
cm9ncmFtbWF0aWNTY3JvbGwpOworICAgICAgICBib29sIHNjcm9sbFdpdGhBbmltYXRpb24gPSBm
YWxzZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHNjcm9sbFdpdGhBbmltYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCisgICAgICAgIG5vZGUuc2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRp
b24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIHNjcm9sbFdpdGhBbmltYXRpb24pOwog
ICAgIH0KIAogICAgIGlmIChub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkgewpAQCAtNjA5LDYgKzYxNyw5IEBA
IHN0YXRpYyB2b2lkIGR1bXAoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZSYgbm9kZSwgYm9vbCBjCiAgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllc09ubHkg
fHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpS
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpIHsKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1
ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uIiwgbm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpKTsK
ICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLWlzLXBy
b2dyYW1hdGljIiwgbm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwoKSk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgdHMuZHVt
cFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLXdpdGgtYW5pbWF0aW9uIiwgbm9k
ZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbldpdGhBbmltYXRpb24oKSk7CisjZW5kaWYKICAgICB9
CiAKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9T
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCmluZGV4
IDQzNjlkMjcxNGEyMTA5NTU3ZDcxNDUyZGJhMzY2YmU0NDQ2Y2I0NDEuLjliNDhkNTNmNzFhMDNm
MTI5MzA5YTA0OGI5NjFmNDljNmE4OGM4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaApAQCAtNjAsNyArNjAsNyBAQAogCiAtIChSZWZQdHI8
V2ViS2l0OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90OwogCi0tICh2b2lkKV9zY3Jv
bGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3Np
dGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbjsKKy0gKHZv
aWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNj
cm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2lu
IGFuaW1hdGVkOihCT09MKWFuaW1hdGVkOwogLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3Jl
OjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2lu
IG1pbmltdW1TY3JvbGxEaXN0YW5jZTooZmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNlOwogCiAt
IChkb3VibGUpX2luaXRpYWxTY2FsZUZhY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggODFjODQ0OTMwN2QyNTBhMGUyMTI2MGY5
ZTk5NGUxOTQ4YzJlM2Q4YS4uNjdhZmEyNjZmOWIyZGE3NmNjYzE0ZDM2MGUzMjE5ZDUyNDMzNWY1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1Mu
bW0KQEAgLTM0NSw2ICszNDUsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHBvaW50c0VxdWFsSW5E
ZXZpY2VQaXhlbHMoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVMKICAgICAgICAg
JiYgZmFicyhhLnkgKiBkZXZpY2VTY2FsZUZhY3RvciAtIGIueSAqIGRldmljZVNjYWxlRmFjdG9y
KSA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCk7CiB9CiAKK3N0YXRpYyBp
bmxpbmUgYm9vbCBwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKENHUG9pbnQgYSwgQ0dQ
b2ludCBiLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICByZXR1cm4gQ0dSb3VuZChh
LnggKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChiLnggKiBkZXZpY2VTY2FsZUZhY3Rv
cikKKyAgICAgICAgJiYgQ0dSb3VuZChhLnkgKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3Vu
ZChiLnkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CisKIHN0YXRpYyBDR1NpemUgcm91bmRTY3Jv
bGxWaWV3Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIENHU2l6
ZSBjb250ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IHBhZ2UuZGV2
aWNlU2NhbGVGYWN0b3IoKTsKQEAgLTEwOTYsOSArMTEwMiwxMCBAQCBzdGF0aWMgV2ViQ29yZTo6
RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29u
dGVudE9mZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihXZWJD
b3JlOjpGbG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNvbnRlbnRPZmZz
ZXQpKTsKIH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNv
cmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQ
b2ludClzY3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9u
OihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29y
ZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7Ci0gICAg
aWYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVw
ZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemlu
ZykKKyAgICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBwZWQuCisgICAg
aWYgKCFhbmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8fCBfZHlu
YW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1v
ZGU6Ok5vdFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6RmxvYXRQ
b2ludCBjb250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNl
dEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2luKSk7
CkBAIC0xMTEyLDEzICsxMTE5LDIyIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0
cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAKICAgICBb
X3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CiAKLSAgICBp
ZiAoIUNHUG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzLCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Njcm9sbFZpZXcg
c2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXNdOwor
ICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1dCBpbiB0aGUg
c2FtZSBkZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4KKyAgICAvLyBX
ZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhlcmUuCisgICAg
aWYgKCFwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZzZXRJblNjcm9s
bFZpZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBfcGFnZS0+ZGV2
aWNlU2NhbGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0
OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDphbmltYXRlZF07
CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBhbnl0aGluZywg
dGhlcmUgd291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRlIHNlbnQgdG8g
dGhlIGNvbnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtlZXAgdGhlIGlu
dmFsaWQgY29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAgICAgICAvLyBU
byBzeW5jaHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2NyZWVuLCB3ZSBz
ZW5kIHRoZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdlLT5yZXNlbmRM
YXN0VmlzaWJsZUNvbnRlbnRSZWN0cygpOworCisgICAgICAgIC8vIElmIF9zY3JvbGxWaWV3IHdv
bid0IGNoYW5nZSwgd2Ugc3RpbGwgbmVlZCB0byB0ZWxsIHRoZSBXZWIgcHJvY2VzcyB0aGF0IHRo
ZSBhbmltYXRpb24gc3RvcHBlZC4KKyAgICAgICAgaWYgKGFuaW1hdGVkKSB7CisgICAgICAgICAg
ICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9yID0g
X3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICAgICAgICAgIGlmIChjb29y
ZGluYXRvcikKKyAgICAgICAgICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZVJvb3RO
b2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsKKyAgICAgICAg
fQogICAgIH0KIH0KIApAQCAtMTYzNCw2ICsxNjUwLDEwIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9h
dFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50
T2ZmCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcKIHsKICAgICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xsaW5nXTsKKwor
ICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSogY29vcmRpbmF0b3Ig
PSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOworICAgIGlmIChjb29yZGluYXRv
cikKKyAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CiB9CiAKIC0gKHZvaWQpX3Njcm9sbFZp
ZXdEaWRJbnRlcnJ1cHREZWNlbGVyYXRpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA5Y2I3ODBmNDA3ZmQ2ZDJmZmRiMTky
YjQ1ZGM5ZjMwZjMzMTZjOTdkLi4wMzNiYjQ3MmVmZjEwZWY3MGE5MmRiYzA0MzFjODhkYjhkMTUx
MmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDgg
QEAgcHVibGljOgogICAgIC8vIFRlbGwgdGhlIHZpZXcgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBw
b3NpdGlvbiwgYW5kIHdoZXRoZXIgdGhpcyB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgogICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBzY3JvbGxPcmlnaW4pIHsgfQorCiAgICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBw
b3NpdGlvbiAobm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBw
b3NpdGlvbiwgYmVjYXVzZSBvZiBzY2FsaW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdl
YkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgPSAwOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDM4MGYxMjQ0NDM0
ZjVjOGZmNzczYjEwYTU3NGJkY2I5Mjk0NzA3YWIuLjBhNDJmOTQ0OTdlNWI3NWNmYmVkOTM2NzU0
Njg5NjFiMWU2MGNhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5Lm1tCkBAIC0yMjQsOCArMjI0LDE0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5z
CiAKICAgICAvLyBIYW5kbGUgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzIGZyb20g
dGhlIHNjcm9sbGluZyB0cmVlIHRyYW5zYWN0aW9uIGFmdGVyIGRpZENvbW1pdExheWVyVHJlZSgp
CiAgICAgLy8gaGFzIHVwZGF0ZWQgdGhlIHZpZXcgc2l6ZSBiYXNlZCBvbiB0aGUgY29udGVudCBz
aXplLgotICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25V
cGRhdGUpCi0gICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Ny
b2xsSW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Ny
b2xsT3JpZ2luKCkpOworICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xs
UG9zaXRpb25VcGRhdGUpIHsKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChy
ZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAs
IGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbE9yaWdpbigpCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICAgICAgICAgICwgcmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0V2l0aEFuaW1h
dGlvbgorI2VuZGlmCisgICAgICAgICAgICApOworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKQogCiAgICAgaWYgKG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5k
ZXggZTc5NDFhODRhOWFlY2YwN2Y1ZmUyN2M4YTJlOTc3NDBiZmZkZjg1MC4uOTY1ZGQwMDE2OWUw
M2M3Y2QxZmYzNzA1N2Q3MDdkYmRjMTNhMjM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRD
aGFuZ2UoV2ViQ29yZTo6CiB9CiAKIC8vIFRoaXMgY29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRy
ZWUuCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVO
b2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQ
b2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlv
dXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2Rl
SUQsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxG
bG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlk
U3RvcEFuaW1hdGlvbikKIHsKICAgICAvLyBTY3JvbGwgdXBkYXRlcyBmb3IgdGhlIG1haW4gZnJh
bWUgYXJlIHNlbnQgdmlhIFdlYlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cygp
CiAgICAgLy8gc28gZG9uJ3Qgc2VuZCB0aGVtIGhlcmUuCkBAIC0yMjIsMjEgKzIyMiwzNiBAQCB2
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlk
U2Nyb2xsKFNjcm9sbGluZ05vZGVJRAogICAgIG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVT
Y3JvbGxWaWV3RGlkU2Nyb2xsKCk7CiAjZW5kaWYKIAotICAgIGlmIChtX3Njcm9sbGluZ1RyZWUt
PmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSkKKyAgICBpZiAobV9zY3JvbGxpbmdUcmVl
LT5pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKCkgJiYgIWluc3RhbnRTY3JvbGxEaWRTdG9w
QW5pbWF0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6U2Nyb2xsUG9zaXRpb25DaGFuZ2Vk
Rm9yTm9kZShzY3JvbGxlZE5vZGVJRCwgbmV3U2Nyb2xsUG9zaXRpb24sIHNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb24gPT0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykpOwog
fQogCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVO
b2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Ny
b2xsKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVl
Tm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Nj
cm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQogewogICAgIGlmIChzY3JvbGxlZE5vZGVJRCA9PSBy
b290U2Nyb2xsaW5nTm9kZUlEKCkgJiYgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvKSB7CiAgICAgICAg
IG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSA9IHRy
dWU7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdElzUHJvZ3JhbW1hdGlj
U2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RXaXRoQW5pbWF0
aW9uID0gd2l0aEFuaW1hdGlvbjsKKyNlbmRpZgogICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbElu
Zm8tPnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247CiAgICAgfQogfQog
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRD
aGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBib29sIGlzU2Ny
b2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0NoYW5nZWRGb3JOb2RlKHNjcm9sbGVkTm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jl
c3MpKTsKK30KKwordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxp
bmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoYm9vbCBp
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3NDaGFuZ2VkRm9yTm9kZShyb290U2Nyb2xsaW5nTm9kZUlEKCksIGlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcykpOworfQorI2VuZGlmCisKIFN0cmluZyBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkgY29uc3QKIHsKICAgICBpZiAobV9z
Y3JvbGxpbmdUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmgKaW5kZXggMTA0ZGVmY2NjMDM1NTZmMTVlNzJlNzgyMTIxYzlkZGFlY2EyZDVkOS4uOTI5
NzIyNTM0M2I1YmRhNTc0Yjg2Zjg2OWQxM2U5YWQzYzVhYWUxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01NSw5ICs1NSwxNCBAQCBwdWJs
aWM6CiAgICAgZXhwbGljaXQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eShXZWJQYWdl
UHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJ
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisgICAgdm9pZCBzY3JvbGxp
bmdUcmVlUm9vdE5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoYm9vbCBp
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCisKICAgICAvLyBJbmZvcm0gdGhl
IHdlYiBwcm9jZXNzIHRoYXQgdGhlIHNjcm9sbCBwb3NpdGlvbiBjaGFuZ2VkIChjYWxsZWQgZnJv
bSB0aGUgc2Nyb2xsaW5nIHRyZWUpCi0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9s
bChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5l
d1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiYgbGF5
b3V0Vmlld3BvcnRPcmlnaW4sIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24p
OwotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBi
b29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uLCBib29sIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uID0gZmFsc2Up
OworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBi
b29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwsIGJvb2wgd2l0aEFuaW1hdGlvbiA9IGZh
bHNlKTsKIAogICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSBldmVudFRyYWNraW5nVHlwZUZvclBv
aW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50TmFtZSwgV2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0
OwogCkBAIC04MCw2ICs4NSw5IEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgUmVxdWVzdGVkU2Nyb2xs
SW5mbyB7CiAgICAgICAgIGJvb2wgcmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSB7IH07CiAg
ICAgICAgIGJvb2wgcmVxdWVzdElzUHJvZ3JhbW1hdGljU2Nyb2xsIHsgfTsKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgICAgICBib29sIHJlcXVlc3RXaXRoQW5pbWF0aW9uIHsgfTsKKyNl
bmRpZgogICAgICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
OwogICAgIH07CiAgICAgdm9pZCBjb21taXRTY3JvbGxpbmdUcmVlU3RhdGUoY29uc3QgUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbiYsIFJlcXVlc3RlZFNjcm9sbEluZm8mKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAppbmRleCBkMGRiNzdkZmNkZjQ2MzBhY2M2ZjI2
MjA0OTJjYWVjNjBhZjgwMjZhLi5kMDljMWFjOGY1NDI4ZGRkNWE2YTY2YTA4Yzk5ZmJiYThkZjMw
YTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC0xMDQsMTIgKzEwNCwxNiBA
QCB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlJgogICAgIGlmIChpczxTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlPihub2RlKSkKICAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4gPSBkb3du
Y2FzdDxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPihub2RlKS5sYXlvdXRWaWV3cG9y
dCgpLmxvY2F0aW9uKCk7CiAKLSAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xs
aW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgbm9kZS5jdXJyZW50
U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24pOworICAgIGJvb2wgaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24gPSBm
YWxzZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGluc3RhbnRTY3JvbGxEaWRTdG9w
QW5pbWF0aW9uID0gbm9kZS5uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKCkgJiYgIW5v
ZGUucmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCk7CisjZW5kaWYKKyAgICBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwobm9kZS5zY3JvbGxpbmdOb2Rl
SUQoKSwgbm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKSwgbGF5b3V0Vmlld3BvcnRPcmlnaW4s
IHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24sIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0
aW9uKTsKIH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJl
cXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCit2b2lkIFJl
bW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xs
aW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wg
cmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCwgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAg
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
OworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwsIHdpdGhBbmltYXRpb24pOwogfQogCiBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90
ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBl
IG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpAQCAtMTQzLDYgKzE0NywxMyBAQCBS
ZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGlu
Z1RyZWVOb2RlKFNjcm9sbGluZ05vZAogICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2Rl
OjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
dm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBi
b29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NE
aWRDaGFuZ2Uobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOworfQorI2VuZGlm
CisKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRD
aGFuZ2UoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWdu
ZWQgdmVydGljYWwpCiB7CiAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmN1cnJlbnRT
bmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKG5vZGVJRCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggZjUzMTYyOWI4M2EzOTVmZjM2YTI1ZWVmZWM0
ZTgyMzk1ZTIyN2ZjOC4uZThmOGUwMGJhNTdiYWM2OGQ3ZjU2Njg2NjViODE5MzBjOGVmZjM2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1MiwxMSBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYgc2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsg
fQogCiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFdlYkNvcmU6OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rp
b24gPSBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
Ym9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKSBvdmVycmlkZTsKKyAgICB2b2lkIHNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsLCBib29sIHdpdGhBbmltYXRpb24gPSBmYWxzZSkgb3ZlcnJpZGU7
CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJ
c1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBib29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykgb3ZlcnJpZGU7CisjZW5kaWYK
IAogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TLmgKaW5kZXggZTYzN2Q2MTUzMjVkMzgwY2U5MmQwN2EyYjEyMTkx
M2ZmMTgxZGQyZS4uMDBiNGRiY2QzNzBlMThjZGZkMzk5ZWU3NmIxM2ZiMDU0M2IzMzE5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsRGlk
RW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpIGNv
bnN0OwogICAgIHZvaWQgc2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBzY3JvbGxPZmZzZXQsIGJvb2wgaW5Vc2VySW50ZXJhY3Rpb24pOworICAgIHZvaWQgc2Ny
b2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbigpOwogCiAgICAgdm9pZCBjdXJyZW50U25h
cFBvaW50SW5kaWNlc0RpZENoYW5nZSh1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0
aWNhbCkgY29uc3Q7CiAgICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBt
X3Njcm9sbExheWVyLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggZTc2ODk4Mzc1ODFiOWQ5
Yjk1YmZlYTAzNzZlMWU0OTFjZWYzOWE0Ni4uODQ4ODYzYTgxZGRmNDA1OTkyNjA0NWMyMjJhYjgx
NzcwYmVlMGJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMTUyLDYgKzE1MiwxMSBAQAogICAgIH0K
IH0KIAorLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNjcm9s
bFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNj
cm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKTsKK30KKwogI2lmIEVOQUJMRShQT0lO
VEVSX0VWRU5UUykKIC0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9s
bFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0IHRyYW5zbGF0aW9u
OihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3RhcnQgbG9jYXRpb25J
blZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9jaXR5Oihpbm91dCBk
b3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2dgogewpAQCAtMzAw
LDE1ICszMDUsMzYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Ojpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIAogICAgIGlmIChzY3JvbGxp
bmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CiAgICAgICAgIGF1dG8gc2Nyb2xsVHlwZSA9
IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwoKSA/IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYyA6IFNjcm9sbFR5cGU6
OlVzZXI7Ci0gICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5v
ZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSk7CisgICAgICAgIGlmIChz
Y3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25XaXRoQW5pbWF0aW9uKCkp
CisgICAgICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKHRy
dWUpOworICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIHBvc2l0aW9ucyBhcmUgbm90IHRoZSBzYW1l
LCB0aGVyZSdzIGEgcG9zc2liaWxpdHkgdGhhdCB0aGUgc2Nyb2xsIG9mZnNldCBmcm9tIHRoZSBX
ZWIgcHJvY2VzcyBoYXMgYmVlbiBvdmVycmlkZGVuLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2Us
IHRoZSBzY3JvbGwgcG9zaXRpb24gbmVlZCB0byBiZSBzZW50IHRvIHRoZSBXZWIgcHJvY2Vzcy4K
KyAgICAgICAgYm9vbCBzaG91bGRTeW5jU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxpbmdTdGF0ZU5v
ZGUuc2Nyb2xsUG9zaXRpb24oKSAhPSBzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbFBvc2l0
aW9uKCk7CisgICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5v
ZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsVHlwZSwgU2Nyb2xsUG9zaXRpb25D
bGFtcDo6VG9Db250ZW50RWRnZXMsIHNob3VsZFN5bmNTY3JvbGxQb3NpdGlvbik7CiAgICAgfQog
fQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRp
b25TY3JvbGxpbmdMYXllcnMoKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwot
ICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVu
dFNjcm9sbE9mZnNldCgpXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgYm9v
bCBhbmltYXRpb25JblByb2dyZXNzID0gc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3MoKTsKKyAgICBib29sIG5lZWRUb1N0b3BBbmltYXRpb24gPSBzY3JvbGxpbmdOb2Rl
KCkubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpOworICAgIGlmIChuZWVkVG9TdG9w
QW5pbWF0aW9uICYmIGFuaW1hdGlvbkluUHJvZ3Jlc3MpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpz
Y3JvbGxWaWV3KCkuY29udGVudE9mZnNldCBhbmltYXRlZDpOT107CisgICAgICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CisKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZSgpLnJlcXVl
c3RBbmltYXRlZFNjcm9sbCgpKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgp
LmN1cnJlbnRTY3JvbGxPZmZzZXQoKSBhbmltYXRlZDpZRVNdOworICAgICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TCisKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3ModHJ1ZSk7CisgICAgfSBlbHNlIGlmICghYW5pbWF0aW9uSW5Qcm9ncmVz
cyB8fCBuZWVkVG9TdG9wQW5pbWF0aW9uKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5n
Tm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKKyAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUzo6c2Nyb2xsV2lsbFN0YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICszNjEsMTUgQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkU2Ny
b2xsKGNvbnN0IEZsb2F0UG9pbnQKICAgICBzY3JvbGxpbmdOb2RlKCkud2FzU2Nyb2xsZWRCeURl
bGVnYXRlZFNjcm9sbGluZyhzY3JvbGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJbnRlcmFjdGlvbiA/
IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMgOiBTY3JvbGxpbmdMYXllclBvc2l0
aW9uQWN0aW9uOjpTZXQpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKQoreworICAgIGF1
dG8mIG5vZGUgPSBzY3JvbGxpbmdOb2RlKCk7CisgICAgaWYgKCEobm9kZS5yZXF1ZXN0QW5pbWF0
ZWRTY3JvbGwoKSAmJiBub2RlLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAg
ICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzRGlkQ2hhbmdlKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAg
bm9kZS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZv
aWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2lu
dEluZGljZXNEaWRDaGFuZ2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwp
IGNvbnN0CiB7CiAgICAgaWYgKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTIyZjIxMjllZWQ4ZjQwYmRkYWRlODVj
YTE0MWMyODgxMDFkMTA1ZC4uODY2N2E1YmUxZDg4ODYwOTMzZjVlNmRhMGQyY2NjMDU2NGE3MTJm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzg1LDkg
KzE3ODUsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3Qg
UmVnaW9uJiByZWdpb24pCiAgICAgcGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVn
aW9uKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lk
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3Np
dGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0
aW9uKQogewotICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBz
Y3JvbGxPcmlnaW4pOworICAgIGlmICh3aXRoQW5pbWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50
KCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdp
bik7CisgICAgZWxzZQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQ
b3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdl
UHJveHk6OnZpZXdTY3JvbGxQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IDZjNDllY2RjZDg5ZDExM2U1ZmRjN2M1YjhiMGJlMDg2ZGExMWQy
MzMuLjkxNTVmMGM4ZjlkY2NhNmI0ZDAxOTVlMzdiZDFjNjc1YWFlOTViMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02MjksNyArNjI5LDcgQEAgcHVibGljOgog
ICAgIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05l
ZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKTsKLSAgICB2b2lkIHJlcXVlc3RTY3Jv
bGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHNjcm9sbE9yaWdpbiwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogICAgIAog
ICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXgg
YTA3YzVkM2Y2ZWI2YTI0MWQxODYxYTI1NDJhNTZjYzAwZWMzZjBmOS4uMWUxMjAxZmM2YjNiOGI0
MzViYTFlYTNkMjBhNzllZWRhNmE5NWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94
eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3Bs
YXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RT
Y3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKICAg
ICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAg
IFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29sIGlzVmlld1dp
bmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGRiZmIzNDkwMGFkOTgzYThmMjI2N2EyOWNjY2E5
YWRiYjg5ZGUyZDYuLjJhZmY4OTdlMDI5YTNhN2VlNDY2YWQ2MjgxN2U2YWQ2YzBkNzVmNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
QEAgLTk4LDcgKzk4LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3Bs
YXkoY29uc3QgUmVnaW9uJikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChj
b25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9y
aWdpbikKIHsKLSAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpz
Y3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luXTsKKyAgICBbbV93ZWJWaWV3
IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmln
aW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOk5PXTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6
cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit7CisgICAgW21fd2ViVmlldyBfc2Ny
b2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNj
cm9sbE9yaWdpbiBhbmltYXRlZDpZRVNdOwogfQogCiBXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VD
bGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA4ZTY0OTM1NTQ1ODNhYmYzOTVk
ODkxYWNhYWJmMDE1ZjE3NjQ0NTk3Li4zZDM0NWQ3NjhlMGJiODdmOTUyZDNlYzczNjM4NjQ5ZDhj
NzYxMDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbFBv
c2l0aW9uQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7
CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwp
OwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgorCiAgICAgV2ViUGFnZSogbV93ZWJQ
YWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4IDJjMDk4YTEwOTcwMjM2N2MzODMz
NzFlODhlNWE3NjFkNDVlMTk5YWQuLjUzN2ZkMzRkNjFhODE5ZmQ2MWZhZDEzMDk0NzVhNjA3YmIy
ZDk4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDkgQEAKIG1lc3NhZ2Vz
IC0+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAgICBTY3JvbGxQb3NpdGlvbkNoYW5n
ZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxQb3Np
dGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgQ3VycmVudFNuYXBQb2ludEluZGlj
ZXNDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVu
c2lnbmVkIHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3NDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIGJvb2wgaXNT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5tbQppbmRleCA4MzU0NDFkMzE5Yjk1ZjQ2Njg3NzU4NTM4OTA5MmM5
ZWVhMjkzODYxLi42ODlkNTU2MjZmOTI3M2Y0M2I5ZDIxNGI2YTdkYTI1NTRhNzkyODBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1t
CkBAIC0xMDQsNiArMTA0LDEzIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmN1
cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoU2Nyb2xsaW5nCiAgICAgc2V0QWN0
aXZlU2Nyb2xsU25hcEluZGljZXMobm9kZUlELCBob3Jpem9udGFsLCB2ZXJ0aWNhbCk7CiB9CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9s
bGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorewor
ICAgIHNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3Mobm9kZUlELCBpc1Njcm9sbEFuaW1hdGlv
bkluUHJvZ3Jlc3MpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwN2I1YWUyYjRmYTMzMWNiNDZm
MjJhMzJkYzEwMTFkNGJmZTIyYzM2Li40MDRlZDFkMTlhNjNhNjIyMTc5OWI0N2VhODVlNzNmNWJk
MzA5NTQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTktMTItMTEgIENhdGhpZSBDaGVuICA8
Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwg
YmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50ZXJmYWNlcyBmb3IgaU9TIHBsYXRm
b3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5
MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNl
ZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIFRoZSBuYXRpdmUg
c2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0gaXMgYmFzZWQgb24gQXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5jIHNjcm9sbCBpcyBub3QgZnVsbHkgc3Vw
cG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBjb3B5Cisg
ICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0byBmYXN0L3Njcm9sbGluZy9pb3MvLCB0
aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZC4KKworICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzOiBBZGRlZC4KKyAg
ICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAgICAod2FpdEZvclNjcm9sbEVuZCk6Cisg
ICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNjcm9sbFdpbmRvdyk6CisgICAgICAgICog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
ZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1j
c3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVs
ZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZp
b3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVo
YXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xs
aW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXNjcm9s
bGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwu
CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1y
b290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93
Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1s
LgorCiAyMDIwLTAxLTE5ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBTY3JvbGxB
bmltYXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBhMDk2OGUwMjViZDg2MDRjMDc2NTM1MmQzYTJlOGIzY2MxMjMzYWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1i
ZWhhdmlvci5qcwpAQCAtMCwwICsxLDg3IEBACitmdW5jdGlvbiBvYnNlcnZlU2Nyb2xsaW5nKGVs
ZW1lbnRzLCBjYWxsYmFjaykgeworICBpZiAoIUFycmF5LmlzQXJyYXkoZWxlbWVudHMpKQorICAg
ICAgZWxlbWVudHMgPSBbZWxlbWVudHNdOworICB2YXIgbGFzdENoYW5nZWRGcmFtZSA9IDA7Cisg
IHZhciBsYXN0TGVmdCA9IG5ldyBNYXAoKTsKKyAgdmFyIGxhc3RUb3AgPSBuZXcgTWFwKCk7Cisg
IGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAgICBsYXN0TGVmdC5zZXQoZWxlbWVu
dCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICBsYXN0VG9wLnNldChlbGVtZW50LCBlbGVtZW50
LnNjcm9sbFRvcCk7CisgIH0pOworICBmdW5jdGlvbiB0aWNrKGZyYW1lcykgeworICAgIC8vIFdl
IHJlcXVlc3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIDUwMCBmcmFtZXMgb3IgdW50aWwgMjAg
ZnJhbWVzIHdpdGgKKyAgICAvLyBubyBjaGFuZ2UgaGF2ZSBiZWVuIG9ic2VydmVkLgorICAgIGlm
IChmcmFtZXMgPj0gNTAwIHx8IGZyYW1lcyAtIGxhc3RDaGFuZ2VkRnJhbWUgPiAyMCkgeworICAg
ICAgY2FsbGJhY2sodHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIHZhciBzY3JvbGxIYXBwZW5l
ZCA9IGVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IHsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQu
c2Nyb2xsTGVmdCAhPSBsYXN0TGVmdC5nZXQoZWxlbWVudCkgfHwgZWxlbWVudC5zY3JvbGxUb3Ag
IT0gbGFzdFRvcC5nZXQoZWxlbWVudCk7CisgICAgICB9KTsKKyAgICAgIGlmIChzY3JvbGxIYXBw
ZW5lZCkgeworICAgICAgICBsYXN0Q2hhbmdlZEZyYW1lID0gZnJhbWVzOworICAgICAgICBlbGVt
ZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7CisgICAgICAgICAgbGFzdExlZnQuc2V0KGVsZW1l
bnQsIGVsZW1lbnQuc2Nyb2xsTGVmdCk7CisgICAgICAgICAgbGFzdFRvcC5zZXQoZWxlbWVudCwg
ZWxlbWVudC5zY3JvbGxUb3ApOworICAgICAgICB9KTsKKyAgICAgICAgY2FsbGJhY2soZmFsc2Up
OworICAgICAgfQorICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2suYmluZChudWxsLCBm
cmFtZXMgKyAxKSk7CisgICAgfQorICB9CisgIHRpY2soMCk7Cit9CisKK2Z1bmN0aW9uIHdhaXRG
b3JTY3JvbGxFbmQoZWxlbWVudHMpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7CisgICAgb2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgKGRvbmUpID0+IHsKKyAgICAgIGlm
IChkb25lKQorICAgICAgICByZXNvbHZlKCk7CisgICAgfSk7CisgIH0pOworfQorCitmdW5jdGlv
biByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KSB7CisgIC8vIFRyeSB2YXJpb3VzIG1ldGhv
ZHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0ZWx5Lgor
ICBzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAwOworICBzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsKHtsZWZ0OiAwLCB0b3A6IDAs
IGJlaGF2aW9yOiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KSB7CisgIC8vIFRyeSB2YXJpb3VzIG1ldGhvZHMgdG8gZW5zdXJl
IHRoZSBlbGVtZW50IHBvc2l0aW9uIGlzIHJlc2V0IGltbWVkaWF0ZWx5LgorICBzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAgc2Nyb2xs
aW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsKKyAgc2Ny
b2xsaW5nV2luZG93LnNjcm9sbCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImluc3RhbnQi
fSk7Cit9CisKK2Z1bmN0aW9uIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsIGNsYXNz
TmFtZSkgeworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImF1dG9CZWhhdmlvciIs
ICJzbW9vdGhCZWhhdmlvciIpOworICBzdHlsZWRFbGVtZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NO
YW1lKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5iZWhhdmlv
ciA9IGJlaGF2aW9yOworICBzd2l0Y2ggKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgY2FzZSAic2Ny
b2xsSW50b1ZpZXciOgorICAgICAgYXJncy5pbmxpbmUgPSAic3RhcnQiOworICAgICAgYXJncy5i
bG9jayA9ICJzdGFydCI7CisgICAgICBlbGVtZW50VG9SZXZlYWwuc2Nyb2xsSW50b1ZpZXcoYXJn
cyk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgYXJncy5sZWZ0ID0gZWxlbWVu
dFRvUmV2ZWFsTGVmdDsKKyAgICAgIGFyZ3MudG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wOworICAg
ICAgc2Nyb2xsaW5nRWxlbWVudFtzY3JvbGxGdW5jdGlvbl0oYXJncyk7CisgICAgICBicmVhazsK
KyAgfQorfQorCitmdW5jdGlvbiBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxG
dW5jdGlvbiwgYmVoYXZpb3IsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCkgeworICB2YXIgYXJncyA9IHt9OworICBpZiAoYmVoYXZpb3IpCisgICAgYXJncy5iZWhhdmlv
ciA9IGJlaGF2aW9yOworICBhcmdzLmxlZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0OworICBhcmdz
LnRvcCA9IGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgc2Nyb2xsaW5nV2luZG93W3Njcm9sbEZ1bmN0
aW9uXShhcmdzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGQ0Y2E2NDE1NWY0ZjlkZThmOWUxMDkzZDliMTcxMmY0MTdjZTY5MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3ItZGVmYXVsdC1jc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNT
IEluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhh
dmlvciAKK1BBU1MgU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBz
Y3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zNWM2NTAzYWIyNjUwMzVkMDA4YzYwMDY2ODVkNmNjMTM3MTgxZDhhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZh
dWx0LWNzcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0t
PgorPHRpdGxlPlRlc3RpbmcgZGVmYXVsdCB2YWx1ZSBvZiBzY3JvbGwtYmVoYXZpb3I8L3RpdGxl
PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29t
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdp
ZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0i
bG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+
CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5k
OiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwv
c3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJh
Y2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
dmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxvd05vZGU7CisgIHZhciBlbGVtZW50VG9SZXZl
YWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0gMjUwOworICB2YXIgc2Ny
b2xsRnVuY3Rpb24gPSAic2Nyb2xsIjsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJl
c2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3Jv
bGwiLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICB9LCAiSW5zdGFudCBzY3Jv
bGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7CisKKyAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsK
KyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgIH0pOworICB9LCAiU21vb3RoIHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVs
dCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNhOTYxZWY1NmE5MTg1N2M2ZDJjYWJiOTA4NDhjNWIy
ZDlmMDY2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAor
CitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVs
ZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJl
aGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXco
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVu
dCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gYW4gZWxlbWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRp
bmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbiBpbnN0
YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzhkZmZk
ZWNlNTliMzc1MGU5NmYxYTI4NjJjNWU5NDk3YTQyMzhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwK
QEAgLTAsMCArMSwxNjMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50
ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRl
c3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Ny
b2xsLWJlaGF2aW9yIG9uIGFuIGVsZW1lbnQ8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIg
Y29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdh
bmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJl
aGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFi
bGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6
IDIwMHB4OworICB9CisgIC5hdXRvQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0
bzsKKyAgfQorICAuc21vb3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3Ro
OworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0ib3ZlcmZs
b3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDAwcHg7
IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQs
IGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRo
OiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBpZD0iZWxlbWVudFRvUmV2ZWFs
IiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdp
ZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9zcGFuPgorICA8
L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQgPSBvdmVyZmxv
d05vZGU7CisgIHZhciBzdHlsZWRFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgZWxlbWVu
dFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKwor
ICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRvVmlldyJdLmZv
ckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZp
b3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0Vs
ZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsK
KyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2
ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3Ii
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRf
bGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJl
aGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwg
YEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVs
ZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xs
aW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24s
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4g
eworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgIH0sIGBFbGVt
ZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAi
c2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICBy
ZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAv
IDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5n
IGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBz
bW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsK
KyAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
IH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVs
ZW1lbnQgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJh
bWUtcm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdj
YWVhMjdiYjUzZjFhOTQ0ZGNhMmQ2ODE3YTNlZmI4NWZjYTc3MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACisKK1BBU1MgUGFnZSBsb2FkZWQg
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdp
dGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVs
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8g
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUg
d2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcg
c21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xs
aW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MzI1YjRiOWUyNGVmN2RiN2JhNjk4MDRiZTJiNTdmNzM4YTM2OWRiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZy
YW1lLXJvb3QuaHRtbApAQCAtMCwwICsxLDE2OSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0g
LS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5z
Y3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgdGhlIG1haW4gZnJhbWU8
L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2Fs
aWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3gi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48
L3NjcmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRv
QmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVo
YXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRp
diBpZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZl
YWwiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lk
dGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2
PgorPHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIp
OworICB2YXIgc2Nyb2xsaW5nRWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIHBhZ2VMb2FkZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5n
RWxlbWVudCA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9
IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9
ICgxMCArIHdpbmRvdy5pbm5lcldpZHRoKSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0
eWxlLmhlaWdodCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBl
bGVtZW50VG9SZXZlYWxMZWZ0ID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBl
bGVtZW50VG9SZXZlYWxUb3AgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBl
bGVtZW50VG9SZXZlYWwuc3R5bGUubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOwor
ICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgi
OworCisgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsgfSk7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxC
eSIsICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVt
ZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhh
dmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9u
LCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNj
cm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0Jl
aGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rp
b24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xs
Tm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdh
aXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBz
bW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNj
cm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAg
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0Vs
ZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3Ro
QmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5j
dGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVu
Y3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVs
ZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3Nl
cnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0
dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShz
Y3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1Jl
dmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIp
OworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGlu
ZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJl
dHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFs
IHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0p
OworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWlu
IGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM4MjM4NWFhYjQ5MzUxNGJkZTdiYjU5NWE3OWE3NDE0MDI2NDA0MzgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisKK1BB
U1MgUGFnZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3
aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGgg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBB
Ym9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdp
bmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwNTdiMGNkMTIxOTEwMmFlZGEwMDg0NTkxNTU2OWJiN2Uw
YWQwZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9u
cycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBvbiB0aGUgd2luZG93IG9mIHRoZSBtYWlu
IGZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1z
Y2FsZT0xLGluaXRpYWwtc2NhbGU9MSI+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lk
w6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1z
Y3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBi
b2R5IHsKKyAgICBtYXJnaW46IDA7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xs
LWJlaGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJl
aGF2aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8
ZGl2IGlkPSJwYWdlQ29udGVudCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsg
dG9wOiAwOyI+CisgIDxkaXYgaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4
OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFn
ZUxvYWRlZCA9IGFzeW5jX3Rlc3QoIlBhZ2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdXaW5k
b3csIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cDsKKyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVu
Y19kb25lKGZ1bmN0aW9uKCkgeworICAgIHNjcm9sbGluZ1dpbmRvdyA9IHdpbmRvdzsKKyAgICBz
dHlsZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50
LnN0eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJweCI7CisgICAg
cGFnZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYg
KyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0
aCkgKiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdo
dCkgKiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFs
TGVmdCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1Jl
dmVhbFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJl
c2V0U2Nyb2xsRm9yV2luZG93KHdpbmRvdyk7IH0pOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xs
VG8iLCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5n
V2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7
CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBu
dWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3Vs
ZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0
U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFks
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0p
OworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAg
ICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQi
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1l
bnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdX
aW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBi
ZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlv
cihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dp
bmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0
U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxp
bmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVs
ZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxp
bmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0
byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNl
dFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xs
aW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZl
KCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xs
aW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNt
b290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rp
b24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNj
cm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBv
ZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7
CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAg
fSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5k
b3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxl
bWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAg
fSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUg
bWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRv
dyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Ny
b2xsaW5nV2luZG93LCAic2Nyb2xsIiwgImluc3RhbnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRv
cCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKyAgfSkpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Ny
b2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQzYTgyMGU1ODU5NmQ1NmUzZmU4OTIxMTli
ZTAzZGM0OGQwYjk1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBzY3JvbGxJbnRvVmlldyB3aXRoIG5lc3RlZCBlbGVt
ZW50cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXct
bmVzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1YjVkOGQ3Yzc4NDQ1
YTBkMmMwNzJmYTE3ZDdmYzhjMTk2Y2U1NGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3Rl
ZC5odG1sCkBAIC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1
ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRp
dGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3Igd2l0aCBzY3JvbGxJbnRvVmlldyBm
b3IgbmVzdGVkIHNjcm9sbGluZyBub2RlczwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBj
b250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2Fu
ZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVo
YXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJs
ZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuc21v
b3RoQmVoYXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9CisgIC5ncmFk
aWVudCB7CisgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVl
bik7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2PgorICA8ZGl2
IGNsYXNzPSJzY3JvbGxhYmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQ1MHB4Ij4K
KyAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1
MDBweDsiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3Ii
IHN0eWxlPSJ3aWR0aDogNDAwcHgiPgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxl
PSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9
InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMzUwcHgiPgorICAgICAgICA8ZGl2IGNsYXNzPSJn
cmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAg
ICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDMwMHB4Ij4KKyAgICAg
ICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1
MDBweDsiPjwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVo
YXZpb3IiIHN0eWxlPSJ3aWR0aDogMjUwcHgiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3Jh
ZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAg
ICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMjAwcHgiPgorICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVp
Z2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZl
YWwiIHN0eWxlPSJ3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiBibGFjazsi
PjwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRo
OiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0
OiA1MDBweDsiPjwvZGl2PgorICAgICAgICAgIDwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9
ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDog
MTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBj
bGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rp
dj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIFRoZSBDU1NP
TS1WaWV3IHNwZWMgYW5kIGltcGxlbWVudGF0aW9ucyBmb2xsb3cgZGlmZmVyZW50IGFsZ29yaXRo
bXMgKHNjcm9sbHMgcGVyZm9ybWVkIGluIHBhcmFsbGVsLCBhcyBpbm5lci10by1vdXRlciBzZXF1
ZW5jZSBvciBhcyBvdXRlci10by1pbm5lciBzZXF1ZW5jZSkuCisgIC8vIFNlZSBodHRwczovL2dp
dGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMzEyNworICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsK
KyAgICAgIHZhciBkaXZzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNjcm9sbGFibGUi
KTsKKyAgICAgIGRpdnMuZm9yRWFjaCgoc2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICByZXNl
dFNjcm9sbChzY3JvbGxhYmxlRGl2KTsKKyAgICAgIH0pOworICAgICAgZWxlbWVudFRvUmV2ZWFs
LnNjcm9sbEludG9WaWV3KHtpbmxpbmU6ICJzdGFydCIsIGJsb2NrOiAic3RhcnQiLCBiZWhhdmlv
cjogImF1dG8ifSk7CisgICAgICB2YXIgc2Nyb2xsVG9wID0gbmV3IE1hcCgpOworICAgICAgdmFy
IGlzU21vb3RoID0gbmV3IE1hcCgpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2
KSA9PiB7CisgICAgICAgIHNjcm9sbFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJsZURp
di5zY3JvbGxUb3ApOworICAgICAgICBpc1Ntb290aC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xs
YWJsZURpdi5jbGFzc0xpc3QuY29udGFpbnMoInNtb290aEJlaGF2aW9yIikpOworICAgICAgICAv
LyBJZiBzY3JvbGwgb3BlcmF0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgc2Ny
b2xsIGJveGVzIHdpdGggaW5zdGFudCBiZWhhdmlvciBtaWdodCBhbHNvIG5lZWQgdG8gd2FpdCBm
b3IgdGhlaXIgcHJlZGVjZXNzb3JzLgorICAgICAgICBpZiAoaXNTbW9vdGguZ2V0KHNjcm9sbGFi
bGVEaXYpKQorICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsVG9wLmdldChzY3JvbGxh
YmxlRGl2KSwgNTAwLCAiRWxlbWVudCB3aXRoIHNtb290aCBiZWhhdmlvciBzaG91bGQgbm90IHNj
cm9sbCBpbW1lZGlhdGVseSIpOworICAgICAgfSk7CisKKyAgICAgIG9ic2VydmVTY3JvbGxpbmco
QXJyYXkuZnJvbShkaXZzKSwgZnVuY3Rpb24oZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAg
ICAgIGRpdnMuZm9yRWFjaCgoc2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICAgICAgYXNzZXJ0
X2xlc3NfdGhhbl9lcXVhbChzY3JvbGxUb3AuZ2V0KHNjcm9sbGFibGVEaXYpLCBzY3JvbGxhYmxl
RGl2LnNjcm9sbFRvcCwgIlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAg
ICBpZiAoIWlzU21vb3RoLmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAgICAgICAgYXNzZXJ0
X2FueShhc3NlcnRfZXF1YWxzLCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgWzAsIDUwMF0sICJF
bGVtZW50IHdpdGggaW5zdGFudCBiZWhhdmlvciBzaG91bGQganVtcCB0byB0aGUgZmluYWwgcG9z
aXRpb24iKTsKKyAgICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCA1MDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgICAgICAgIHNjcm9sbFRvcC5zZXQoc2Nyb2xsYWJsZURpdiwgc2Nyb2xsYWJs
ZURpdi5zY3JvbGxUb3ApOworICAgICAgICAgIH0pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAg
ICAgICAgICByZWplY3QoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisgICAgfSk7CisgIH0sICJzY3JvbGxJbnRvVmlldyB3
aXRoIG5lc3RlZCBlbGVtZW50cyB3aXRoIGRpZmZlcmVudCBzY3JvbGwtYmVoYXZpb3IiKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODU1YTZhNjEwZjM3MzFhYzdlZGZkYjBlMmRkYTM4YjA1OGVjOTFk
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBA
QAorCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxp
bmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9s
bCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwg
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAy
NTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1p
bmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcg
c2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGgg
c2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQ
QVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJv
bSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xs
IHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAw
LCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVy
Zm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcg
c2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290
aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgp
ICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAw
MCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9z
aXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1
MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgMCkgdG8gKDUwMCwg
MjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVu
IHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDApIHRvICg1MDAsIDI1MCkg
dXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJm
b3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0byAoNTAwLCAyNTApIHVz
aW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRp
bmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xsaW5nIHdpdGgg
YW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25z
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGE0MWI4YjA4ZGFmMjEzYTlmOWE4NWZmMGE0MGRmNWNkYTE0ZTZh
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURP
Q1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3Jv
bGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBzY3JvbGxpbmcgYW4gZWxlbWVudCB3aXRoIHNtb290aCBiZWhhdmlvcjwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0Pgor
PHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6
IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7
CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxv
d05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsg
aGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwg
Z3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6
IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwi
IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lk
dGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwv
ZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICAvLyBGb3Igc21vb3RoIGJlaGF2aW9yLCBldm9sdXRp
b24gb2Ygc2Nyb2xsIHBvc2l0aW9ucyBvdmVyIHRpbWUgaXMgbm90IHNwZWNpZmllZCBieSBDU1NP
TSBWaWV3LgorICAvLyBUaGlzIHRlc3QgcmVsaWVzIG9uIHRoZSBtaW5pbWFsIGFzc3VtcHRpb24g
dGhhdCBzY3JvbGwgcG9zaXRpb24gZnVuY3Rpb25zIGFyZSBtb25vdG9uaWMuCisgIFsic2Nyb2xs
IiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaChmdW5j
dGlvbihzY3JvbGxGdW5jdGlvbikgeworICAgIFt7bGVmdDowLCB0b3A6MH0sIHtsZWZ0OjEwMDAs
IHRvcDowfSwge2xlZnQ6MCwgdG9wOjUwMH0sIHtsZWZ0OjEwMDAsIHRvcDo1MDB9XS5mb3JFYWNo
KChpbml0aWFsKSA9PiB7CisgICAgICB2YXIgZmluYWxMZWZ0ID0gNTAwOworICAgICAgdmFyIGZp
bmFsVG9wID0gMjUwOworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgIHNjcm9s
bE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCBpbml0aWFsLmxlZnQsIGlu
aXRpYWwudG9wKTsKKyAgICAgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxM
ZWZ0OworICAgICAgICAgIHZhciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgaW5pdGlhbC5sZWZ0LCAiU2Nyb2xsTGVmdCBz
aG91bGQgYmUgYXQgaW5pdGlhbCBwb3NpdGlvbiIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
b2xkVG9wLCBpbml0aWFsLnRvcCwgIlNjcm9sbFRvcCBzaG91bGQgYmUgYXQgaW5pdGlhbCBwb3Np
dGlvbiIpOworICAgICAgICAgIGlmIChzY3JvbGxGdW5jdGlvbiA9PT0gInNjcm9sbEJ5IikKKyAg
ICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCBzY3JvbGxGdW5jdGlvbiwgInNtb290
aCIsIGZpbmFsTGVmdCAtIGluaXRpYWwubGVmdCwgZmluYWxUb3AgLSBpbml0aWFsLnRvcCk7Cisg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9s
bEZ1bmN0aW9uLCAic21vb3RoIiwgZmluYWxMZWZ0LCBmaW5hbFRvcCk7CisgICAgICAgICAgb2Jz
ZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgICAg
IHRyeSB7CisgICAgICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExl
ZnQ7CisgICAgICAgICAgICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOwor
ICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKE1hdGguaHlwb3QoZmluYWxMZWZ0
IC0gbmV3TGVmdCwgZmluYWxUb3AgLSBuZXdUb3ApLCBNYXRoLmh5cG90KGZpbmFsTGVmdCAtIG9s
ZExlZnQsIGZpbmFsVG9wIC0gb2xkVG9wKSwgIlNjcm9sbCBwb3NpdGlvbiBzaG91bGQgbW92ZSB0
b3dhcmRzIHRoZSBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICBpZiAoZG9uZSkgewor
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgZmluYWxMZWZ0LCAiU2Nyb2xs
TGVmdCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKG5ld1RvcCwgZmluYWxUb3AsICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgb2xkTGVmdCA9IG5l
d0xlZnQ7CisgICAgICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAgICAgICAgIH0gY2F0
Y2goZSkgeworICAgICAgICAgICAgICByZWplY3QoZSk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAoZG9uZSkKKyAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBz
bW9vdGggc2Nyb2xsaW5nIGZyb20gKCR7aW5pdGlhbC5sZWZ0fSwgJHtpbml0aWFsLnRvcH0pIHRv
ICgke2ZpbmFsTGVmdH0sICR7ZmluYWxUb3B9KSB1c2luZyAke3Njcm9sbEZ1bmN0aW9ufSgpIGAp
OworICAgIH0pOworICB9KTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xs
KG92ZXJmbG93Tm9kZSk7CisgICAgICB2YXIgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsK
KyAgICAgIHZhciBzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CisgICAgICB2YXIgb2xk
TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJm
bG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAg
ICAgYXNzZXJ0X2VxdWFscyhvbGRUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05v
ZGUsICJzY3JvbGwiLCAic21vb3RoIiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxp
bmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAg
ICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIg
bmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoaW5pdGlhbFNj
cm9sbEFib3J0ZWQpIHsKKyAgICAgICAgICAgIGlmIChzY3JvbGxEaXJlY3Rpb25DaGFuZ2VkKSB7
CisgICAgICAgICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVm
dCwgIlNjcm9sbExlZnQga2VlcHMgZGVjcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGRlY3Jl
YXNpbmciKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICBzY3JvbGxEaXJlY3Rp
b25DaGFuZ2VkID0gbmV3TGVmdCA8PSBvbGRMZWZ0ICYmIG5ld1RvcCA8PSBvbGRUb3A7CisgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRM
ZWZ0LCBuZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAg
ICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2Vl
cHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3
VG9wID4gNTAwKSB7CisgICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xs
LgorICAgICAgICAgICAgICAgIGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCA1MDAs
IDI1MCk7CisgICAgICAgICAgICAgICAgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0
OworICAgICAgICAgICAgICAgIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVhY2gg
ZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAs
ICJTY3JvbGxUb3Agc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQor
ICAgICAgICAgIG9sZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsK
KyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9Cisg
ICAgICAgIGlmIChkb25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0p
OworICB9LCAiU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGlu
ZyB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgcmVzZXRTY3JvbGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xs
QWJvcnRlZCA9IGZhbHNlOworICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xs
TGVmdDsKKyAgICAgIHZhciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAg
YXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAw
KTsKKyAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1
MDAsIDc1MCk7CisgICAgICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24o
ZG9uZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dO
b2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3Jv
bGxUb3A7CisgICAgICAgICAgaWYgKCFpbml0aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAg
ICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0
IGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVh
bChvbGRUb3AsIG5ld1RvcCwgIlNjcm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAg
ICAgICAgIGlmIChuZXdMZWZ0ID4gMTAwMCAmJiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAg
ICAgICAvLyBBYm9ydCB0aGUgaW5pdGlhbCBzY3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlh
bFNjcm9sbEFib3J0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZs
b3dOb2RlLCAic2Nyb2xsIiwgImluc3RhbnQiLCA1MDAsIDI1MCk7CisgICAgICAgICAgICAgICAg
bmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIG5ld1Rv
cCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIp
OworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAsICJTY3JvbGxUb3Ag
c2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICB9CisgICAgICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3
TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgc3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOwor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQg
c3RheSBhdCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgIH0KKyAgICAgICAgICBvbGRMZWZ0
ID0gbmV3TGVmdDsKKyAgICAgICAgICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgIH0gY2F0Y2go
ZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9uZSkK
KyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgIlNjcm9sbCBw
b3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbiBpbnN0YW50
IHNjcm9sbGluZyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1y
b290LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzk5ZmRjYzI5ZWQ1NjMzN2E4OTEyMWIwNTkw
YTA5YjdiZWY1YzA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDM3IEBACisKK1BBU1MgaWZyYW1lIGxvYWRlZCAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRv
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1Zp
ZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Ny
b2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmcgCitQQVNT
IEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGgg
YW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTZkMTFhYjk2MjE2MzQ3ODQyOWY2ZjhhOGE3YTRjMjIyYjJlZjE1NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFi
bGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgor
PHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xs
KiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3ViZnJhbWU8L3RpdGxlPgor
PG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZp
ZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4K
KzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9ImlmcmFtZU5vZGUiIHdpZHRoPSI0
MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZUEU+Cis8aHRtbD4KKyAgPHN0eWxl
PgorICAgIGJvZHkgeworICAgICAgbWFyZ2luOiAwOworICAgIH0KKyAgICAuYXV0b0JlaGF2aW9y
IHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgICB9CisgICAgLnNtb290aEJlaGF2
aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICAgIH0KKyAgPC9zdHlsZT4K
KyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7
IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyc+CisgICAg
ICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdo
dDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRUb1JldmVhbCcgc3R5bGU9J2Rpc3Bs
YXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVp
Z2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9i
b2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+CisgIHZhciBpZnJhbWVMb2FkVGVz
dCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQs
IHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRUb1JldmVhbDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExl
ZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlmcmFtZU5vZGUu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVuY19kb25lKCgp
ID0+IHsKKyAgICBzY3JvbGxpbmdFbGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudDsKKyAgICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50
RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9IGlmcmFtZU5v
ZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZlYWwiKTsKKwor
ICAgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0u
Zm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3Jv
bGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBz
Y3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xs
VG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxp
bmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1
bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRU
b1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAg
fSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2Rl
KHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Ny
b2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3Jv
bGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwg
ImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9s
bEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExl
ZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVt
ZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAg
ICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBu
dWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4g
eworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAg
IH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNj
cm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3Jv
bGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4g
eyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1i
ZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisK
KyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21v
b3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxG
dW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVu
dCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
ICAgIH0pOworICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNj
cm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9s
bCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOwor
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCAw
LCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIGEgc3ViZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworICB9KSk7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNWViMzI3MmY0MDhlNWU2NGQxYmI3ZWMyYTA3ZTBiZmNjOTA0NzQ0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAK
KworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290
aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAK
K1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZy
YW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1l
LXdpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzMzNkNjRmODUwNzE2NzBiZDQ3YmNlODZiMDY1NTk2
ODI1MDQ5MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCkBAIC0wLDAgKzEsMTcxIEBA
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZs
b3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVoYXZpb3IgZm9y
IEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290IG9mIGEgc3Vi
ZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2Fu
Z0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGlu
Zy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9y
LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9ImlmcmFt
ZU5vZGUiIHdpZHRoPSI0MDBweCIgaGVpZ2h0PSIyMDBweCIgc3JjZG9jPSI8IURPQ1RZUEU+Cis8
aHRtbD4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2luOiAwOworICAgIH0KKyAg
ICAuYXV0b0JlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgICB9Cisg
ICAgLnNtb290aEJlaGF2aW9yIHsKKyAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICAg
IH0KKyAgPC9zdHlsZT4KKyAgPGJvZHk+CisgICAgPGRpdiBzdHlsZT0nd2lkdGg6IDIwMDBweDsg
aGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwg
Z3JlZW4pOyc+CisgICAgICA8c3BhbiBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0
aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Jz48L3NwYW4+PHNwYW4gaWQ9J2VsZW1lbnRUb1JldmVh
bCcgc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3
aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsnPjwvc3Bhbj4KKyAg
ICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPiI+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+CisgIHZh
ciBpZnJhbWVMb2FkVGVzdCA9IGFzeW5jX3Rlc3QoImlmcmFtZSBsb2FkZWQiKTsKKyAgdmFyIHNj
cm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxl
bWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsK
KyAgaWZyYW1lTm9kZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3Rl
cF9mdW5jX2RvbmUoKCkgPT4geworICAgIHNjcm9sbGluZ1dpbmRvdyA9IGlmcmFtZU5vZGUuY29u
dGVudFdpbmRvdzsKKyAgICBzdHlsZWRFbGVtZW50ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50OworICAgIGVsZW1lbnRUb1JldmVhbCA9IGlmcmFtZU5vZGUuY29u
dGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50VG9SZXZlYWwiKTsKKworICAgIFsi
c2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24p
ID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9y
V2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxl
ZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRv
cCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhz
Y3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93
LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVu
Y3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9S
ZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFu
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkg
PT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwg
YE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90
IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9s
bEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9
PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3Jv
bGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3Vs
ZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNj
cm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5k
b3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dp
bmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBi
ZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJl
c2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhh
dmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2lu
ZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAy
KTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVu
dC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBz
Y3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmci
KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVu
dCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRv
dy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJz
bW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
c2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJpbnN0YW50IiwgMCwgMCk7
CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcg
c21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xs
aW5nIik7CisKKyAgfSkpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390497</attachid>
            <date>2020-02-12 01:43:46 -0800</date>
            <delta_ts>2020-02-17 21:40:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204936-20200212174342.patch</filename>
            <type>text/plain</type>
            <size>156170</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGEwYzRkYTViMTMxZGJj
OTJlNzc4MDQ0OTNiOThiMjJhZmM2NmIyOC4uOThhNWQ0YzYyMGY3MDE1MGZkMjdlZTAzZTNmNWIy
YjlkM2RiNTA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE5LTEyLTExICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBuYXRpdmUgc2Nyb2xsIGludGVyZmFjZXMgZm9y
IGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBU
aGlzIHBhdGNoIHN1cHBvcnQgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gb24gaU9TIHBsYXRmb3Jt
LiBJdCByZWxpZXMgb24gVUlTY3JvbGxWaWV3J3MKKyAgICAgICAgbmF0aXZlIHNjcm9sbCBhbmlt
YXRpb24gc3VwcG9ydCBhbmQgaXMgZXhlY3V0ZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAg
ICAgVGVzdHM6IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3Mu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1l
bGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBmYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCisKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYg
dGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6QXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk6IFVw
ZGF0ZSB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRp
ZXMgY29uc3QpOiAgQWRkIGFuaW1hdGVkIGZsYWcuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXF1ZXN0
ZWRTY3JvbGxEYXRhOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3Jv
bGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IFVwZGF0
ZSB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKTogQWRkIGEgZmxhZyB0byBp
bmRpY2F0ZSBpZiB0aGlzIGlzIGFuIGFuaW1hdGVkIHNjcm9sbCBvciBub3QuCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGls
ZHJlbik6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgdGhlIHNjcm9sbCBpcyBhbmltYXRlZCBvciBu
b3QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xs
VG8pOiBJZiBuZWVkU3luY1Njcm9sbFBvc2l0aW9uIGlzIHRydWUsIHNlbmQgdGhlIHNjcm9sbCBw
b3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MsIGV2ZW4gaWYgdGhlIHNjcm9sbCBwb3NpdGlvbiBk
b2Vzbid0IGNoYW5nZS4KKyAgICAgICAgTWFpbnRhaW4gdGhlIHN0YXR1cyBvZiBtX3N0b3BTY3Jv
bGxBbmltYXRpb24gYW5kIG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsLgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5n
ZWQpOiBBbmltYXRlZCBzY3JvbGwgd29uJ3QgY2hhbmdlIHRoZSBzY3JvbGwgcG9zaXRpb24gaW1t
ZWRpYXRlbHksIHNvIGRvbid0IG5vdGlmeSB0aGUgc2Nyb2xsaW5nIGluZm8gbm93LgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RBbmltYXRl
ZFNjcm9sbCk6IG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsIGluZGljYXRlcyB0aGF0IHRoaXMgaXMg
YW4gYW5pbWF0ZWQgc2Nyb2xsIHJlcXVlc3QuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6cmVxdWVzdEFuaW1hdGVkU2Nyb2xsIGNvbnN0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsQW5p
bWF0aW9uSW5Qcm9ncmVzcyk6IE1haW50YWluIHRoZSBzY3JvbGwgYW5pbWF0aW9uIHN0YXR1cy4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxBbmlt
YXRpb25JblByb2dyZXNzIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbik6
IElmIHRoZSBOb2RlIGlzIHBlcmZvcm1pbmcgYSBzY3JvbGwgYW5pbWF0aW9uLCB0aGUgcHJldmlv
dXMgc2Nyb2xsIGFuaW1hdGlvbiBzaG91bGQgc3RvcCBmaXJzdC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0
aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9v
dGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwp
OgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldCk6CisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsVHlwZXMuaDogQWRkIFNjcm9sbEJlaGF2aW9yU3RhdHVzIHRvIGluZGljYXRlIHRoZSBu
YXRpdmUgc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFi
bGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb1Bvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldCk6IFNlbmQgYSBxdWVzdCBv
ZiBuYXRpdmUgc2Nyb2xsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
T2Zmc2V0V2l0aEFuaW1hdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmg6CisKIDIwMjAtMDItMDcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI1NTk1Myk6IFsgaU9TIE1hYyBdIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL3RpbWVs
aW5lcy91cGRhdGUtYW5kLXNlbmQtZXZlbnRzLmh0bWwgaXMgY3Jhc2hpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
NDdkNzEwMDVjYWI0MWRmMDNmM2MzNTkxYWY3OWQzZTlkYzY4ZDMzMC4uYTMxYjkyM2ZiYTA4MDVj
YWM2YzRhNjY2MTlhMzZlNzI4MDUxYjExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAx
OS0xMi0xMSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNjcm9sbCBp
bnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmljIFdhbmcu
CisKKyAgICAgICAgQWRkIENTU09NIHNtb290aCBzY3JvbGxpbmcgYXMgYW4gZXhwZXJpbWVudGFs
IGZlYXR1cmUuIE9uIGlvcyBwbGF0Zm9ybSwgdXNlIG5hdGl2ZSBhbmltYXRlZCBzY3JvbGxpbmcK
KyAgICAgICAgaW50ZXJmYWNlcyB0byBwZXJmb3JtYW5jZSBzbW9vdGggc2Nyb2xsIGFuZCBzZW5k
IHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorCisgICAgICAgICogU2hh
cmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9u
LmNwcDoKKyAgICAgICAgKEFyZ3VtZW50Q29kZXI8UmVxdWVzdGVkU2Nyb2xsRGF0YT46OmVuY29k
ZSk6CisgICAgICAgIChBcmd1bWVudENvZGVyPFJlcXVlc3RlZFNjcm9sbERhdGE+OjpkZWNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpkdW1wKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1Mu
bW06CisgICAgICAgIChwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKTogSGVscCBmdW5j
dGlvbiB0byBjaGVjayBpZiB0d28gZmxvYXQgcG9pbnRzIGFyZSBub3QgZXF1YWwgYnV0IGluIHRo
ZSBzYW1lIGRldmljZSBwaXhlbC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxUb0NvbnRl
bnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46YW5pbWF0ZWQ6XSk6IEFkZCBhbmltYXRlZCBm
bGFnIHRvIHN0YXJ0IGEgYW5pbWF0ZWQgc2Nyb2xsIGlmIG5lZWRlZC4KKyAgICAgICAgKC1bV0tX
ZWJWaWV3IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246XSk6IFNlbmQgc3JvbGwg
ZW5kIG1lc3NhZ2UgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nj
cm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbE9yaWdpbjpdKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50OjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbik6IFByb3ZpZGUgaW50ZXJmYWNlIGZvciBh
bmltYXRlZCBzY3JvbGxpbmcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOiBBZGQgYW5pbWF0
ZWQgZmxhZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6IFN5bmMgdGhl
IHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNT
Y3JvbGwpOiBBZGQgYW5pbWF0ZWQgc2Nyb2xsaW5nIGluZm8gdG8gbV9yZXF1ZXN0ZWRTY3JvbGxJ
bmZvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpz
Y3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IFN5
bmMgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVS
b290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IERpdHRvLiBJdCdz
IHNwZWNpZmljIHRvIHRoZSByb290IG5vZGUuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwp
OiBBZGQgYW5pbWF0ZWQgaW5mby4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IERpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzc0RpZENoYW5nZSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1Mu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tOgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVT
Y3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjpdKTog
U2VuZCBzY29sbCBlbmQgaW5mbyB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6
OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJD
aGlsZHJlbik6IElmIHRoZSBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzIGlzbid0
IGVxdWFsIHRvIHRoZSBVSSBwcm9jZXNzLAorICAgICAgICB0aGUgc2Nyb2xsIHBvc2l0aW9uIHNo
b3VsZCBiZSBzeW5jaHJvbml6ZWQsIGV2ZW4gdGhlcmUncyBubyBzY3JvbGxpbmcgcGVyZm9ybWVk
IGluIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TOjpyZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKTogQ2FsbGluZyB0
aGUgbmF0aXZlIGFuaW1hdGVkIHNjcm9sbGluZyBpbnRlcmZhY2UgZm9yIHNtb290aCBzY3JvbGwu
CisgICAgICAgIElmIHRoZXJlJ3MgYSBzY3JvbGwgYW5pbWF0aW9uIHBlcmZvcm1pbmcsIGl0IHNo
b3VsZCBiZSBzdG9wcGVkIGZpcnN0LCB0aGVuIHN0YXJ0IGEgbmV3IHNjcm9sbGluZy4KKyAgICAg
ICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xs
Vmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbik6IFN5bmMgc2Nyb2xsIGVuZCBpbmZvIHRvIHRo
ZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0U2Nyb2xsKTogVG8gY2FsbCBkaWZm
ZXJlbnQgZnVuY3Rpb25zIGZvciBzbW9vdGggYW5kIGluc3RhbnQgc2Nyb2xsLgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRp
b24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNzQ2hhbmdlZEZvck5vZGUpOgorCiAyMDIwLTAy
LTA3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYW5kYXRl
IFVVSUQgdmVyc2lvbiA0IGZvciBtRE5TIElDRSBjYW5kaWRhdGVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKaW5kZXggZDlhYzFjMjU3NzA5ODY2MTk4YzExYjA2OGY2MzQ4YzhkYmM4YmIyYy4u
YTg0MGYzYzIxMWRmZGFjMDYzMjkyMTU1NmJhOTI1ZjM2ZGYwNjEyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMzY1NiwxOSArMzY1Niw2IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3Jv
bGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgbmV3UG9zaXRpb24pCiAgICAgZGlkQ2hhbmdlU2Ny
b2xsT2Zmc2V0KCk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmlt
YXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwg
U2Nyb2xsQ2xhbXBpbmcpCi17Ci0gICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50
U2Nyb2xsVHlwZSgpOwotICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwotCi0g
ICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKLSAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5j
ZWxBbmltYXRpb25zKCk7Ci0gICAgaWYgKG9mZnNldCAhPSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkK
LSAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihvZmZz
ZXQpOwotCi0gICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKLX0K
LQogZmxvYXQgRnJhbWVWaWV3OjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250ZW50KGZsb2F0
IHN0ZXAsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0
eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoZ3JhbnVsYXJpdHkgIT0gU2Nyb2xsQnlQYWdlIHx8
IG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAppbmRleCBkMmNjNzBmMjVmYjNiOTNiZmM5ODc1NWI1ZTgzYThhOGQwODNmZTY2Li5jZjhmNTA2
ZTU0MTZhZjc5NWQ4ZDEzN2M2NWFkMzQwMzhhZTUzNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKQEAgLTY1OSw4ICs2NTksNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbmRlckxheWVyRGlk
U2Nyb2xsKGNvbnN0IFJlbmRlckxheWVyJik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNj
cm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBl
ID0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1w
aW5nOjpDbGFtcGVkKTsKLQogcHJvdGVjdGVkOgogICAgIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0
UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Ny
b2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxDb250
ZW50c1Nsb3dQYXRoKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcAppbmRleCBkNTc5N2JhNzgyM2Q5ZDdjZGQxYjg5NGRiODNkNzE4YzljZTczNzVi
Li5jM2Q5OGNhZDMzNjg4NjM5ZGFmZjQ1MDNlNDZjZmEzZjEwYTdhZWU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcApAQCAtMjQ4LDcgKzI0OCwxMCBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2Nybwog
CiAgICAgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUgPSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1l
bnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZTsKICAgICBib29sIGluUHJvZ3JhbW1hdGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEu
Y3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYg
KGluUHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wg
YW5pbWF0ZWQgPSBzY3JvbGxhYmxlQXJlYS5jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSAh
PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb247CisgICAgLy8gVGhlIHNjcm9s
bCBwb3NpdGlvbiBvZiBhbmltYXRlZCBzY3JvbGxpbmcgd2lsbCBiZSBzZXQgYnkgdGhlIFVJIHBy
b2Nlc3MuIFNvIHNob3VsZG4ndCBzZXQgaXQgbm93LgorICAgIGlmICghYW5pbWF0ZWQgJiYgKGlu
UHJvZ3JhbW1hdGljU2Nyb2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZSkpCiAgICAgICAgIHVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChzY3JvbGxpbmdOb2RlSUQsIHNjcm9sbFBv
c2l0aW9uLCB7IH0sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbkFjdGlvbjo6U2V0KTsKIAogICAgIEFTU0VSVChpblByb2dyYW1tYXRpY1Njcm9sbCA9PSAo
c2Nyb2xsVHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpKTsKQEAgLTI2Miw3ICsyNjUs
MTQgQEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRp
b25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIXN0YXRlTm9kZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGVOb2RlLT5zZXRSZXF1ZXN0ZWRTY3JvbGxEYXRh
KHsgc2Nyb2xsUG9zaXRpb24sIHNjcm9sbFR5cGUsIGNsYW1waW5nIH0pOworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgUmVxdWVzdGVkU2Nyb2xsRGF0YSBzY3JvbGxEYXRhKHsgc2Nyb2xs
UG9zaXRpb24sIHNjcm9sbFR5cGUsIGNsYW1waW5nLCBhbmltYXRlZCB9KTsKKyNlbHNlCisgICAg
UmVxdWVzdGVkU2Nyb2xsRGF0YSBzY3JvbGxEYXRhKHsgc2Nyb2xsUG9zaXRpb24sIHNjcm9sbFR5
cGUsIGNsYW1waW5nIH0pOworI2VuZGlmCisKKyAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNj
cm9sbERhdGEoc2Nyb2xsRGF0YSk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjkzLDYg
KzMwMywzMiBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVXBkYXRl
U2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcgogICAgIG1fdXBkYXRlTm9kZVNjcm9s
bFBvc2l0aW9uVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRp
b25JblByb2dyZXNzKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAo
IW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZnJhbWVWaWV3ID0gZnJhbWVW
aWV3Rm9yU2Nyb2xsaW5nTm9kZShub2RlSUQpOworICAgIGlmICghZnJhbWVWaWV3KQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAobm9kZUlEID09IGZyYW1lVmlldy0+c2Nyb2xsaW5nTm9kZUlE
KCkpIHsKKyAgICAgICAgaWYgKCFpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCisgICAgICAg
ICAgICBmcmFtZVZpZXctPnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBP
dmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBmcmFt
ZVZpZXctPnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRChub2RlSUQpKSB7CisgICAgICAg
IGlmICghaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQorICAgICAgICAgICAgc2Nyb2xsYWJs
ZUFyZWEtPnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJ
bkFuaW1hdGlvbik7CisgICAgfQorfQorI2VuZGlmCisKIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsVGltZXJGaXJlZCgp
CiB7CiAgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKG1fc2NoZWR1bGVk
U2Nyb2xsVXBkYXRlLm5vZGVJRCwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUuc2Nyb2xsUG9zaXRp
b24sIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLmxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxU
eXBlOjpVc2VyLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS51cGRhdGVMYXllclBvc2l0aW9uQWN0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBhNjg0NDJjMzliODcyMGFmNmFiNDZhNzYzODY5
MzdjNmQwOGRmOTAyLi40NzZjZTVhYzQ4NGFhZmJkZDY3YTA1ODdmYmViN2QyZjllMDc2YTFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5oCkBAIC01Miw2ICs1Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNj
cm9sbGluZ1N0YXRlVHJlZVByb3BlcnRpZXNDaGFuZ2VkKCk7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+
JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7Cisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKFNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MpOworI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzKFNjcm9sbGluZ05vZGVJ
RCwgdW5zaWduZWQgaG9yaXpvbnRhbEluZGV4LCB1bnNpZ25lZCB2ZXJ0aWNhbEluZGV4KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDkyZmJlYmNlOWY0Yjk0ZjY4ZmExZGU0NjYwYTRi
MzkyODc1MzUxZTkuLmNhNWIwYmRlNGJhYWQyZTVlZTI1MmJmOTIwYWZiNmUxZTQyZDViZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMzE4LDYgKzMxOCwxMSBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNj
cm9sbGluZ1N0YXRlVAogICAgIGlmIChtX3JlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcgPT0g
U2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1
ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIGNsYW1waW5nIiwgbV9yZXF1ZXN0ZWRTY3JvbGxEYXRhLmNs
YW1waW5nKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fcmVxdWVzdGVk
U2Nyb2xsRGF0YS5hbmltYXRlZCkKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQg
c2Nyb2xsIHBvc2l0aW9uIHdpdGggYW5pbWF0aW9uIiwgbV9yZXF1ZXN0ZWRTY3JvbGxEYXRhLmFu
aW1hdGVkKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJl
Y3QuaXNFbXB0eSgpKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInBhcmVudCByZWxhdGl2ZSBz
Y3JvbGxhYmxlIHJlY3QiLCBtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZS5oCmluZGV4IGViNTZmZTU4YWI1MzQ5ZGYzNzJmODU1MDE1YzA3NmIzYzIx
ZjVhYjkuLmI0N2FiNTYyMDJmZGVlNTA1YWIwMjQ0Mjc0OGI5NzY5OGY2YWRjMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZS5oCkBAIC00MiwxMSArNDIsMTcgQEAgc3RydWN0IFJlcXVlc3RlZFNjcm9s
bERhdGEgewogICAgIEZsb2F0UG9pbnQgc2Nyb2xsUG9zaXRpb247CiAgICAgU2Nyb2xsVHlwZSBz
Y3JvbGxUeXBlIHsgU2Nyb2xsVHlwZTo6VXNlciB9OwogICAgIFNjcm9sbENsYW1waW5nIGNsYW1w
aW5nIHsgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIGJvb2wgYW5pbWF0ZWQ7CisjZW5kaWYKICAgICAKICAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgUmVxdWVzdGVkU2Nyb2xsRGF0YSYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICBy
ZXR1cm4gc2Nyb2xsUG9zaXRpb24gPT0gb3RoZXIuc2Nyb2xsUG9zaXRpb24KICAgICAgICAgICAg
ICYmIHNjcm9sbFR5cGUgPT0gb3RoZXIuc2Nyb2xsVHlwZQorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgICAgICAgICAmJiBhbmltYXRlZCA9PSBvdGhlci5hbmltYXRlZAorI2VuZGlmCiAg
ICAgICAgICAgICAmJiBjbGFtcGluZyA9PSBvdGhlci5jbGFtcGluZzsKICAgICB9CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDhhNTlj
Y2Q2OWRjNDhlYjJhZjVlN2QyMDkyYWE4MjI2M2QxYTZlZTMuLjc0YTBiNTIyYjUwNDI5NmFiMGMw
YzU4NmI4NzQwMDAxYWY4ZGU2MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmgKQEAgLTgyLDggKzgyLDEzIEBAIHB1YmxpYzoKICAgICAvLyBVcGRh
dGVzIEZyYW1lVmlldy9SZW5kZXJMYXllciBzY3JvbGxpbmcgc3RhdGUgYW5kIEdyYXBoaWNzTGF5
ZXJzLgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3Jv
bGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSA9IDA7CiAKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIC8vIENhbGxlZCBmb3Igc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMgdXBkYXRl
cy4KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbklu
UHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBib29sIC8qaXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKi8pIHsgfQorI2VuZGlmCisKICAgICAvLyBDYWxsZWQgZm9y
IHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gdXBkYXRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0
UG9pbnQmIC8qc2Nyb2xsUG9zaXRpb24qLywgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgLypzY3JvbGxQb3NpdGlvbiovLCBTY3JvbGxU
eXBlLCBTY3JvbGxDbGFtcGluZywgYm9vbCAvKmFuaW1hdGVkKi8gPSBmYWxzZSkgeyB9CiAKICAg
ICAvLyBEZWxlZ2F0ZWQgc2Nyb2xsaW5nL3pvb21pbmcgaGFzIGNhdXNlZCB0aGUgdmlld3BvcnQg
dG8gY2hhbmdlLCBzbyB1cGRhdGUgdmlld3BvcnQtY29uc3RyYWluZWQgbGF5ZXJzCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBtYWluRnJhbWVWaWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3Jv
bGxpbmcoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQsIGRvdWJsZSBzY2FsZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5jcHAKaW5kZXggMWYwNzljODQwZDI4ZjgyYjA5ZDQyMDhlMDJjODNkYTQ3MmE4YzA3ZC4uNmE4
Y2YwNmUyZTVjMzlhMzZlMzY2ZGE0MmIyYjBmMDdhMDg5NDU4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmNwcApAQCAtMTA5LDcgKzEwOSwxMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVObwogICAg
IGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYgc2Nyb2xsaW5nU3RhdGVOb2RlID0g
ZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpOwogICAgIGlm
IChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CiAgICAgICAgIGNvbnN0IGF1
dG8mIHJlcXVlc3RlZFNjcm9sbERhdGEgPSBzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Ny
b2xsRGF0YSgpOwotICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChzY3JvbGxpbmdOb2RlSUQoKSwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxQ
b3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxUeXBlLCByZXF1ZXN0ZWRTY3JvbGxE
YXRhLmNsYW1waW5nKTsKKyAgICAgICAgYm9vbCBhbmltYXRlZCA9IGZhbHNlOworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgICAgIGFuaW1hdGVkID0gcmVxdWVzdGVkU2Nyb2xsRGF0YS5h
bmltYXRlZDsKKyNlbmRpZgorICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5v
ZGVSZXF1ZXN0c1Njcm9sbChzY3JvbGxpbmdOb2RlSUQoKSwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5z
Y3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxUeXBlLCByZXF1ZXN0ZWRT
Y3JvbGxEYXRhLmNsYW1waW5nLCBhbmltYXRlZCk7CiAgICAgfQogCiAgICAgbV9pc0ZpcnN0Q29t
bWl0ID0gZmFsc2U7CkBAIC0xNTksMjEgKzE2Myw0MSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpzY3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBTY3JvbGxDbGFtcGlu
ZwogICAgIHNjcm9sbFRvKGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpICsgZGVsdGEsIFNjcm9sbFR5
cGU6OlVzZXIsIGNsYW1wKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6
c2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlw
ZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXApCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxU
eXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcCwgYm9vbCBuZWVkU3luY1Njcm9sbFBvc2l0aW9uKQog
ewotICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikKKyAgICBpZiAo
cG9zaXRpb24gPT0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24pIHsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgICAgICAvLyBTZW5kIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIFdlYiBw
cm9jZXNzLgorICAgICAgICBpZiAocmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgJiYgbmVlZFN5bmNT
Y3JvbGxQb3NpdGlvbikKKyAgICAgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVl
Tm9kZURpZFNjcm9sbCgqdGhpcywgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYyk7
CisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShzY3JvbGxpbmdOb2RlSUQoKSwgZmFsc2UpOworICAgICAg
ICBzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoZmFsc2UpOworI2Vsc2UKKyAgICAgICAgVU5VU0VE
X1BBUkFNKG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24pOworI2VuZGlmCiAgICAgICAgIHJldHVybjsK
KyAgICB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIElmIGR1cmluZyBhIHNj
cm9sbCBhbmltYXRpb24sIG5lZWQgdG8gc3RvcCBpdCBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgb25l
LgorICAgIGlmIChzY3JvbGxBbmltYXRpb25JblByb2dyZXNzKCkpCisgICAgICAgIHNldE5lZWRz
U3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24odHJ1ZSk7CisjZW5kaWYKICAgICBzY3JvbGxpbmdU
cmVlKCkuc2V0SXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbChzY3JvbGxUeXBlID09IFNjcm9s
bFR5cGU6OlByb2dyYW1tYXRpYyk7Ci0gICAgCisKICAgICBtX2N1cnJlbnRTY3JvbGxQb3NpdGlv
biA9IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24ocG9zaXRpb24sIGNsYW1wKTsKLSAgICAKKwogICAg
IExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUgIiA8PCBzY3JvbGxpbmdOb2RlSUQoKSA8PCAiIHNjcm9sbFRvICIgPDwgcG9zaXRp
b24gPDwgIiAoZGVsdGEgZnJvbSBsYXN0IGNvbW1pdHRlZCBwb3NpdGlvbiAiIDw8IChtX2xhc3RD
b21taXR0ZWRTY3JvbGxQb3NpdGlvbiAtIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKSA8PCAiKSIp
OwogCiAgICAgdXBkYXRlVmlld3BvcnRGb3JDdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKICAgICBj
dXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7CiAKICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0
SXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbChmYWxzZSk7CisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIHNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oZmFsc2UpOwor
ICAgIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChmYWxzZSk7CisjZW5kaWYKIH0KIAogdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgp
CkBAIC0xODEsNiArMjA1LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmN1
cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKQogICAgIHJlcG9zaXRpb25TY3JvbGxpbmdMYXll
cnMoKTsKICAgICByZXBvc2l0aW9uUmVsYXRlZExheWVycygpOwogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBpZiAocmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkpCisgICAgICAgIHJldHVy
bjsKKyNlbmRpZgogICAgIHNjcm9sbGluZ1RyZWUoKS5ub3RpZnlSZWxhdGVkTm9kZXNBZnRlclNj
cm9sbFBvc2l0aW9uQ2hhbmdlKCp0aGlzKTsKICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5n
VHJlZU5vZGVEaWRTY3JvbGwoKnRoaXMpOwogfQpAQCAtMjY4LDYgKzI5NiwzNyBAQCB2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywg
U2Nyb2xsaW5nU3RhdGVUcgogICAgIHRzLmR1bXBQcm9wZXJ0eSgic2Nyb2xsYWJsZSBhcmVhIHBh
cmFtZXRlcnMiLCBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycyk7CiB9CiAKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVz
dEFuaW1hdGVkU2Nyb2xsKGJvb2wgYW5pbWF0ZWQpCit7CisgICAgbV9yZXF1ZXN0QW5pbWF0ZWRT
Y3JvbGwgPSBhbmltYXRlZDsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6
cmVxdWVzdEFuaW1hdGVkU2Nyb2xsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0QW5p
bWF0ZWRTY3JvbGw7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoYm9vbCBpblByb2dyZXNzKQoreworICAgIG1fc2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGluUHJvZ3Jlc3M7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSBjb25zdAoreworICAg
IHJldHVybiBtX3Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3M7Cit9CisKK3ZvaWQgU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oYm9v
bCBzdG9wKQoreworICAgIG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbiA9IHN0b3A7
Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6Om5lZWRzU3RvcEN1cnJlbnRT
Y3JvbGxBbmltYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX25lZWRzU3RvcEN1cnJlbnRT
Y3JvbGxBbmltYXRpb247Cit9CisjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCBk
MjVhYzE4MDNmNGYyMzE1MTQxMWE3OWQxNWJjZWMzOWVmOTVkNGM2Li4zMDU0OGZiZjQ0YjRlYjcw
YjVkOTY1YThmZDFjMWIzMTI1NWNkOGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKQEAgLTYwLDcg
KzYwLDcgQEAgcHVibGljOgogICAgIEZsb2F0U2l6ZSBzY3JvbGxEZWx0YVNpbmNlTGFzdENvbW1p
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uIC0gbV9sYXN0Q29tbWl0
dGVkU2Nyb2xsUG9zaXRpb247IH0KIAogICAgIC8vIFRoZXNlIGFyZSBpbXBlcmF0aXZlOyB0aGV5
IGFkanVzdCB0aGUgc2Nyb2xsaW5nIGxheWVycy4KLSAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZs
b2F0UG9pbnQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsQ2xhbXBpbmcg
PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CisgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBGbG9h
dFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9sbENsYW1waW5nID0g
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGJvb2wgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiA9IGZh
bHNlKTsKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYsIFNjcm9sbENsYW1waW5n
ID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogCiAgICAgdm9pZCB3YXNTY3JvbGxlZEJ5RGVs
ZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBPcHRpb25hbDxGbG9h
dFJlY3Q+IG92ZXJyaWRlTGF5b3V0Vmlld3BvcnQgPSB7IH0sIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsKQEAgLTkxLDYg
KzkxLDE1IEBAIHB1YmxpYzoKICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxD
b250YWluZXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXI7IH0K
ICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsgfQogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNldFJlcXVlc3RBbmltYXRlZFNjcm9sbChib29sKTsKKyAg
ICBib29sIHJlcXVlc3RBbmltYXRlZFNjcm9sbCgpIGNvbnN0OworICAgIHZvaWQgc2V0U2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcyhib29sKTsKKyAgICBib29sIHNjcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MoKSBjb25zdDsKKyAgICB2b2lkIHNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRp
b24oYm9vbCk7CisgICAgYm9vbCBuZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uKCkgY29u
c3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
KFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKIApA
QCAtMTQ4LDYgKzE1NywxMiBAQCBwcml2YXRlOgogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVy
cyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKICAgICBib29sIG1faXNGaXJzdENvbW1pdCB7
IHRydWUgfTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYm9vbCBtX3JlcXVlc3RB
bmltYXRlZFNjcm9sbCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Njcm9sbEFuaW1hdGlvbkluUHJv
Z3Jlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9uZWVkc1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0
aW9uIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9s
bENvbnRhaW5lckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxlZENvbnRl
bnRzTGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0aW9uU21vb3RoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvblNtb290aC5jcHAKaW5kZXggMmNhNTc4YTMwZjFiMzFhMjk3ZGM5ODFkZmU1MmNhMzA2NzJl
N2E3Yi4uZjVlMDg5YTRmM2FkMjBmNzYyM2E2OTUwZmZkMzk0YjBlMTExOGQ4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCkBAIC03
NSw2ICs3NSw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwoY29uc3QgRmxv
YXRQb2ludCYgcG9zaXRpb24pCiAgICAgaWYgKG5lZWRUb1Njcm9sbCAmJiAhYW5pbWF0aW9uVGlt
ZXJBY3RpdmUoKSkgewogICAgICAgICBtX3N0YXJ0VGltZSA9IG1faG9yaXpvbnRhbERhdGEuc3Rh
cnRUaW1lOwogICAgICAgICBhbmltYXRpb25UaW1lckZpcmVkKCk7CisgICAgICAgIG1fc2Nyb2xs
YWJsZUFyZWEuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Oklu
Tm9uTmF0aXZlQW5pbWF0aW9uKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggZmY1N2QwMmZlOWI2OGU2OGNiMDc2YjBhNjI1YTJi
MDQ2YzlhMDYzZS4uZDJiMWE1MmNjNTM0MGE1YjZhYzFhZWZkMTBjZGI2Y2E3ZGExZjFkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtODYsNyArODYs
NiBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldChjb25zdCBGbG9hdFBvaW50
JiBvZmZzZXQpCiAgICAgbV9hbmltYXRpb25Qcm9ncmFtbWF0aWNTY3JvbGwtPnNldEN1cnJlbnRQ
b3NpdGlvbihtX2N1cnJlbnRQb3NpdGlvbik7CiAgICAgYXV0byBuZXdQb3NpdGlvbiA9IFNjcm9s
bGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQob2Zmc2V0LCB0b0Zsb2F0U2l6ZSht
X3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CiAgICAgbV9hbmltYXRpb25Qcm9ncmFt
bWF0aWNTY3JvbGwtPnNjcm9sbChuZXdQb3NpdGlvbik7Ci0gICAgbV9zY3JvbGxhYmxlQXJlYS5z
ZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVB
bmltYXRpb24pOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb09mZnNldFdpdGhv
dXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFtcGluZykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDVjNTJkNWJiZGUyODM0NmZhN2M3
M2I4OWQwNGRjNTY1MTE2ZTM3NDMuLjI4Y2I4NTk3YjRiNWVjZTkyOGQ1ZjdjZDE5M2IzMjkwYTBj
NjBjZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtNTgsNiArNTgs
OSBAQCBlbnVtIFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24gOiB1aW50OF90IHsKIGVudW0gY2xhc3Mg
U2Nyb2xsQmVoYXZpb3JTdGF0dXMgOiB1aW50OF90IHsKICAgICBOb3RJbkFuaW1hdGlvbiwKICAg
ICBJbk5vbk5hdGl2ZUFuaW1hdGlvbiwKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEluTmF0aXZlQW5pbWF0aW9uLAorI2VuZGlmCiB9Owog
CiBpbmxpbmUgU2Nyb2xsRGlyZWN0aW9uIGxvZ2ljYWxUb1BoeXNpY2FsKFNjcm9sbExvZ2ljYWxE
aXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGlzVmVydGljYWwsIGJvb2wgaXNGbGlwcGVkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCBlZGY0OTNjMzM5ZTFjNDY4Y2Ix
NjY1ZDhhMTU2ZmI2MmQzMGZmM2YwLi5mMzliMmFkYzZkNDljM2NkMjA0MzJiMDMxYTc2MzFmMzQz
NTgxZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNTMzLDEw
ICs1MzMsOSBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQwogICAgIGlmIChjdXJyZW50U2Nyb2xs
QmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmlt
YXRpb24pCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwogCisg
ICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5p
bWF0aW9uKTsKICAgICBpZiAoIXJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShuZXdTY3JvbGxQ
b3NpdGlvbiwgY3VycmVudFNjcm9sbFR5cGUoKSwgY2xhbXBpbmcpKQogICAgICAgICB1cGRhdGVT
Y3JvbGxiYXJzKG5ld1Njcm9sbFBvc2l0aW9uKTsKLQotICAgIHNldFNjcm9sbEJlaGF2aW9yU3Rh
dHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiB9CiAKIGJvb2wgU2Ny
b2xsVmlldzo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
Y3BwCmluZGV4IDViZGE4NTdiYjkxYjE2MjIzMDI1YzBlNjhkODAxODFmOGFkZmUwZWIuLjM5NmRk
MDkzMzc5ODcwNzAxNzUxM2E4YmY3MzQ5NWY1ZWJhM2EyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTE0MywxMCArMTQzLDI3IEBAIGJvb2wgU2Ny
b2xsYWJsZUFyZWE6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFu
dWxhcml0eSBncmFudWxhCiAgICAgcmV0dXJuIHNjcm9sbEFuaW1hdG9yKCkuc2Nyb2xsKG9yaWVu
dGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7CiB9CiAKLXZvaWQgU2Nyb2xs
YWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBv
ZmZzZXQsIFNjcm9sbENsYW1waW5nKQordm9pZCBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZz
ZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGxUeXBlIHNj
cm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewogICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsYWJsZUFyZWEgIiA8PCB0aGlzIDw8ICIgc2Ny
b2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uICIgPDwgb2Zmc2V0KTsKLSAgICBzY3JvbGxBbmltYXRv
cigpLnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7CisKKyAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlw
ZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CisgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xs
VHlwZSk7CisKKyAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xs
QmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgICAgICBzY3JvbGxBbmlt
YXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKKworICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAg
c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTmF0aXZlQW5p
bWF0aW9uKTsKKyAgICBoYW5kbGVkID0gcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9s
bFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShjbGFtcGluZyk7CisjZW5kaWYKKyAgICBpZiAoIWhhbmRsZWQg
JiYgb2Zmc2V0ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAgICBzY3JvbGxBbmltYXRv
cigpLnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7CisKKyAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShw
cmV2aW91c1Njcm9sbFR5cGUpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09m
ZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxDbGFt
cGluZyBjbGFtcGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmlu
ZGV4IGZkZGRmMmY5YmViN2UwYjI4ZjA3MmNiMTIxZDFlZTExN2JmMDA5NjkuLjI1NWVlZTQxM2Zm
N2Q5ZjBiMjExNTAzZGI2NjFhZGI4NjNiY2JkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRT
Y3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1cyBzdGF0dXMpIHsgbV9jdXJy
ZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RhdHVzKTsg
fQogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3Jv
bGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEpOwotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3Jv
bGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmLCBT
Y3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNj
cm9sbENsYW1waW5nOjpDbGFtcGVkKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRv
T2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcg
PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAgICAgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhv
dXRBbmltYXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24sIGZsb2F0IG9mZnNldCk7CiAKQEAgLTQw
OCw3ICs0MDgsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc2Nyb2xsT3JpZ2luQ2hhbmdl
ZCA6IDE7CiAgICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsVHlwZSA6IDE7IC8vIFNjcm9sbFR5
cGUKICAgICB1bnNpZ25lZCBtX3Njcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlIDogMTsKLSAg
ICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cyA6IDE7CisgICAgdW5zaWdu
ZWQgbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMgOiAyOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXgg
YTk1NDg1NDg3ZDViN2NmMmUyN2MxODBhOGQ4MTk1ZmQ1ODBkYjc1Ni4uYzI1OTc2NzNlYWMzM2Fm
MWYzYzEyMzAyMGQxZDZlOTQzMjE1MmJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCkBAIC0yNTkzLDEwICsyNTkzLDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNj
cm9sbFRvWVBvc2l0aW9uKGludCB5LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1w
aW5nCiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9z
aXRpb24mIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNs
YW1waW5nLCBib29sIGFuaW1hdGVkKQogeworICAgIFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQg
PSBzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pOworICAgIFNjcm9sbE9mZnNldCBj
bGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQg
PyBjbGFtcFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQpIDogc2Nyb2xsT2Zmc2V0OwogICAgIGlm
IChhbmltYXRlZCkKLSAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKHNjcm9sbE9m
ZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAgICAg
ICAgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGNsYW1wZWRTY3JvbGxPZmZzZXQsIHNjcm9s
bFR5cGUsIGNsYW1waW5nKTsKICAgICBlbHNlCi0gICAgICAgIHNjcm9sbFRvT2Zmc2V0KHNjcm9s
bE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyAg
ICAgICAgc2Nyb2xsVG9PZmZzZXQoY2xhbXBlZFNjcm9sbE9mZnNldCwgc2Nyb2xsVHlwZSwgY2xh
bXBpbmcpOwogfQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0
KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjYxNSwzMyArMjYx
NywxOSBAQCBib29sIFJlbmRlckxheWVyOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29u
c3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBTYwogCiB2b2lkIFJlbmRlckxheWVyOjpzY3Jv
bGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Nyb2xsVHlwZSBz
Y3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKLSAgICBpZiAoY3VycmVudFNj
cm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZl
QW5pbWF0aW9uKQotICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsK
LQotICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQpIDog
c2Nyb2xsT2Zmc2V0OwotICAgIGlmIChjbGFtcGVkU2Nyb2xsT2Zmc2V0ID09IHRoaXMtPnNjcm9s
bE9mZnNldCgpKQorICAgIGF1dG8gc2Nyb2xsQmVoYXZpb3JTdGF0dXMgPSBjdXJyZW50U2Nyb2xs
QmVoYXZpb3JTdGF0dXMoKTsKKyAgICBpZiAoc2Nyb2xsT2Zmc2V0ID09IHRoaXMtPnNjcm9sbE9m
ZnNldCgpICYmIHNjcm9sbEJlaGF2aW9yU3RhdHVzID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpO
b3RJbkFuaW1hdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBwcmV2aW91c1Njcm9s
bFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOwotICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNj
cm9sbFR5cGUpOwotCi0gICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xs
UG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBzY3JvbGxUeXBlLCBjbGFt
cGluZykpCi0gICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjbGFtcGVkU2Ny
b2xsT2Zmc2V0LCBjbGFtcGluZyk7Ci0gICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xs
QmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKLQotICAgIHNldEN1cnJlbnRTY3JvbGxU
eXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7Ci19CisgICAgaWYgKHNjcm9sbEJlaGF2aW9yU3RhdHVz
ID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAg
c2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CiAKLXZvaWQgUmVuZGVyTGF5ZXI6
OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCwg
U2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKLXsKICAgICBh
dXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3Vy
cmVudFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CiAKLSAgICBTY3JvbGxPZmZzZXQgbmV3U2Nyb2xs
T2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNjcm9s
bE9mZnNldChvZmZzZXQpIDogb2Zmc2V0OwotICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZpb3JT
dGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pCi0g
ICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwotICAgIGlmIChuZXdT
Y3JvbGxPZmZzZXQgIT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCi0gICAgICAgIFNjcm9sbGFibGVB
cmVhOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3U2Nyb2xsT2Zmc2V0KTsKKyAgICBz
ZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRp
b24pOworICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0aW9u
RnJvbU9mZnNldChzY3JvbGxPZmZzZXQpLCBzY3JvbGxUeXBlLCBjbGFtcGluZykpCisgICAgICAg
IHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3JvbGxPZmZzZXQsIGNsYW1waW5nKTsK
IAogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGRmYjI0MGMyNWE2NmRjN2I3MTQ4
ZjdiMjBiMjZkZDNkMzNhZjA5OTYuLjIyNDY1NzI3MzEyYjAxZDhmMTNiNjljZjE3NGMwZmI2MWI4
NWQxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC00NDQsNyAr
NDQ0LDYgQEAgcHVibGljOgogICAgIGJvb2wgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNv
bnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpIG92ZXJyaWRlOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3Jv
bGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9s
bENsYW1waW5nOjpDbGFtcGVkKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zm
c2V0V2l0aEFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xs
VHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkKTsKIAogICAgIHZvaWQgc2Nyb2xsVG9YUG9zaXRpb24oaW50IHgsIFNjcm9sbFR5cGUsIFNj
cm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGJvb2wgYW5pbWF0ZWQgPSBm
YWxzZSk7CiAgICAgdm9pZCBzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSwgU2Ny
b2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYm9vbCBhbmltYXRlZCA9IGZh
bHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0
aW9uLmNwcAppbmRleCBiZGJiNWViMDc0YzM4ZjVkMGJlZjQ2NDYzYmFjNzQ0YjQ4YTdjNWQ4Li5h
OGEwOTE5ODM1YTRjYmYxYTZlMTg3NGJmNTYxNjJhODBlZjhhNjM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC00NTAsNiAr
NDUwLDkgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlcXVlc3RlZFNjcm9sbERhdGE+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVxdWVzdGUKICAgICBlbmNvZGVyIDw8IHNjcm9sbERh
dGEuc2Nyb2xsUG9zaXRpb247CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHNjcm9sbERhdGEuc2Ny
b2xsVHlwZSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHNjcm9sbERhdGEuY2xhbXBpbmcpOwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHNjcm9sbERh
dGEuYW5pbWF0ZWQpOworI2VuZGlmCiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxSZXF1ZXN0ZWRT
Y3JvbGxEYXRhPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlcXVlc3RlZFNjcm9sbERhdGEm
IHNjcm9sbERhdGEpCkBAIC00NjMsNiArNDY2LDExIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXF1
ZXN0ZWRTY3JvbGxEYXRhPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlcXVlc3RlZFNjcm9s
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0oc2Nyb2xsRGF0YS5jbGFtcGluZykpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZUVudW0oc2Nyb2xsRGF0YS5hbmltYXRlZCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTYyNyw2ICs2MzUsOSBA
QCBzdGF0aWMgdm9pZCBkdW1wKFRleHRTdHJlYW0mIHRzLCBjb25zdCBTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUmIG5vZGUsIGJvb2wgYwogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVl
c3RlZC1zY3JvbGwtcG9zaXRpb24iLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9u
KTsKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLWlz
LXByb2dyYW1hdGljIiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxUeXBlKTsKICAgICAgICAg
dHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLWNsYW1waW5nIiwgcmVx
dWVzdGVkU2Nyb2xsRGF0YS5jbGFtcGluZyk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLXdpdGgtYW5p
bWF0aW9uIiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5hbmltYXRlZCk7CisjZW5kaWYKICAgICB9CiAK
ICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCmluZGV4IDQz
NjlkMjcxNGEyMTA5NTU3ZDcxNDUyZGJhMzY2YmU0NDQ2Y2I0NDEuLjliNDhkNTNmNzFhMDNmMTI5
MzA5YTA0OGI5NjFmNDljNmE4OGM4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdJT1MuaApAQCAtNjAsNyArNjAsNyBAQAogCiAtIChSZWZQdHI8V2Vi
S2l0OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90OwogCi0tICh2b2lkKV9zY3JvbGxU
b0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlv
biBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbjsKKy0gKHZvaWQp
X3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9s
bFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFu
aW1hdGVkOihCT09MKWFuaW1hdGVkOwogLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3JlOjpG
bG9hdFJlY3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIG1p
bmltdW1TY3JvbGxEaXN0YW5jZTooZmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNlOwogCiAtIChk
b3VibGUpX2luaXRpYWxTY2FsZUZhY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggOGM5OTI4YTFlZTJlMjkwYmU5ZmE5MTVlYzM1
NzVmYTljYzJlNjYxMC4uZDM2NmU1Y2FkMzk5MDY5YzU2ZWQ5OWQ3ZjgxYTI0ZTE4MmNiMWFlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0K
QEAgLTM0NSw2ICszNDUsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHBvaW50c0VxdWFsSW5EZXZp
Y2VQaXhlbHMoQ0dQb2ludCBhLCBDR1BvaW50IGIsIGZsb2F0IGRldmljZVMKICAgICAgICAgJiYg
ZmFicyhhLnkgKiBkZXZpY2VTY2FsZUZhY3RvciAtIGIueSAqIGRldmljZVNjYWxlRmFjdG9yKSA8
IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCk7CiB9CiAKK3N0YXRpYyBpbmxp
bmUgYm9vbCBwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKENHUG9pbnQgYSwgQ0dQb2lu
dCBiLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICByZXR1cm4gQ0dSb3VuZChhLngg
KiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChiLnggKiBkZXZpY2VTY2FsZUZhY3RvcikK
KyAgICAgICAgJiYgQ0dSb3VuZChhLnkgKiBkZXZpY2VTY2FsZUZhY3RvcikgPT0gQ0dSb3VuZChi
LnkgKiBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CisKIHN0YXRpYyBDR1NpemUgcm91bmRTY3JvbGxW
aWV3Q29udGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIENHU2l6ZSBj
b250ZW50U2l6ZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IHBhZ2UuZGV2aWNl
U2NhbGVGYWN0b3IoKTsKQEAgLTEwOTYsOSArMTEwMiwxMCBAQCBzdGF0aWMgV2ViQ29yZTo6Rmxv
YXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVu
dE9mZgogICAgIHJldHVybiBjb250ZW50T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihXZWJDb3Jl
OjpGbG9hdFBvaW50KCksIFdlYkNvcmU6OkZsb2F0UG9pbnQobWF4aW11bUNvbnRlbnRPZmZzZXQp
KTsKIH0KIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6
OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2lu
dClzY3JvbGxPcmlnaW4KKy0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihX
ZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6
SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7Ci0gICAgaWYg
KF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9ydFVwZGF0
ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykK
KyAgICAvLyBBbmltYXRlZCBzY3JvbGxpbmcgc2hvdWxkbid0IGJlIHNraXBwZWQuCisgICAgaWYg
KCFhbmltYXRlZCAmJiAoX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiB8fCBfZHluYW1p
Y1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6
Ok5vdFJlc2l6aW5nKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6RmxvYXRQb2lu
dCBjb250ZW50T2Zmc2V0ID0gV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZy
b21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2luKSk7CkBA
IC0xMTEyLDEzICsxMTE5LDIyIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFp
bkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAKICAgICBbX3Nj
cm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CiAKLSAgICBpZiAo
IUNHUG9pbnRFcXVhbFRvUG9pbnQoY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
LCBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF0pKQotICAgICAgICBbX3Njcm9sbFZpZXcgc2V0
Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXNdOworICAg
IC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGFyZSBub3QgZXF1YWwsIGJ1dCBpbiB0aGUgc2Ft
ZSBkZXZpY2UgcGl4ZWwsIHNvIF9zY3JvbGxWaWV3IHdvbid0IGNoYW5nZS4KKyAgICAvLyBXZSBu
ZWVkIHRvIGNhbGN1bGF0ZSB0aGUgcm91bmQgdG8gZGV2aWNlIHBpeGVsIGhlcmUuCisgICAgaWYg
KCFwb2ludHNFcXVhbEluUm91bmRUb0RldmljZVBpeGVsKGNvbnRlbnRPZmZzZXRJblNjcm9sbFZp
ZXdDb29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdLCBfcGFnZS0+ZGV2aWNl
U2NhbGVGYWN0b3IoKSkpCisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OmNv
bnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyBhbmltYXRlZDphbmltYXRlZF07CiAg
ICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgY2hhbmdlZCBhbnl0aGluZywgdGhl
cmUgd291bGQgbm90IGJlIGFueSBWaXNpYmxlQ29udGVudFJlY3QgdXBkYXRlIHNlbnQgdG8gdGhl
IGNvbnRlbnQuCiAgICAgICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdvdWxkIGtlZXAgdGhlIGludmFs
aWQgY29udGVudE9mZnNldCBhcyBpdHMgc2Nyb2xsIHBvc2l0aW9uLgogICAgICAgICAvLyBUbyBz
eW5jaHJvbml6ZSB0aGUgV2ViUHJvY2VzcyB3aXRoIHdoYXQgaXMgb24gc2NyZWVuLCB3ZSBzZW5k
IHRoZSBWaXNpYmxlQ29udGVudFJlY3QgYWdhaW4uCiAgICAgICAgIF9wYWdlLT5yZXNlbmRMYXN0
VmlzaWJsZUNvbnRlbnRSZWN0cygpOworCisgICAgICAgIC8vIElmIF9zY3JvbGxWaWV3IHdvbid0
IGNoYW5nZSwgd2Ugc3RpbGwgbmVlZCB0byB0ZWxsIHRoZSBXZWIgcHJvY2VzcyB0aGF0IHRoZSBh
bmltYXRpb24gc3RvcHBlZC4KKyAgICAgICAgaWYgKGFuaW1hdGVkKSB7CisgICAgICAgICAgICBX
ZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9yID0gX3Bh
Z2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICAgICAgICAgIGlmIChjb29yZGlu
YXRvcikKKyAgICAgICAgICAgICAgICBjb29yZGluYXRvci0+c2Nyb2xsaW5nVHJlZVJvb3ROb2Rl
SXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKGZhbHNlKTsKKyAgICAgICAgfQog
ICAgIH0KIH0KIApAQCAtMTYzNCw2ICsxNjUwLDEwIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBv
aW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2Zm
CiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xsVmll
dyAqKXNjcm9sbFZpZXcKIHsKICAgICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xsaW5nXTsKKworICAg
IFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSogY29vcmRpbmF0b3IgPSBf
cGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOworICAgIGlmIChjb29yZGluYXRvcikK
KyAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShmYWxzZSk7CiB9CiAKIC0gKHZvaWQpX3Njcm9sbFZpZXdE
aWRJbnRlcnJ1cHREZWNlbGVyYXRpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAyMTc5YTlkZjMwMmMzNjdkMzdiZDE4MzBj
MDZkNTUyYWJiZDJkYjQxLi45ODhiOTZhZjE5NGMyN2EzMzJkNDMzNTkwMjU0YmRkZWQxYWU5Mzc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xODEsNiArMTgxLDggQEAg
cHVibGljOgogICAgIC8vIFRlbGwgdGhlIHZpZXcgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiBwb3Np
dGlvbiwgYW5kIHdoZXRoZXIgdGhpcyB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgogICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9s
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSA9IDA7CiAK
KyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24oY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBz
Y3JvbGxPcmlnaW4pIHsgfQorCiAgICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3Np
dGlvbiAobm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBwb3Np
dGlvbiwgYmVjYXVzZSBvZiBzY2FsaW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdlYkNv
cmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgPSAwOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGZmMzExMTE4N2RiODBm
YzU2MDIxM2Y3N2M2ODk0MTEzNWZkOGQ5YmYuLjBiODYzNzc5ZTVlYjhmOWM4ZWJjZjcyOGI0YjU1
OTY2MjhiOWUwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Lm1tCkBAIC0yMzksOCArMjM5LDE0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAK
ICAgICAvLyBIYW5kbGUgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzIGZyb20gdGhl
IHNjcm9sbGluZyB0cmVlIHRyYW5zYWN0aW9uIGFmdGVyIGRpZENvbW1pdExheWVyVHJlZSgpCiAg
ICAgLy8gaGFzIHVwZGF0ZWQgdGhlIHZpZXcgc2l6ZSBiYXNlZCBvbiB0aGUgY29udGVudCBzaXpl
LgotICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRh
dGUpCi0gICAgICAgIG1fd2ViUGFnZVByb3h5LnJlcXVlc3RTY3JvbGwocmVxdWVzdGVkU2Nyb2xs
SW5mby5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xs
T3JpZ2luKCkpOworICAgIGlmIChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RzU2Nyb2xsUG9z
aXRpb25VcGRhdGUpIHsKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1
ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uCisgICAgICAgICAgICAsIGxh
eWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbE9yaWdpbigpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAgICAgICAgICwgcmVxdWVzdGVkU2Nyb2xsSW5mby5yZXF1ZXN0V2l0aEFuaW1hdGlv
bgorI2VuZGlmCisgICAgICAgICAgICApOworICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKQogCiAgICAgaWYgKG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0KSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXgg
NGIxYTJkYTkwM2U2Y2IyOWIwZWMwZGZhYWI4NTZmZWU5ZmY3OGNlNy4uNTIwNjA3Nzc4ZjU0NThh
YTU1MGQ2ZDA4OGI3Mzg5MTExYTk4ZDI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFu
Z2UoV2ViQ29yZTo6CiB9CiAKIC8vIFRoaXMgY29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUu
Ci12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2Rl
RGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2lu
dCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRW
aWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXll
clBvc2l0aW9uQWN0aW9uKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpz
Y3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQs
IGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBjb25zdCBPcHRpb25hbDxGbG9h
dFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rp
b24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3Rv
cEFuaW1hdGlvbikKIHsKICAgICAvLyBTY3JvbGwgdXBkYXRlcyBmb3IgdGhlIG1haW4gZnJhbWUg
YXJlIHNlbnQgdmlhIFdlYlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cygpCiAg
ICAgLy8gc28gZG9uJ3Qgc2VuZCB0aGVtIGhlcmUuCkBAIC0yMjIsMjEgKzIyMiwzNiBAQCB2b2lk
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKFNjcm9sbGluZ05vZGVJRAogICAgIG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVTY3Jv
bGxWaWV3RGlkU2Nyb2xsKCk7CiAjZW5kaWYKIAotICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPmlz
SGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSkKKyAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT5p
c0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKCkgJiYgIWluc3RhbnRTY3JvbGxEaWRTdG9wQW5p
bWF0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6U2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9y
Tm9kZShzY3JvbGxlZE5vZGVJRCwgbmV3U2Nyb2xsUG9zaXRpb24sIHNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24gPT0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykpOwogfQog
Ci12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2Rl
UmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZykKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJl
ZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0
IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9s
bENsYW1waW5nLCBib29sIGFuaW1hdGVkKQogewogICAgIGlmIChzY3JvbGxlZE5vZGVJRCA9PSBy
b290U2Nyb2xsaW5nTm9kZUlEKCkgJiYgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvKSB7CiAgICAgICAg
IG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSA9IHRy
dWU7CiAgICAgICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby0+cmVxdWVzdElzUHJvZ3JhbW1hdGlj
U2Nyb2xsID0gc2Nyb2xsVHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWM7CisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0
V2l0aEFuaW1hdGlvbiA9IGFuaW1hdGVkOworI2VuZGlmCiAgICAgICAgIG1fcmVxdWVzdGVkU2Ny
b2xsSW5mby0+cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKICAgICB9
CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
c0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQo
TWVzc2FnZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblBy
b2dyZXNzQ2hhbmdlZEZvck5vZGUoc2Nyb2xsZWROb2RlSUQsIGlzU2Nyb2xsQW5pbWF0aW9uSW5Q
cm9ncmVzcykpOworfQorCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNj
cm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShi
b29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKHJvb3RTY3JvbGxpbmdOb2RlSUQoKSwgaXNTY3JvbGxB
bmltYXRpb25JblByb2dyZXNzKSk7Cit9CisjZW5kaWYKKwogU3RyaW5nIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdAogewogICAgIGlm
IChtX3Njcm9sbGluZ1RyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuaAppbmRleCBiNzQwNzYxODcyMDQ5MWZjNTU5MjczYjBjNDkyMmYwNmE2NmNlNjA3
Li45NDM2MGJkMDAyNDc3MTNiMWE0NjZmNmQ5NjFkMTdkYjY2MzYxMjZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAgLTU1LDkgKzU1LDE0IEBA
IHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KFdl
YlBhZ2VQcm94eSYpOwogICAgIHZpcnR1YWwgflJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkoKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVl
Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxp
bmdOb2RlSUQsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKTsKKyAgICB2b2lkIHNj
cm9sbGluZ1RyZWVSb290Tm9kZUlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0RpZENoYW5nZShi
b29sIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7CisjZW5kaWYKKwogICAgIC8vIEluZm9y
bSB0aGUgd2ViIHByb2Nlc3MgdGhhdCB0aGUgc2Nyb2xsIHBvc2l0aW9uIGNoYW5nZWQgKGNhbGxl
ZCBmcm9tIHRoZSBzY3JvbGxpbmcgdHJlZSkKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlk
U2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+
JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFj
dGlvbik7Ci0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIFdlYkNvcmU6OlNjcm9sbFR5cGUsIFdlYkNvcmU6OlNjcm9sbENsYW1waW5nKTsKKyAgICB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IE9wdGlv
bmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgV2ViQ29yZTo6
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwgYm9vbCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFu
aW1hdGlvbiA9IGZhbHNlKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3Jv
bGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6U2Nyb2xsVHlwZSwgV2ViQ29yZTo6U2Nyb2xsQ2xhbXBp
bmcsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSk7CiAKICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUg
ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUsIFdl
YkNvcmU6OkludFBvaW50KSBjb25zdDsKIApAQCAtODAsNiArODUsOSBAQCBwdWJsaWM6CiAgICAg
c3RydWN0IFJlcXVlc3RlZFNjcm9sbEluZm8gewogICAgICAgICBib29sIHJlcXVlc3RzU2Nyb2xs
UG9zaXRpb25VcGRhdGUgeyB9OwogICAgICAgICBib29sIHJlcXVlc3RJc1Byb2dyYW1tYXRpY1Nj
cm9sbCB7IH07CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgYm9vbCByZXF1ZXN0
V2l0aEFuaW1hdGlvbiB7IH07CisjZW5kaWYKICAgICAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBy
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICB9OwogICAgIHZvaWQgY29tbWl0U2Nyb2xsaW5n
VHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24mLCBS
ZXF1ZXN0ZWRTY3JvbGxJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXgg
MDFhNTdkNGI2ZDVjZGRlZjY1YmZiMTIyZDNjMmU5NjBkMjYwNDExMy4uNWFkYzBiYTA4MjU0ZGJm
MTJlMGMxZTFmMDM0NzQ1YjM1YTg5ZjhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNw
cApAQCAtMTA0LDEyICsxMDQsMTYgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYKICAgICBpZiAo
aXM8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkpCiAgICAgICAgIGxheW91
dFZpZXdwb3J0T3JpZ2luID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZT4obm9kZSkubGF5b3V0Vmlld3BvcnQoKS5sb2NhdGlvbigpOwogCi0gICAgbV9zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5n
Tm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3Jp
Z2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyAgICBib29sIGluc3RhbnRTY3Jv
bGxEaWRTdG9wQW5pbWF0aW9uID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IG5vZGUubmVlZHNTdG9wQ3VycmVudFNj
cm9sbEFuaW1hdGlvbigpICYmICFub2RlLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpOworI2VuZGlm
CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCks
IGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBpbnN0
YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbik7CiB9CiAKLXZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
LCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBl
LCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25z
dCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3Jv
bGxDbGFtcGluZyBjbGFtcGluZywgYm9vbCBhbmltYXRlZCkKIHsKLSAgICBtX3Njcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNj
cm9sbFBvc2l0aW9uLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3Jv
bGxQb3NpdGlvbiwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcsIGFuaW1hdGVkKTsKIH0KIAogUmVmPFNj
cm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVl
Tm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkK
QEAgLTE0Myw2ICsxNDcsMTMgQEAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxp
bmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2QKICAgICByZXR1cm4g
U2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogfQogCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5n
VHJlZU5vZGVJc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3NEaWRDaGFuZ2UoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7
CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlSXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGVJRCwgaXNTY3JvbGxBbmltYXRpb25J
blByb2dyZXNzKTsKK30KKyNlbmRpZgorCiB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OmN1cnJl
bnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIHVuc2ln
bmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKQogewogICAgIG1fc2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5jdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShub2RlSUQsIGhv
cml6b250YWwsIHZlcnRpY2FsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGNjMWY5
NjBjNDExYjhiMWQxNDg0YTNjNjIxOWFmN2RhNzFjZGJkMGEuLjEzN2M2YjRmNzgxOTY2NTg3MTJm
ZDk0ZmYxYTg0MmQ5MzE4ODNiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaApAQCAtNTIs
NyArNTIsMTIgQEAgcHVibGljOgogICAgIGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkmIHNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3Njcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk7IH0KIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRT
Y3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmLCBXZWJDb3JlOjpTY3Jv
bGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bkFjdGlvbjo6U3luYykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIFdlYkNvcmU6OlNjcm9sbFR5cGUsIFdlYkNvcmU6OlNjcm9s
bENsYW1waW5nKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0
c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBXZWJDb3JlOjpTY3JvbGxUeXBlLCBXZWJDb3JlOjpTY3JvbGxD
bGFtcGluZywgYm9vbCBhbmltYXRlZCA9IGZhbHNlKSBvdmVycmlkZTsKKworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZUlzU2Nyb2xsQW5pbWF0aW9u
SW5Qcm9ncmVzc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGJvb2wgaXNTY3Jv
bGxBbmltYXRpb25JblByb2dyZXNzKSBvdmVycmlkZTsKKyNlbmRpZgogCiAgICAgdm9pZCBjdXJy
ZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVu
c2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MuaAppbmRleCBlNjM3ZDYxNTMyNWQzODBjZTkyZDA3YTJiMTIxOTEzZmYxODFkZDJlLi4wMGI0
ZGJjZDM3MGUxOGNkZmQzOTllZTc2YjEzZmIwNTQzYjMzMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaApAQCAt
NTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxEaWRFbmQoKSBjb25zdDsKICAg
ICB2b2lkIHNjcm9sbFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCkgY29uc3Q7CiAgICAgdm9pZCBz
Y3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9mZnNl
dCwgYm9vbCBpblVzZXJJbnRlcmFjdGlvbik7CisgICAgdm9pZCBzY3JvbGxWaWV3RGlkRW5kU2Ny
b2xsaW5nQW5pbWF0aW9uKCk7CiAKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlk
Q2hhbmdlKHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBjb25zdDsKICAg
ICBDQUxheWVyICpzY3JvbGxMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy5tbQppbmRleCA4YzY0NDJkZTk2NzUwYjM5MGRiMTAxNjQzNjYxNWFh
NjgwOTYzZDRjLi5hMjgzYTQxZjE3OTNkMWFhOTYyNmMzODI2NzYxZmZiNmRhMTA1MDUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TLm1tCkBAIC0xNTIsNiArMTUyLDExIEBACiAgICAgfQogfQogCistICh2b2lkKXNj
cm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZp
ZXcKK3sKKyAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsVmlld0RpZEVuZFNj
cm9sbGluZ0FuaW1hdGlvbigpOworfQorCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogLSAo
Q0dQb2ludClfc2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9m
ZnNldEZvck9mZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNs
YXRpb24gc3RhcnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludCls
b2NhdGlvbkluVmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRp
Y2FsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKXZ2CiB7CkBAIC0zMDAsMTUgKzMwNSwzNSBAQCB2
b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0
ZXJDaGlsZHJlbihjb25zdCBTY3JvbAogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbikpIHsKICAgICAgICAgY29uc3QgYXV0byYgcmVxdWVzdGVkU2Nyb2xsRGF0YSA9
IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxEYXRhKCk7Ci0gICAgICAgIHNjcm9s
bGluZ05vZGUoKS5zY3JvbGxUbyhyZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9uLCBy
ZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFR5cGUsIHJlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBp
bmcpOworICAgICAgICBzY3JvbGxpbmdOb2RlKCkuc2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKHJl
cXVlc3RlZFNjcm9sbERhdGEuYW5pbWF0ZWQpOworICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsIHBv
c2l0aW9ucyBhcmUgbm90IHRoZSBzYW1lLCB0aGVyZSdzIGEgcG9zc2liaWxpdHkgdGhhdCB0aGUg
c2Nyb2xsIG9mZnNldCBmcm9tIHRoZSBXZWIgcHJvY2VzcyBoYXMgYmVlbiBvdmVycmlkZGVuLgor
ICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSBzY3JvbGwgcG9zaXRpb24gbmVlZCB0byBiZSBz
ZW50IHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgYm9vbCBzaG91bGRTeW5jU2Nyb2xsUG9z
aXRpb24gPSBzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsUG9zaXRpb24oKSAhPSBzY3JvbGxpbmdO
b2RlKCkuY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAgIHNjcm9sbGluZ05vZGUoKS5z
Y3JvbGxUbyhyZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3Jv
bGxEYXRhLnNjcm9sbFR5cGUsIHJlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcsIHNob3VsZFN5
bmNTY3JvbGxQb3NpdGlvbik7CiAgICAgfQogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKQogewotICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9m
ZnNldDpzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9sbE9mZnNldCgpXTsKLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TCisgICAgYm9vbCBhbmltYXRpb25JblByb2dyZXNzID0gc2Nyb2xs
aW5nTm9kZSgpLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKTsKKyAgICBib29sIG5lZWRUb1N0
b3BBbmltYXRpb24gPSBzY3JvbGxpbmdOb2RlKCkubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbigpOworICAgIGlmIChuZWVkVG9TdG9wQW5pbWF0aW9uICYmIGFuaW1hdGlvbkluUHJvZ3Jl
c3MpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3Jv
bGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxWaWV3KCkuY29udGVudE9mZnNldCBhbmlt
YXRlZDpOT107CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CisKKyAg
ICBpZiAoc2Nyb2xsaW5nTm9kZSgpLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKSB7CisgICAgICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENv
bnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKSBhbmltYXRl
ZDpZRVNdOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisKKyAgICAgICAgc2Ny
b2xsaW5nTm9kZSgpLnNldFNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3ModHJ1ZSk7CisgICAgfSBl
bHNlIGlmICghYW5pbWF0aW9uSW5Qcm9ncmVzcyB8fCBuZWVkVG9TdG9wQW5pbWF0aW9uKSB7Cisg
ICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygp
IHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07
CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CiB9CiAKIHZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsV2lsbFN0YXJ0KCkgY29u
c3QKQEAgLTMzNSw2ICszNjAsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQKICAgICBzY3Jv
bGxpbmdOb2RlKCkud2FzU2Nyb2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhzY3JvbGxQb3NpdGlv
biwgeyB9LCBpblVzZXJJbnRlcmFjdGlvbiA/IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246
OlN5bmMgOiBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwogfQogCit2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3Jv
bGxpbmdBbmltYXRpb24oKQoreworICAgIGF1dG8mIG5vZGUgPSBzY3JvbGxpbmdOb2RlKCk7Cisg
ICAgaWYgKCEobm9kZS5yZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBub2RlLnNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MoKSkpIHsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1Ry
ZWVOb2RlSXNTY3JvbGxBbmltYXRpb25JblByb2dyZXNzRGlkQ2hhbmdlKG5vZGUuc2Nyb2xsaW5n
Tm9kZUlEKCksIGZhbHNlKTsKKyAgICAgICAgbm9kZS5zZXRTY3JvbGxBbmltYXRpb25JblByb2dy
ZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5zaWduZWQgaG9y
aXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0CiB7CiAgICAgaWYgKG1fdXBkYXRpbmdG
cm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggNWYwMzg0NDBmODZkY2IyNzIxYmY5MmQxMThiY2FjNThkZGFjOTU5Ni4uYTRiNjY2ZDFlZDFh
MjU1OTNhYzA5Y2ViN2FkMDMxNTVlMjZkNmFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0xODA0LDkgKzE4MDQsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAgICAgcGFnZUNsaWVu
dCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IElu
dFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbChj
b25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9y
aWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIHBhZ2VDbGllbnQoKS5yZXF1
ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOworICAgIGlmICh3aXRoQW5p
bWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24o
c2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgZWxzZQorICAgICAgICBwYWdlQ2xp
ZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKIH0KIAog
V2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6OnZpZXdTY3JvbGxQb3NpdGlvbigpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGZjNGYyMGI0NTcx
NDUxN2M0YjVmMDI3NzI1ODllZmRmMzcyOWIwYzUuLjkxOTdkNDE1MDQ4NWJmYzcxNjYwNTEyMzBm
ZjE5ODMzNDVkY2Y1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC02MzIsNyArNjMyLDcgQEAgcHVibGljOgogICAgIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQoKSBj
b25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdp
b24mKTsKLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pOwor
ICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgYm9vbCB3aXRo
QW5pbWF0aW9uID0gZmFsc2UpOwogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Nj
cm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggODRiYmNmODBmZDExYWViZTcwY2E3OTU1OWE2MGFm
NzM1ZTU5MTRlZi4uMmQxZGZmYmM4OWVmN2Q3NWUxMjlhYzE0NzgzMGIyYzE1ZDVhODA2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAg
LTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQ
cm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsK
ICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGxXaXRoQW5pbWF0aW9uKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
c2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3Jv
bGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBv
dmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDYz
MTA3ODYxZDM0NWNhOWYyNDc2ZTY1ZWE3OTdjY2M0N2I0Yzc1MTguLmMzYWQ5YzY0Y2YyM2Q3NjA4
OGJkZTg3YWM4OWY3MTEzMGUwMzg4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTEwNCw3ICsxMDQsMTIgQEAgdm9pZCBQYWdl
Q2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBSZWdpb24mKQogCiB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQogewotICAgIFttX3dlYlZpZXcgX3Nj
cm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpz
Y3JvbGxPcmlnaW5dOworICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0
aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6Tk9d
OworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsV2l0aEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9y
aWdpbikKK3sKKyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpz
Y3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIGFuaW1hdGVkOllFU107CiB9
CiAKIFdlYkNvcmU6OkZsb2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlv
bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ci5oCmluZGV4IDhlNjQ5MzU1NDU4M2FiZjM5NWQ4OTFhY2FhYmYwMTVmMTc2NDQ1OTcuLjNkMzQ1
ZDc2OGUwYmI4N2Y5NTJkM2VjNzM2Mzg2NDlkOGM3NjEwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC03Myw2ICs3MywxMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBib29sIHN5bmNMYXllclBvc2l0aW9uKTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJ
bmRpY2VzQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBo
b3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIHZvaWQgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JOb2RlKFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOwor
I2VuZGlmCisKICAgICBXZWJQYWdlKiBtX3dlYlBhZ2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMu
aW4KaW5kZXggMmMwOThhMTA5NzAyMzY3YzM4MzM3MWU4OGU1YTc2MWQ0NWUxOTlhZC4uNTM3ZmQz
NGQ2MWE4MTlmZDYxZmFkMTMwOTQ3NWE2MDdiYjJkOTgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5p
bgpAQCAtMjUsNiArMjUsOSBAQAogbWVzc2FnZXMgLT4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IgewogICAgIFNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUodWludDY0X3Qgbm9kZUlELCBX
ZWJDb3JlOjpGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uLCBib29sIHN5bmNMYXllclBvc2l0aW9u
KTsKICAgICBDdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5v
ZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzc0NoYW5nZWRGb3JO
b2RlKHVpbnQ2NF90IG5vZGVJRCwgYm9vbCBpc1Njcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpOwor
I2VuZGlmCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4IDgz
NTQ0MWQzMTliOTVmNDY2ODc3NTg1Mzg5MDkyYzllZWEyOTM4NjEuLjY4OWQ1NTYyNmY5MjczZjQz
YjlkMjE0YjZhN2RhMjU1NGE3OTI4MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KQEAgLTEwNCw2ICsxMDQsMTMgQEAgdm9pZCBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2Vk
Rm9yTm9kZShTY3JvbGxpbmcKICAgICBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhub2RlSUQs
IGhvcml6b250YWwsIHZlcnRpY2FsKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxBbmltYXRpb25JblByb2dyZXNz
Q2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgYm9vbCBpc1Nj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MpCit7CisgICAgc2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9n
cmVzcyhub2RlSUQsIGlzU2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyk7Cit9CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGQ1MTI2MWI3MDIyN2ZiNTMzNmIzODIzZmMxMWYzNzYzNmM1MDRkNTUuLjMzN2Nk
ZmI5OGJmNTNiOTQxYzViM2FhMmQxMTA2ODU0ZjM4OGE4NDggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBA
QAorMjAxOS0xMi0xMSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciByZWxpZXMgb24gbmF0aXZlIHNj
cm9sbCBpbnRlcmZhY2VzIGZvciBpT1MgcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBwYXRjaCBieSBGcsOpZMOpcmlj
IFdhbmcuCisKKyAgICAgICAgVGhlIG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uIG9uIGlPUyBwbGF0
Zm9ybSBpcyBiYXNlZCBvbiBBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZC4KKyAgICAgICAg
QXN5bmMgc2Nyb2xsIGlzIG5vdCBmdWxseSBzdXBwb3J0ZWQgb24gbm9uLWlPUyBwbGF0Zm9ybS4g
VGhlcmVmb3JlLCB3ZSBuZWVkIHRvIGNvcHkKKyAgICAgICAgdGhlIHNjcm9sbC1iZWhhdmlvciB0
ZXN0IHRvIGZhc3Qvc2Nyb2xsaW5nL2lvcy8sIHRoZW4gZW5hYmxlIEFzeW5jT3ZlcmZsb3dTY3Jv
bGxpbmdFbmFibGVkLgorCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9z
Y3JvbGwtYmVoYXZpb3IuanM6IEFkZGVkLgorICAgICAgICAob2JzZXJ2ZVNjcm9sbGluZyk6Cisg
ICAgICAgICh3YWl0Rm9yU2Nyb2xsRW5kKToKKyAgICAgICAgKHNjcm9sbE5vZGUpOgorICAgICAg
ICAoc2Nyb2xsV2luZG93KToKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sLgorICAgICAgICAqIGZhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1s
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwuCisgICAgICAgICog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1s
LgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50
b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwuCisgICAg
ICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25z
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJl
aGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3Qu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sLgor
ICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2lu
ZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwuCisKIDIwMjAtMDItMDcgIFRvbW9raSBJbWFp
ICA8VG9tb2tpLkltYWlAc29ueS5jb20+CiAKICAgICAgICAgW09wZW5TU0xdIEltcGxlbWVudCBX
ZWJDcnlwdG8gQVBJcyBmb3IgQUVTLUNCQywgQUVTLUNGQiBhbmQgQUVTLUdDTQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZp
b3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvcmVzb3VyY2VzL3Njcm9sbC1i
ZWhhdmlvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTA5NjhlMDI1YmQ4NjA0YzA3NjUzNTJkM2EyZThiM2Nj
MTIzM2FhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMKQEAgLTAsMCArMSw4NyBAQAorZnVuY3Rpb24g
b2JzZXJ2ZVNjcm9sbGluZyhlbGVtZW50cywgY2FsbGJhY2spIHsKKyAgaWYgKCFBcnJheS5pc0Fy
cmF5KGVsZW1lbnRzKSkKKyAgICAgIGVsZW1lbnRzID0gW2VsZW1lbnRzXTsKKyAgdmFyIGxhc3RD
aGFuZ2VkRnJhbWUgPSAwOworICB2YXIgbGFzdExlZnQgPSBuZXcgTWFwKCk7CisgIHZhciBsYXN0
VG9wID0gbmV3IE1hcCgpOworICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7CisgICAg
bGFzdExlZnQuc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsTGVmdCk7CisgICAgbGFzdFRvcC5z
ZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxUb3ApOworICB9KTsKKyAgZnVuY3Rpb24gdGljayhm
cmFtZXMpIHsKKyAgICAvLyBXZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgZWl0aGVyIGZvciA1MDAg
ZnJhbWVzIG9yIHVudGlsIDIwIGZyYW1lcyB3aXRoCisgICAgLy8gbm8gY2hhbmdlIGhhdmUgYmVl
biBvYnNlcnZlZC4KKyAgICBpZiAoZnJhbWVzID49IDUwMCB8fCBmcmFtZXMgLSBsYXN0Q2hhbmdl
ZEZyYW1lID4gMjApIHsKKyAgICAgIGNhbGxiYWNrKHRydWUpOworICAgIH0gZWxzZSB7CisgICAg
ICB2YXIgc2Nyb2xsSGFwcGVuZWQgPSBlbGVtZW50cy5zb21lKChlbGVtZW50KSA9PiB7CisgICAg
ICAgIHJldHVybiBlbGVtZW50LnNjcm9sbExlZnQgIT0gbGFzdExlZnQuZ2V0KGVsZW1lbnQpIHx8
IGVsZW1lbnQuc2Nyb2xsVG9wICE9IGxhc3RUb3AuZ2V0KGVsZW1lbnQpOworICAgICAgfSk7Cisg
ICAgICBpZiAoc2Nyb2xsSGFwcGVuZWQpIHsKKyAgICAgICAgbGFzdENoYW5nZWRGcmFtZSA9IGZy
YW1lczsKKyAgICAgICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4geworICAgICAgICAg
IGxhc3RMZWZ0LnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbExlZnQpOworICAgICAgICAgIGxh
c3RUb3Auc2V0KGVsZW1lbnQsIGVsZW1lbnQuc2Nyb2xsVG9wKTsKKyAgICAgICAgfSk7CisgICAg
ICAgIGNhbGxiYWNrKGZhbHNlKTsKKyAgICAgIH0KKyAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFt
ZSh0aWNrLmJpbmQobnVsbCwgZnJhbWVzICsgMSkpOworICAgIH0KKyAgfQorICB0aWNrKDApOwor
fQorCitmdW5jdGlvbiB3YWl0Rm9yU2Nyb2xsRW5kKGVsZW1lbnRzKSB7CisgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgIG9ic2VydmVTY3JvbGxpbmcoZWxlbWVudHMsIChk
b25lKSA9PiB7CisgICAgICBpZiAoZG9uZSkKKyAgICAgICAgcmVzb2x2ZSgpOworICAgIH0pOwor
ICB9KTsKK30KKworZnVuY3Rpb24gcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCkgeworICAv
LyBUcnkgdmFyaW91cyBtZXRob2RzIHRvIGVuc3VyZSB0aGUgZWxlbWVudCBwb3NpdGlvbiBpcyBy
ZXNldCBpbW1lZGlhdGVseS4KKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0ID0gMDsKKyAg
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAwOworICBzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bCh7bGVmdDogMCwgdG9wOiAwLCBiZWhhdmlvcjogImluc3RhbnQifSk7Cit9CisKK2Z1bmN0aW9u
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdykgeworICAvLyBUcnkgdmFyaW91
cyBtZXRob2RzIHRvIGVuc3VyZSB0aGUgZWxlbWVudCBwb3NpdGlvbiBpcyByZXNldCBpbW1lZGlh
dGVseS4KKyAgc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCA9IDA7CisgIHNjcm9sbGluZ1dpbmRvdy5zY3JvbGwoe2xlZnQ6IDAsIHRvcDogMCwg
YmVoYXZpb3I6ICJpbnN0YW50In0pOworfQorCitmdW5jdGlvbiBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCBjbGFzc05hbWUpIHsKKyAgc3R5bGVkRWxlbWVudC5jbGFzc0xpc3QucmVt
b3ZlKCJhdXRvQmVoYXZpb3IiLCAic21vb3RoQmVoYXZpb3IiKTsKKyAgc3R5bGVkRWxlbWVudC5j
bGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFyZ3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9y
KQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsKKyAgc3dpdGNoIChzY3JvbGxGdW5jdGlv
bikgeworICAgIGNhc2UgInNjcm9sbEludG9WaWV3IjoKKyAgICAgIGFyZ3MuaW5saW5lID0gInN0
YXJ0IjsKKyAgICAgIGFyZ3MuYmxvY2sgPSAic3RhcnQiOworICAgICAgZWxlbWVudFRvUmV2ZWFs
LnNjcm9sbEludG9WaWV3KGFyZ3MpOworICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAg
IGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExlZnQ7CisgICAgICBhcmdzLnRvcCA9IGVsZW1l
bnRUb1JldmVhbFRvcDsKKyAgICAgIHNjcm9sbGluZ0VsZW1lbnRbc2Nyb2xsRnVuY3Rpb25dKGFy
Z3MpOworICAgICAgYnJlYWs7CisgIH0KK30KKworZnVuY3Rpb24gc2Nyb2xsV2luZG93KHNjcm9s
bGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIGJlaGF2aW9yLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApIHsKKyAgdmFyIGFyZ3MgPSB7fTsKKyAgaWYgKGJlaGF2aW9y
KQorICAgIGFyZ3MuYmVoYXZpb3IgPSBiZWhhdmlvcjsKKyAgYXJncy5sZWZ0ID0gZWxlbWVudFRv
UmV2ZWFsTGVmdDsKKyAgYXJncy50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHNjcm9sbGlu
Z1dpbmRvd1tzY3JvbGxGdW5jdGlvbl0oYXJncyk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVm
YXVsdC1jc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNGNhNjQxNTVmNGY5ZGU4ZjllMTA5
M2Q5YjE3MTJmNDE3Y2U2OTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKKworUEFTUyBJbnN0YW50IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGgg
ZGVmYXVsdCBzY3JvbGwtYmVoYXZpb3IgCitQQVNTIFNtb290aCBzY3JvbGxpbmcgb2YgYW4gZWxl
bWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQt
Y3NzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzVjNjUwM2FiMjY1MDM1ZDAwOGM2MDA2Njg1ZDZjYzEzNzE4
MWQ4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdT
bW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIGRlZmF1bHQgdmFsdWUgb2Ygc2Ny
b2xsLWJlaGF2aW9yPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxvbmci
Lz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWls
dG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJh
ZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNz
Y3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1i
ZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVy
ZmxvdzogYXV0bzsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQor
PC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9Im92ZXJmbG93Tm9kZSIg
Y2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBoZWlnaHQ6
IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7
Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7
IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9
ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBw
eDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwvc3Bhbj4KKyAgPC9kaXY+Cis8
L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBzY3JvbGxpbmdFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOwor
ICB2YXIgZWxlbWVudFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRv
cCA9IDI1MDsKKyAgdmFyIHNjcm9sbEZ1bmN0aW9uID0gInNjcm9sbCI7CisKKyAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsK
KyAgfSwgIkluc3RhbnQgc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0aCBkZWZhdWx0IHNjcm9s
bC1iZWhhdmlvciIpOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1
ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIlNtb290aCBzY3JvbGxpbmcgb2YgYW4g
ZWxlbWVudCB3aXRoIGRlZmF1bHQgc2Nyb2xsLWJlaGF2aW9yIik7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxl
bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzYTk2MWVmNTZhOTE4
NTdjNmQyY2FiYjkwODQ4YzViMmQ5ZjA2NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMzYgQEAKKworUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAK
K1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3Ig
CitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9y
IAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9W
aWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
SW50b1ZpZXcoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2lu
ZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0aCBhbm90aGVyIHNtb290aCBzY3Jv
bGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhbiBl
bGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDM4ZGZmZGVjZTU5YjM3NTBlOTZmMWEyODYyYzVlOTQ5N2E0MjM4YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3ItZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxp
bmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVt
ZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiBhbiBlbGVtZW50PC90aXRsZT4KKzxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3
LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB3aWR0aDog
NDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgfQorICAuYXV0b0JlaGF2aW9yIHsKKyAgICBz
Y3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3Jv
bGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rp
dj4KKzxkaXYgaWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0
eWxlPSJ3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdy
YWRpZW50KDEzNWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTog
aW5saW5lLWJsb2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4g
aWQ9ImVsZW1lbnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGlj
YWwtYWxpZ246IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBi
bGFjazsiPjwvc3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBzY3JvbGxp
bmdFbGVtZW50ID0gb3ZlcmZsb3dOb2RlOworICB2YXIgc3R5bGVkRWxlbWVudCA9IG92ZXJmbG93
Tm9kZTsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9S
ZXZlYWxUb3AgPSAyNTA7CisKKyAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAi
c2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Ny
b2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNl
dCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVu
dCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9y
Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAg
ICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
c2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5n
RWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0Jl
aGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAw
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJp
bnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAg
ICB9LCBgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVs
ZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xs
aW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgIH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7Cisg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAg
c2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3Nf
dGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0
Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlv
cmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNt
b290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rp
b24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgfSwgYEVsZW1l
bnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgfSk7CisgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Nj
cm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisgIH0pOworCisgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAg
c2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2
ZWFsVG9wIC8gMik7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVu
dCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxM
ZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
fSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxl
bWVudCB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyIpOworCisgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5n
RWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIs
ICJpbnN0YW50IiwgMCwgMCk7CisgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5n
RWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1ZSBv
ZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3Ro
IHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk3Y2FlYTI3YmI1M2YxYTk0NGRjYTJkNjgxN2EzZWZiODVmY2E3NzIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNyBAQAor
CitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBi
ZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5z
dGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxU
bygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNj
cm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9v
dGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5n
IG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAorUEFTUyBB
Ym9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXJvb3QuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDMyNWI0YjllMjRlZjdkYjdiYTY5ODA0YmUyYjU3ZjczOGEzNjlk
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNjkgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09NVmll
d1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xsT3B0aW9ucycgYmVo
YXZpb3IgZm9yIEVsZW1lbnQuc2Nyb2xsKiBhbmQgc2Nyb2xsLWJlaGF2aW9yIG9uIHRoZSByb290
IG9mIHRoZSBtYWluIGZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9
ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVm
PSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12
aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Nj
cm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIG1hcmdp
bjogMDsKKyAgfQorICAuYXV0b0JlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87
CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsK
KyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBhZ2VDb250
ZW50IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7Ij4KKyAgPGRp
diBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJs
YWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIHZhciBwYWdlTG9hZGVkID0gYXN5bmNf
dGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAgdmFyIHNjcm9sbGluZ0VsZW1lbnQsIHN0eWxlZEVsZW1l
bnQsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcDsKKyAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9hZGVkLnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9u
KCkgeworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50Owor
ICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgcGFnZUNv
bnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiA1ICsgInB4IjsK
KyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cuaW5uZXJIZWlnaHQp
ICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCArIHdpbmRvdy5pbm5l
cldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsgd2luZG93LmlubmVy
SGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQgPSBlbGVtZW50VG9S
ZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUudG9wID0gZWxlbWVu
dFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKCgpID0+
IHsgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7IH0pOworCisgICAgWyJzY3JvbGwiLCAi
c2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChzY3JvbGxG
dW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRT
Y3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxl
ZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVt
ZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtz
Y3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7Cisg
ICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAg
ICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8i
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0
byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNl
dFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0Vs
ZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVs
ZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2
aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
MCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24s
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsK
KyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9s
bEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xl
c3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3Vs
ZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZv
clNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0
byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNl
dFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5
bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5n
RWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJl
c29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisg
ICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdF
bGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290
aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVu
Y3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3Ap
OworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVm
dCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3As
IGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAg
ICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICAgIH0pOworCisg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1l
bnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2
aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsTm9k
ZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Ny
b2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIs
ICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2
YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdv
aW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290
aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJz
Y3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJpbnN0YW50
IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNj
cm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7Cisg
IH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2lu
ZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODIzODVhYWI0OTM1MTRiZGU3YmI1OTVhNzlh
NzQxNDAyNjQwNDM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyOSBAQAorCitQQVNTIFBhZ2UgbG9hZGVkIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRo
IGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJl
aGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8g
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1
dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAor
UEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3Ro
IHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9u
IHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDU3YjBjZDEyMTkxMDJh
ZWRhMDA4NDU5MTU1NjliYjdlMGFkMGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1s
CkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkPXRydWUgIGlu
dGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5U
ZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogb24gdGhl
IHdpbmRvdyBvZiB0aGUgbWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBj
b250ZW50PSJsb25nIi8+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLG1pbmltdW0tc2NhbGU9MSxpbml0aWFsLXNjYWxlPTEiPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
c29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICB9CisgIC5hdXRvQmVo
YXZpb3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bzsKKyAgfQorICAuc21vb3RoQmVoYXZp
b3IgeworICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBp
ZD0ibG9nIj4KKzwvZGl2PgorPGRpdiBpZD0icGFnZUNvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsiPgorICA8ZGl2IGlkPSJlbGVtZW50VG9SZXZlYWwi
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKzwvZGl2Pgor
PHNjcmlwdD4KKyAgdmFyIHBhZ2VMb2FkZWQgPSBhc3luY190ZXN0KCJQYWdlIGxvYWRlZCIpOwor
ICB2YXIgc2Nyb2xsaW5nV2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
cGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICBzY3JvbGxpbmdXaW5k
b3cgPSB3aW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dDsKKyAgICBwYWdlQ29udGVudC5zdHlsZS53aWR0aCA9ICgxMCArIHdpbmRvdy5pbm5lcldpZHRo
KSAqIDUgKyAicHgiOworICAgIHBhZ2VDb250ZW50LnN0eWxlLmhlaWdodCA9ICgyMCArIHdpbmRv
dy5pbm5lckhlaWdodCkgKiA2ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gKDEw
ICsgd2luZG93LmlubmVyV2lkdGgpICogMzsKKyAgICBlbGVtZW50VG9SZXZlYWxUb3AgPSAoMjAg
KyB3aW5kb3cuaW5uZXJIZWlnaHQpICogNDsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUubGVm
dCA9IGVsZW1lbnRUb1JldmVhbExlZnQgKyAicHgiOworICAgIGVsZW1lbnRUb1JldmVhbC5zdHls
ZS50b3AgPSBlbGVtZW50VG9SZXZlYWxUb3AgKyAicHgiOworCisgICAgYWRkX2NvbXBsZXRpb25f
Y2FsbGJhY2soKCkgPT4geyByZXNldFNjcm9sbEZvcldpbmRvdyh3aW5kb3cpOyB9KTsKKworICAg
IFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rp
b24pID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93
LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAg
IH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9S
ZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9u
fSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQg
bm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JT
Y3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgs
IGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAg
fSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+
IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Ny
b2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkg
PT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAg
ICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBz
Y3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hv
dWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVz
c190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAg
ICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxG
dW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAg
c2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50Iiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0
IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9w
IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGlu
Z1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290
aCBiZWhhdmlvcmApOworICAgIH0pOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxC
ZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5n
V2luZG93LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xs
IiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCBlbGVtZW50VG9SZXZlYWxUb3Ag
LyAyKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgIH0pOworICAgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dp
bmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIs
ICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAg
ICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJpbnN0YW50IiwgMCwg
MCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDAsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Ny
b2xsaW5nIik7CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0M2E4MjBl
NTg1OTZkNTZlM2ZlODkyMTE5YmUwM2RjNDhkMGI5NWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3
LW5lc3RlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mgc2Nyb2xsSW50b1Zp
ZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Nyb2xsLWJlaGF2aW9yIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NWI1ZDhkN2M3ODQ0NWEwZDJjMDcyZmExN2Q3ZmM4YzE5NmNlNTRjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1z
Y3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFi
bGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIHdp
dGggc2Nyb2xsSW50b1ZpZXcgZm9yIG5lc3RlZCBzY3JvbGxpbmcgbm9kZXM8L3RpdGxlPgorPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpmd2FuZ0BpZ2FsaWEuY29tIj4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcv
I3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZy1ib3giPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93OiBhdXRvOworICAgIGhlaWdodDog
MjAwcHg7CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAgICBzY3JvbGwtYmVoYXZpb3I6IHNt
b290aDsKKyAgfQorICAuZ3JhZGllbnQgeworICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVu
dCgxMzVkZWcsIHJlZCwgZ3JlZW4pOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwv
ZGl2PgorPGRpdj4KKyAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9vdGhCZWhhdmlvciIgc3R5
bGU9IndpZHRoOiA0NTBweCI+CisgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0
aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxh
YmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KKyAgICAgIDxkaXYgY2xh
c3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+
CisgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0id2lkdGg6IDM1MHB4Ij4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDog
NTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9Indp
ZHRoOiAzMDBweCI+CisgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0
aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJz
Y3JvbGxhYmxlIHNtb290aEJlaGF2aW9yIiBzdHlsZT0id2lkdGg6IDI1MHB4Ij4KKyAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUw
MHB4OyI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlIiBzdHlsZT0i
d2lkdGg6IDIwMHB4Ij4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxl
PSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRp
diBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsg
YmFja2dyb3VuZDogYmxhY2s7Ij48L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3Jh
ZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAg
ICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3
aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0
OiA1MDBweDsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9ImdyYWRp
ZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICA8
L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+Cis8c2Ny
aXB0PgorICAvLyBUaGUgQ1NTT00tVmlldyBzcGVjIGFuZCBpbXBsZW1lbnRhdGlvbnMgZm9sbG93
IGRpZmZlcmVudCBhbGdvcml0aG1zIChzY3JvbGxzIHBlcmZvcm1lZCBpbiBwYXJhbGxlbCwgYXMg
aW5uZXItdG8tb3V0ZXIgc2VxdWVuY2Ugb3IgYXMgb3V0ZXItdG8taW5uZXIgc2VxdWVuY2UpLgor
ICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzMxMjcK
KyAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o
cmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICB2YXIgZGl2cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIi5zY3JvbGxhYmxlIik7CisgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYp
ID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsYWJsZURpdik7CisgICAgICB9KTsKKyAg
ICAgIGVsZW1lbnRUb1JldmVhbC5zY3JvbGxJbnRvVmlldyh7aW5saW5lOiAic3RhcnQiLCBibG9j
azogInN0YXJ0IiwgYmVoYXZpb3I6ICJhdXRvIn0pOworICAgICAgdmFyIHNjcm9sbFRvcCA9IG5l
dyBNYXAoKTsKKyAgICAgIHZhciBpc1Ntb290aCA9IG5ldyBNYXAoKTsKKyAgICAgIGRpdnMuZm9y
RWFjaCgoc2Nyb2xsYWJsZURpdikgPT4geworICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9sbGFi
bGVEaXYsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgaXNTbW9vdGguc2V0KHNj
cm9sbGFibGVEaXYsIHNjcm9sbGFibGVEaXYuY2xhc3NMaXN0LmNvbnRhaW5zKCJzbW9vdGhCZWhh
dmlvciIpKTsKKyAgICAgICAgLy8gSWYgc2Nyb2xsIG9wZXJhdGlvbnMgYXJlIG5vdCBwZXJmb3Jt
ZWQgaW4gcGFyYWxsZWwsIHNjcm9sbCBib3hlcyB3aXRoIGluc3RhbnQgYmVoYXZpb3IgbWlnaHQg
YWxzbyBuZWVkIHRvIHdhaXQgZm9yIHRoZWlyIHByZWRlY2Vzc29ycy4KKyAgICAgICAgaWYgKGlz
U21vb3RoLmdldChzY3JvbGxhYmxlRGl2KSkKKyAgICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbFRvcC5nZXQoc2Nyb2xsYWJsZURpdiksIDUwMCwgIkVsZW1lbnQgd2l0aCBzbW9vdGggYmVo
YXZpb3Igc2hvdWxkIG5vdCBzY3JvbGwgaW1tZWRpYXRlbHkiKTsKKyAgICAgIH0pOworCisgICAg
ICBvYnNlcnZlU2Nyb2xsaW5nKEFycmF5LmZyb20oZGl2cyksIGZ1bmN0aW9uKGRvbmUpIHsKKyAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICBkaXZzLmZvckVhY2goKHNjcm9sbGFibGVEaXYpID0+IHsK
KyAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoc2Nyb2xsVG9wLmdldChzY3JvbGxh
YmxlRGl2KSwgc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5jcmVh
c2luZyIpOworICAgICAgICAgICAgaWYgKCFpc1Ntb290aC5nZXQoc2Nyb2xsYWJsZURpdikpCisg
ICAgICAgICAgICAgIGFzc2VydF9hbnkoYXNzZXJ0X2VxdWFscywgc2Nyb2xsYWJsZURpdi5zY3Jv
bGxUb3AsIFswLCA1MDBdLCAiRWxlbWVudCB3aXRoIGluc3RhbnQgYmVoYXZpb3Igc2hvdWxkIGp1
bXAgdG8gdGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBpZiAoZG9uZSkKKyAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCwgNTAwLCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgICAgICBzY3JvbGxUb3Auc2V0KHNjcm9s
bGFibGVEaXYsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wKTsKKyAgICAgICAgICB9KTsKKyAgICAg
ICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAg
IGlmIChkb25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9
LCAic2Nyb2xsSW50b1ZpZXcgd2l0aCBuZXN0ZWQgZWxlbWVudHMgd2l0aCBkaWZmZXJlbnQgc2Ny
b2xsLWJlaGF2aW9yIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290
aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1NWE2YTYxMGYzNzMxYWM3ZWRm
ZGIwZTJkZGEzOGIwNThlYzkxZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjAgQEAKKworUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9y
bWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Ny
b2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Ny
b2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20g
KDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3Np
dGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMTAwMCwgNTAwKSB0
byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVu
IHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVz
aW5nIHNjcm9sbFRvKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBz
bW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xs
VG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3Jv
bGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20g
KDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xs
IHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0
byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdo
ZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDApIHRvICg1MDAsIDI1
MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgNTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNj
cm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGgg
c2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgp
ICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFT
UyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20g
KDEwMDAsIDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNj
cm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwg
NTAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwg
cG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUw
MCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBv
c2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRoIGFub3RoZXIgc21v
b3RoIHNjcm9sbGluZyAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21v
b3RoIHNjcm9sbGluZyB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3Np
dGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc21vb3RoLXBvc2l0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhNDFiOGIwOGRhZjIxM2E5Zjlh
ODVmZjBhNDBkZjVjZGExNGU2YTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMuaHRtbApAQCAt
MCwwICsxLDE1MSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
eHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5h
bDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGlu
ZyBzY3JvbGwgcG9zaXRpb25zIHdoZW4gc2Nyb2xsaW5nIGFuIGVsZW1lbnQgd2l0aCBzbW9vdGgg
YmVoYXZpb3I8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyIvPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJGcsOpZMOpcmljIFdhbmciIGhyZWY9Im1haWx0bzpm
d2FuZ0BpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Byb3BkZWYtc2Nyb2xsLWJlaGF2aW9yIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9s
bGluZy1ib3giPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2Nyb2xsLWJlaGF2
aW9yLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnNjcm9sbGFibGUgeworICAgIG92ZXJmbG93
OiBhdXRvOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHNjcm9s
bC1iZWhhdmlvcjogc21vb3RoOworICB9Cis8L3N0eWxlPgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2
PgorPGRpdiBpZD0ib3ZlcmZsb3dOb2RlIiBjbGFzcz0ic2Nyb2xsYWJsZSI+CisgIDxkaXYgc3R5
bGU9IndpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3Jh
ZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsiPgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBp
bmxpbmUtYmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsiPjwvc3Bhbj48c3BhbiBp
ZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNh
bC1hbGlnbjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJs
YWNrOyI+PC9zcGFuPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgLy8gRm9yIHNtb290
aCBiZWhhdmlvciwgZXZvbHV0aW9uIG9mIHNjcm9sbCBwb3NpdGlvbnMgb3ZlciB0aW1lIGlzIG5v
dCBzcGVjaWZpZWQgYnkgQ1NTT00gVmlldy4KKyAgLy8gVGhpcyB0ZXN0IHJlbGllcyBvbiB0aGUg
bWluaW1hbCBhc3N1bXB0aW9uIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGZ1bmN0aW9ucyBhcmUgbW9u
b3RvbmljLgorICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIsICJzY3JvbGxJbnRv
VmlldyJdLmZvckVhY2goZnVuY3Rpb24oc2Nyb2xsRnVuY3Rpb24pIHsKKyAgICBbe2xlZnQ6MCwg
dG9wOjB9LCB7bGVmdDoxMDAwLCB0b3A6MH0sIHtsZWZ0OjAsIHRvcDo1MDB9LCB7bGVmdDoxMDAw
LCB0b3A6NTAwfV0uZm9yRWFjaCgoaW5pdGlhbCkgPT4geworICAgICAgdmFyIGZpbmFsTGVmdCA9
IDUwMDsKKyAgICAgIHZhciBmaW5hbFRvcCA9IDI1MDsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3Qp
IHsKKyAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50
IiwgaW5pdGlhbC5sZWZ0LCBpbml0aWFsLnRvcCk7CisgICAgICAgICAgdmFyIG9sZExlZnQgPSBv
dmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dO
b2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIGluaXRpYWwu
bGVmdCwgIlNjcm9sbExlZnQgc2hvdWxkIGJlIGF0IGluaXRpYWwgcG9zaXRpb24iKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgaW5pdGlhbC50b3AsICJTY3JvbGxUb3Agc2hvdWxk
IGJlIGF0IGluaXRpYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICBpZiAoc2Nyb2xsRnVuY3Rpb24g
PT09ICJzY3JvbGxCeSIpCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgc2Ny
b2xsRnVuY3Rpb24sICJzbW9vdGgiLCBmaW5hbExlZnQgLSBpbml0aWFsLmxlZnQsIGZpbmFsVG9w
IC0gaW5pdGlhbC50b3ApOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcm9sbE5vZGUo
b3ZlcmZsb3dOb2RlLCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGZpbmFsTGVmdCwgZmluYWxU
b3ApOworICAgICAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2RlLCBmdW5jdGlvbihk
b25lKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92
ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZs
b3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChN
YXRoLmh5cG90KGZpbmFsTGVmdCAtIG5ld0xlZnQsIGZpbmFsVG9wIC0gbmV3VG9wKSwgTWF0aC5o
eXBvdChmaW5hbExlZnQgLSBvbGRMZWZ0LCBmaW5hbFRvcCAtIG9sZFRvcCksICJTY3JvbGwgcG9z
aXRpb24gc2hvdWxkIG1vdmUgdG93YXJkcyB0aGUgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAg
ICAgICAgaWYgKGRvbmUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQs
IGZpbmFsTGVmdCwgIlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIGZpbmFsVG9wLCAiU2Nyb2xsVG9w
IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgIG9sZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgICAgICBvbGRUb3AgPSBuZXdUb3A7
CisgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgcmVqZWN0KGUpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICB9LCBgU2Nyb2xsIHBvc2l0aW9u
cyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgke2luaXRpYWwubGVmdH0s
ICR7aW5pdGlhbC50b3B9KSB0byAoJHtmaW5hbExlZnR9LCAke2ZpbmFsVG9wfSkgdXNpbmcgJHtz
Y3JvbGxGdW5jdGlvbn0oKSBgKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgICByZXNldFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGluaXRpYWxTY3Jv
bGxBYm9ydGVkID0gZmFsc2U7CisgICAgICB2YXIgc2Nyb2xsRGlyZWN0aW9uQ2hhbmdlZCA9IGZh
bHNlOworICAgICAgdmFyIG9sZExlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAg
IHZhciBvbGRUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgYXNzZXJ0X2VxdWFs
cyhvbGRMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkVG9wLCAwKTsKKyAgICAgIHNj
cm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNtb290aCIsIDE1MDAsIDc1MCk7Cisg
ICAgICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgeworICAg
ICAgICB0cnkgeworICAgICAgICAgIHZhciBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExl
ZnQ7CisgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxUb3A7CisgICAg
ICAgICAgaWYgKGluaXRpYWxTY3JvbGxBYm9ydGVkKSB7CisgICAgICAgICAgICBpZiAoc2Nyb2xs
RGlyZWN0aW9uQ2hhbmdlZCkgeworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuX2Vx
dWFsKG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGRlY3JlYXNpbmciKTsKKyAg
ICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNj
cm9sbFRvcCBrZWVwcyBkZWNyZWFzaW5nIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgc2Nyb2xsRGlyZWN0aW9uQ2hhbmdlZCA9IG5ld0xlZnQgPD0gb2xkTGVmdCAmJiBuZXdU
b3AgPD0gb2xkVG9wOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwgIlNjcm9sbExlZnQga2VlcHMgaW5jcmVh
c2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKG9sZFRvcCwgbmV3
VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsKKyAgICAgICAgICAgICAgaWYgKG5l
d0xlZnQgPiAxMDAwICYmIG5ld1RvcCA+IDUwMCkgeworICAgICAgICAgICAgICAgIC8vIEFib3J0
IHRoZSBpbml0aWFsIHNjcm9sbC4KKyAgICAgICAgICAgICAgICBpbml0aWFsU2Nyb2xsQWJvcnRl
ZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3Jv
bGwiLCAic21vb3RoIiwgNTAwLCAyNTApOworICAgICAgICAgICAgICAgIG5ld0xlZnQgPSBvdmVy
Zmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAgICBuZXdUb3AgPSBvdmVyZmxvd05v
ZGUuc2Nyb2xsVG9wOworICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlm
IChkb25lKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9s
bExlZnQgc2hvdWxkIHJlYWNoIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlv
biIpOworICAgICAgICAgIH0KKyAgICAgICAgICBvbGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAg
ICBvbGRUb3AgPSBuZXdUb3A7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgIHJlamVj
dChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9uZSkKKyAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgIlNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGlu
ZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKwor
ICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihy
ZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHJlc2V0U2Nyb2xsKG92ZXJmbG93Tm9kZSk7CisgICAg
ICB2YXIgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSBmYWxzZTsKKyAgICAgIHZhciBvbGRMZWZ0ID0g
b3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xkVG9wID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbFRvcDsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVmdCwgMCk7CisgICAgICBhc3Nl
cnRfZXF1YWxzKG9sZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNj
cm9sbCIsICJzbW9vdGgiLCAxNTAwLCA3NTApOworICAgICAgb2JzZXJ2ZVNjcm9sbGluZyhvdmVy
Zmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICB2YXIg
bmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgICAgIHZhciBuZXdUb3Ag
PSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlmICghaW5pdGlhbFNjcm9sbEFi
b3J0ZWQpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRMZWZ0LCBu
ZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGFz
c2VydF9sZXNzX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Aga2VlcHMgaW5j
cmVhc2luZyIpOworICAgICAgICAgICAgICBpZiAobmV3TGVmdCA+IDEwMDAgJiYgbmV3VG9wID4g
NTAwKSB7CisgICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIGluaXRpYWwgc2Nyb2xsLgorICAg
ICAgICAgICAgICAgIGluaXRpYWxTY3JvbGxBYm9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBzY3JvbGxOb2RlKG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJpbnN0YW50IiwgNTAwLCAyNTAp
OworICAgICAgICAgICAgICAgIG5ld0xlZnQgPSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAg
ICAgICAgICAgICAgICBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMobmV3TGVmdCwgNTAwLCAiU2Nyb2xsTGVmdCBzaG91bGQgcmVh
Y2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1Rv
cCwgMjUwLCAiU2Nyb2xsVG9wIHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAg
ICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChkb25lKSB7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHN0YXkgYXQg
ZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCAyNTAs
ICJTY3JvbGxUb3Agc2hvdWxkIHN0YXkgYXQgZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICB9
CisgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9wID0gbmV3VG9w
OworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisgICAg
fSk7CisgIH0sICJTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9vdGggc2Nyb2xs
aW5nIHdpdGggYW4gaW5zdGFudCBzY3JvbGxpbmciKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1y
b290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwt
YmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc5OWZkY2My
OWVkNTYzMzdhODkxMjFiMDU5MGEwOWI3YmVmNWMwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNyBAQAorCitQQVNTIGlmcmFtZSBsb2FkZWQgCitQQVNT
IFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBT
dWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21v
b3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
U3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBpbnN0
YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0
aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlv
ciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9W
aWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZy
YW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFu
IG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhlciBzbW9v
dGggc2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJv
b3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3It
c3ViZnJhbWUtcm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2ZDExYWI5NjIxNjM0Nzg0MjlmNmY4YThh
N2E0YzIyMmIyZWYxNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbApAQCAtMCwwICsxLDE3
MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50
YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092
ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdF
bmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9y
IGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiBh
IHN1YmZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4K
KzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86
ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3Jv
bGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhh
dmlvci5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8aWZyYW1lIGlkPSJp
ZnJhbWVOb2RlIiB3aWR0aD0iNDAwcHgiIGhlaWdodD0iMjAwcHgiIHNyY2RvYz0iPCFET0NUWVBF
PgorPGh0bWw+CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9
CisgICAgLmF1dG9CZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgICAg
fQorICAgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsK
KyAgICB9CisgIDwvc3R5bGU+CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9J3dpZHRoOiAyMDAw
cHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBy
ZWQsIGdyZWVuKTsnPgorICAgICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6IGlubGluZS1ibG9jazsg
d2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFuIGlkPSdlbGVtZW50VG9S
ZXZlYWwnIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVw
eDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Jz48L3NwYW4+
CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4iPgorPC9pZnJhbWU+Cis8c2NyaXB0Pgor
ICB2YXIgaWZyYW1lTG9hZFRlc3QgPSBhc3luY190ZXN0KCJpZnJhbWUgbG9hZGVkIik7CisgIHZh
ciBzY3JvbGxpbmdFbGVtZW50LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7CisgIHZh
ciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9wID0g
MjUwOworICBpZnJhbWVOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVMb2FkVGVz
dC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7CisgICAgc2Nyb2xsaW5nRWxlbWVudCA9IGlmcmFtZU5v
ZGUuY29udGVudERvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgc3R5bGVkRWxlbWVudCA9
IGlmcmFtZU5vZGUuY29udGVudERvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50
VG9SZXZlYWwgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxl
bWVudFRvUmV2ZWFsIik7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSIs
ICJzY3JvbGxJbnRvVmlldyJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50
KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCBu
dWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3As
ICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxp
bmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVm
dCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1l
ZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVz
b2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImlu
c3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxU
b3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2
aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3Jv
bGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3Jv
bGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2
aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
KHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50
LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBp
bW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdF
bGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsK
KyAgICAgICAgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAg
ICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxl
bWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhC
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0
aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIp
OworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhl
bigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxl
bWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0p
OworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQi
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVm
dCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJT
aG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3
aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5z
dGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0
LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9m
IHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJz
Y3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9w
KTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgi
LCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1l
bnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9
LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3ViZnJhbWUgd2l0
aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7
CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJl
aGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgInNj
cm9sbCIsICJpbnN0YW50IiwgMCwgMCk7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChz
Y3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAsICJG
aW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICB9KTsKKyAgfSwgIkFib3J0aW5nIGFuIG9u
Z29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW4gaW5zdGFudCBzY3Jv
bGxpbmciKTsKKyAgfSkpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZy
YW1lLXdpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVlYjMyNzJmNDA4ZTVlNjRkMWJi
N2VjMmEwN2UwYmZjYzkwNDc0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDI5IEBACisKK1BBU1MgaWZyYW1lIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwo
KSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZp
b3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8o
KSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1Mg
TWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGgg
aW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBh
biBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVy
IHNtb290aCBzY3JvbGxpbmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9s
bGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1
YmZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzMzZDY0Zjg1MDcx
NjcwYmQ0N2JjZTg2YjA2NTU5NjgyNTA0OTM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRt
bApAQCAtMCwwICsxLDE3MSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBp
bnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5j
RnJhbWVTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9w
dGlvbnMnIGJlaGF2aW9yIGZvciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBv
biB0aGUgcm9vdCBvZiBhIHN1YmZyYW1lPC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5n
IiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhh
dmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+
Cis8aWZyYW1lIGlkPSJpZnJhbWVOb2RlIiB3aWR0aD0iNDAwcHgiIGhlaWdodD0iMjAwcHgiIHNy
Y2RvYz0iPCFET0NUWVBFPgorPGh0bWw+CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1h
cmdpbjogMDsKKyAgICB9CisgICAgLmF1dG9CZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVoYXZp
b3I6IGF1dG87CisgICAgfQorICAgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgICBzY3JvbGwtYmVo
YXZpb3I6IHNtb290aDsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxib2R5PgorICAgIDxkaXYgc3R5
bGU9J3dpZHRoOiAyMDAwcHg7IGhlaWdodDogMTAwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3Jh
ZGllbnQoMTM1ZGVnLCByZWQsIGdyZWVuKTsnPgorICAgICAgPHNwYW4gc3R5bGU9J2Rpc3BsYXk6
IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4Oyc+PC9zcGFuPjxzcGFu
IGlkPSdlbGVtZW50VG9SZXZlYWwnIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRp
Y2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDog
YmxhY2s7Jz48L3NwYW4+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4iPgorPC9pZnJh
bWU+Cis8c2NyaXB0PgorICB2YXIgaWZyYW1lTG9hZFRlc3QgPSBhc3luY190ZXN0KCJpZnJhbWUg
bG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdXaW5kb3csIHN0eWxlZEVsZW1lbnQsIGVsZW1lbnRU
b1JldmVhbDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50
VG9SZXZlYWxUb3AgPSAyNTA7CisgIGlmcmFtZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
IGlmcmFtZUxvYWRUZXN0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICBzY3JvbGxpbmdXaW5k
b3cgPSBpZnJhbWVOb2RlLmNvbnRlbnRXaW5kb3c7CisgICAgc3R5bGVkRWxlbWVudCA9IGlmcmFt
ZU5vZGUuY29udGVudERvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICBlbGVtZW50VG9SZXZl
YWwgPSBpZnJhbWVOb2RlLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudFRv
UmV2ZWFsIik7CisKKyAgICBbInNjcm9sbCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVh
Y2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93
KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExl
ZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29s
dmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xs
aW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9u
LCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1
dG8gYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVz
ZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxp
bmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQg
aW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUo
KTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5n
V2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9C
ZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxY
LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7
CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2
ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAg
ICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHBy
b21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGlu
Z1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9v
dGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9u
LCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
cmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGlu
Z0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3Jv
bGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAg
ICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xs
aW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNt
b290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZ
LCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rp
b24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNj
cm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOwor
ICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAg
IHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9s
bGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xs
WSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0
aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgp
IHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxX
aW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQg
bm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3Ro
YW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBu
b3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0s
IGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rp
b259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOwor
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7
CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xs
V2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZl
YWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGlu
Z1dpbmRvdywgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxl
bWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3Jv
bGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVh
bExlZnQgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhl
ciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
cmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJl
aGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdX
aW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwi
LCAiaW5zdGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xs
aW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJB
Ym9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0
aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworCisgIH0pKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391029</attachid>
            <date>2020-02-17 21:40:34 -0800</date>
            <delta_ts>2021-10-05 17:33:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204936-20200218134029.patch</filename>
            <type>text/plain</type>
            <size>155820</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGEwYzRkYTViMTMxZGJj
OTJlNzc4MDQ0OTNiOThiMjJhZmM2NmIyOC4uMjVjZDExZTkxNTdiMTRhMWQxN2IyMTcwYTBjMzE0
MjkzOTlmNGEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE5LTEyLTExICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3Igc2Nyb2xsIGJlaGF2aW9yIHJlbGllcyBvbiBuYXRpdmUgc2Nyb2xsIGludGVyZmFjZXMgZm9y
IGlPUyBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA0OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQmFzZWQgb24gdGhlIHBhdGNoIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBU
aGlzIHBhdGNoIHN1cHBvcnQgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gb24gaU9TIHBsYXRmb3Jt
LiBJdCByZWxpZXMgb24gVUlTY3JvbGxWaWV3J3MKKyAgICAgICAgbmF0aXZlIHNjcm9sbCBhbmlt
YXRpb24gc3VwcG9ydCBhbmQgaXMgZXhlY3V0ZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAg
ICAgVGVzdHM6IGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3Mu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1l
bGVtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0
ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sCisgICAgICAgICAgICAgICBmYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy5odG1sCisKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6IEFkZCBhIGZsYWcgdG8gaW5kaWNhdGUgaWYg
dGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6QXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6bmF0aXZlU2Nyb2xsQW5pbWF0aW9uU3RvcHBlZCk6IEdl
dCB0aGUgbmF0aXZlIHNjcm9sbCBhbmltYXRpb24gZW5kZWQgbWVzc2FnZSBmcm9tIHRoZSBVSSBw
cm9jZXNzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpk
dW1wUHJvcGVydGllcyBjb25zdCk6ICBBZGQgYW5pbWF0ZWQgZmxhZy4KKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlcXVlc3RlZFNjcm9sbERhdGE6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlTmF0aXZlU2Nyb2xsQW5pbWF0aW9uU3RvcHBlZCk6IE5h
dGl2ZSBzY3JvbGwgYW5pbWF0aW9uIGVuZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbCk6IEFkZCBhIGZsYWcgdG8gaW5k
aWNhdGUgaWYgdGhpcyBpcyBhbiBhbmltYXRlZCBzY3JvbGwgb3Igbm90LgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRy
ZW4pOiBBZGQgYSBmbGFnIHRvIGluZGljYXRlIHRoZSBzY3JvbGwgaXMgYW5pbWF0ZWQgb3Igbm90
LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFRv
KTogSWYgbmVlZFN5bmNTY3JvbGxQb3NpdGlvbiBpcyB0cnVlLCBzZW5kIHRoZSBzY3JvbGwgcG9z
aXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLCBldmVuIGlmIHRoZSBzY3JvbGwgcG9zaXRpb24gZG9l
c24ndCBjaGFuZ2UuCisgICAgICAgIE1haW50YWluIHRoZSBzdGF0dXMgb2YgbV9zdG9wU2Nyb2xs
QW5pbWF0aW9uIGFuZCBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2Vk
KTogQW5pbWF0ZWQgc2Nyb2xsIHdvbid0IGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGltbWVk
aWF0ZWx5LCBzbyBkb24ndCBub3RpZnkgdGhlIHNjcm9sbGluZyBpbmZvIG5vdy4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0QW5pbWF0ZWRT
Y3JvbGwpOiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlzIGFu
IGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OnJlcXVlc3RBbmltYXRlZFNjcm9sbCBjb25zdCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MpOiBNYWludGFpbiB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzcyBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6OnNldE5lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24pOiBJ
ZiB0aGUgTm9kZSBpcyBwZXJmb3JtaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgdGhlIHByZXZpb3Vz
IHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIHN0b3AgZmlyc3QuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlv
biBjb25zdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvblNtb290aDo6c2Nyb2xsKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9PZmZzZXQpOgorICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbFR5cGVzLmg6IEFkZCBTY3JvbGxCZWhhdmlvclN0YXR1cyB0byBpbmRpY2F0ZSB0aGUgbmF0
aXZlIHNjcm9sbGluZy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxl
QXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQpOiBTZW5kIGEgcXVlc3Qgb2Yg
bmF0aXZlIHNjcm9sbC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09m
ZnNldFdpdGhBbmltYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllci5oOgorCiAyMDIwLTAyLTA3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTU5NTMpOiBbIGlPUyBNYWMgXSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL3RpbWluZy1tb2RlbC90aW1lbGlu
ZXMvdXBkYXRlLWFuZC1zZW5kLWV2ZW50cy5odG1sIGlzIGNyYXNoaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ3
ZDcxMDA1Y2FiNDFkZjAzZjNjMzU5MWFmNzlkM2U5ZGM2OGQzMzAuLmQzNDM3ZWQ5YjE2YmRkZWQy
NWM1NmFiMmNmYjkwODUxYTYyMzI0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTkt
MTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50
ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgor
CisgICAgICAgIEFkZCBDU1NPTSBzbW9vdGggc2Nyb2xsaW5nIGFzIGFuIGV4cGVyaW1lbnRhbCBm
ZWF0dXJlLiBPbiBpb3MgcGxhdGZvcm0sIHVzZSBuYXRpdmUgYW5pbWF0ZWQgc2Nyb2xsaW5nCisg
ICAgICAgIGludGVyZmFjZXMgdG8gcGVyZm9ybWFuY2Ugc21vb3RoIHNjcm9sbCBhbmQgc2VuZCB0
aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKworICAgICAgICAqIFNoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5j
cHA6CisgICAgICAgIChBcmd1bWVudENvZGVyPFJlcXVlc3RlZFNjcm9sbERhdGE+OjplbmNvZGUp
OgorICAgICAgICAoQXJndW1lbnRDb2RlcjxSZXF1ZXN0ZWRTY3JvbGxEYXRhPjo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYktpdDo6ZHVtcCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3SU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1t
OgorICAgICAgICAocG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbCk6IEhlbHAgZnVuY3Rp
b24gdG8gY2hlY2sgaWYgdHdvIHVuZXF1YWwgZmxvYXQgcG9pbnRzIGFyZSBhY3R1YWxseSBsb2Nh
dGVkIGluIHRoZSBzYW1lIGRldmljZSBwaXhlbC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zY3Jv
bGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46YW5pbWF0ZWQ6XSk6IEFkZCBh
bmltYXRlZCBmbGFnIGZvciBGcmFtZVZpZXcgdG8gc3RhcnQgYSBhbmltYXRlZCBzY3JvbGwgaWYg
bmVlZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0Fu
aW1hdGlvbjpdKTogU2VuZCBzcm9sbCBlbmQgbWVzc2FnZSB0byB0aGUgV2ViIHByb2Nlc3MuCisg
ICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudDo6cmVxdWVzdFNjcm9sbFdpdGhBbmltYXRpb24pOiBQcm92aWRlIGludGVyZmFjZSBmb3Ig
RnJhbWVWaWV3IGFuaW1hdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZSk6
IEFkZCBhbmltYXRlZCBmbGFnIHRvIHRyaWdnZXIgYW5pbWF0ZWQgc2Nyb2xsIGZvciBGcmFtZVZp
ZXcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOiBTeW5jIHRoZSBzY3Jv
bGwgcG9zaXRpb24gdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xs
KTogQWRkIGFuaW1hdGVkIHNjcm9sbGluZyBpbmZvIHRvIG1fcmVxdWVzdGVkU2Nyb2xsSW5mby4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xs
aW5nVHJlZU5vZGVOYXRpdmVTY3JvbGxBbmltYXRpb25TdG9wcGVkKTogU3luYyBuYXRpdmUgc2Ny
b2xsIGFuaW1hdGlvbiBzdGF0dXMgdG8gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlUm9vdE5vZGVO
YXRpdmVTY3JvbGxBbmltYXRpb25TdG9wcGVkKTogRGl0dG8uIEl0J3Mgc3BlY2lmaWMgdG8gdGhl
IHJvb3Qgbm9kZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVT
Y3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6IEFkZCBhbmltYXRlZCBp
bmZvLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVl
Tm9kZVJlcXVlc3RzU2Nyb2xsKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlTmF0aXZlU2Nyb2xsQW5pbWF0aW9uU3RvcHBlZCk6
IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Lm1tOgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xs
Vmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjpdKTogU2VuZCBzY29sbCBlbmQgaW5mbyB0byB0
aGUgV2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IElmIHRoZSBzY3JvbGwg
cG9zaXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzIGlzbid0IGVxdWFsIHRvIHRoZSBVSSBwcm9jZXNz
LAorICAgICAgICB0aGUgc2Nyb2xsIHBvc2l0aW9uIHNob3VsZCBiZSBzeW5jaHJvbml6ZWQsIGV2
ZW4gdGhlcmUncyBubyBzY3JvbGxpbmcgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzLgorICAg
ICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpyZXBv
c2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKTogQ2FsbGluZyB0aGUgbmF0aXZlIGFuaW1hdGVkIHNjcm9s
bGluZyBpbnRlcmZhY2UgZm9yIHNtb290aCBzY3JvbGwuCisgICAgICAgIElmIHRoZXJlJ3MgYSBz
Y3JvbGwgYW5pbWF0aW9uIHBlcmZvcm1pbmcsIGl0IHNob3VsZCBiZSBzdG9wcGVkIGZpcnN0LCB0
aGVuIHN0YXJ0IGEgbmV3IHNjcm9sbGluZy4KKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1h
dGlvbik6IFN5bmMgc2Nyb2xsIGVuZCBpbmZvIHRvIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpyZXF1ZXN0U2Nyb2xsKTogRGVhbCB3aXRoIHNtb290aCBhbmQgaW5zdGFudCBzY3JvbGwg
Zm9yIEZyYW1lVmlldy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKTogUmVxdWVzdCBpbnN0YW50IHNjcm9sbCBmb3IgRnJhbWVW
aWV3LgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbFdpdGhB
bmltYXRpb24pOiBSZXF1ZXN0IHNtb290aCBzY3JvbGwgZm9yIEZyYW1lVmlldy4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6bmF0aXZlU2Ny
b2xsQW5pbWF0aW9uU3RvcHBlZEZvck5vZGUpOgorCiAyMDIwLTAyLTA3ICB5b3Vlbm4gZmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYW5kYXRlIFVVSUQgdmVyc2lvbiA0IGZv
ciBtRE5TIElDRSBjYW5kaWRhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZDlh
YzFjMjU3NzA5ODY2MTk4YzExYjA2OGY2MzQ4YzhkYmM4YmIyYy4uYTg0MGYzYzIxMWRmZGFjMDYz
MjkyMTU1NmJhOTI1ZjM2ZGYwNjEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
MzY1NiwxOSArMzY1Niw2IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxQ
b3NpdGlvbiYgbmV3UG9zaXRpb24pCiAgICAgZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0KCk7CiB9CiAK
LXZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xs
T2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCi17
Ci0gICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOwotICAg
IHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwotCi0gICAgaWYgKGN1cnJlbnRTY3Jv
bGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFu
aW1hdGlvbikKLSAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7Ci0g
ICAgaWYgKG9mZnNldCAhPSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKLSAgICAgICAgU2Nyb2xsYWJs
ZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihvZmZzZXQpOwotCi0gICAgc2V0Q3Vy
cmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKLX0KLQogZmxvYXQgRnJhbWVWaWV3
OjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250ZW50KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsK
ICAgICBpZiAoZ3JhbnVsYXJpdHkgIT0gU2Nyb2xsQnlQYWdlIHx8IG9yaWVudGF0aW9uID09IEhv
cml6b250YWxTY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBkMmNjNzBmMjVm
YjNiOTNiZmM5ODc1NWI1ZTgzYThhOGQwODNmZTY2Li5jZjhmNTA2ZTU0MTZhZjc5NWQ4ZDEzN2M2
NWFkMzQwMzhhZTUzNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTY1OSw4ICs2NTks
NiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbmRlckxheWVyRGlkU2Nyb2xsKGNvbnN0IFJlbmRl
ckxheWVyJik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aEFu
aW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKTsKLQog
cHJvdGVjdGVkOgogICAgIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0
JiBjbGlwUmVjdCkgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0
IEludFJlY3QmIHVwZGF0ZVJlY3QpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBk
NTc5N2JhNzgyM2Q5ZDdjZGQxYjg5NGRiODNkNzE4YzljZTczNzViLi4wNmQzY2E2YjFkZTU3ODUw
N2U0MGNmY2MwZjUxM2Q4ZjdmZjk0NjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ4
LDcgKzI0OCwxMCBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYgc2NybwogCiAgICAgYm9vbCBpbkJhY2tG
b3J3YXJkQ2FjaGUgPSBmcmFtZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRD
YWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZTsKICAgICBib29s
IGluUHJvZ3JhbW1hdGljU2Nyb2xsID0gc2Nyb2xsYWJsZUFyZWEuY3VycmVudFNjcm9sbFR5cGUo
KSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWM7Ci0gICAgaWYgKGluUHJvZ3JhbW1hdGljU2Ny
b2xsIHx8IGluQmFja0ZvcndhcmRDYWNoZSkKKworICAgIGJvb2wgYW5pbWF0ZWQgPSBzY3JvbGxh
YmxlQXJlYS5jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSAhPSBTY3JvbGxCZWhhdmlvclN0
YXR1czo6Tm90SW5BbmltYXRpb247CisgICAgLy8gVGhlIHNjcm9sbCBwb3NpdGlvbiBvZiBhbmlt
YXRlZCBzY3JvbGxpbmcgd2lsbCBiZSBzZXQgYnkgdGhlIFVJIHByb2Nlc3MuIFNvIHNob3VsZG4n
dCBzZXQgaXQgbm93LgorICAgIGlmICghYW5pbWF0ZWQgJiYgKGluUHJvZ3JhbW1hdGljU2Nyb2xs
IHx8IGluQmFja0ZvcndhcmRDYWNoZSkpCiAgICAgICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0
ZXJBc3luY1Njcm9sbChzY3JvbGxpbmdOb2RlSUQsIHNjcm9sbFBvc2l0aW9uLCB7IH0sIFNjcm9s
bFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U2V0KTsK
IAogICAgIEFTU0VSVChpblByb2dyYW1tYXRpY1Njcm9sbCA9PSAoc2Nyb2xsVHlwZSA9PSBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMpKTsKQEAgLTI2Miw3ICsyNjUsMTQgQEAgYm9vbCBBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJs
ZUFyZWEmIHNjcm8KICAgICBpZiAoIXN0YXRlTm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgc3RhdGVOb2RlLT5zZXRSZXF1ZXN0ZWRTY3JvbGxEYXRhKHsgc2Nyb2xsUG9zaXRpb24s
IHNjcm9sbFR5cGUsIGNsYW1waW5nIH0pOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
UmVxdWVzdGVkU2Nyb2xsRGF0YSBzY3JvbGxEYXRhKHsgc2Nyb2xsUG9zaXRpb24sIHNjcm9sbFR5
cGUsIGNsYW1waW5nLCBhbmltYXRlZCB9KTsKKyNlbHNlCisgICAgUmVxdWVzdGVkU2Nyb2xsRGF0
YSBzY3JvbGxEYXRhKHsgc2Nyb2xsUG9zaXRpb24sIHNjcm9sbFR5cGUsIGNsYW1waW5nIH0pOwor
I2VuZGlmCisKKyAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbERhdGEoc2Nyb2xsRGF0
YSk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjkzLDYgKzMwMywyOSBAQCB2b2lkIEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRl
ckFzeW5jU2Nyb2xsKFNjcgogICAgIG1fdXBkYXRlTm9kZVNjcm9sbFBvc2l0aW9uVGltZXIuc3Rh
cnRPbmVTaG90KDBfcyk7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpuYXRpdmVTY3JvbGxBbmltYXRpb25TdG9wcGVkKFNjcm9s
bGluZ05vZGVJRCBub2RlSUQpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAg
IGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBmcmFtZVZpZXcgPSBm
cmFtZVZpZXdGb3JTY3JvbGxpbmdOb2RlKG5vZGVJRCk7CisgICAgaWYgKCFmcmFtZVZpZXcpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChub2RlSUQgPT0gZnJhbWVWaWV3LT5zY3JvbGxpbmdO
b2RlSUQoKSkgeworICAgICAgICBmcmFtZVZpZXctPnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICAvLyBPdmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAgICBpZiAoYXV0byogc2Nyb2xs
YWJsZUFyZWEgPSBmcmFtZVZpZXctPnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRChub2Rl
SUQpKQorICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Ny
b2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKK30KKyNlbmRpZgorCiB2b2lkIEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbFRpbWVyRmlyZWQoKQogewogICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5ub2RlSUQsIG1fc2NoZWR1bGVkU2Nyb2xsVXBk
YXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5sYXlvdXRWaWV3cG9y
dE9yaWdpbiwgU2Nyb2xsVHlwZTo6VXNlciwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRl
TGF5ZXJQb3NpdGlvbkFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggYTY4NDQyYzM5Yjg3
MjBhZjZhYjQ2YTc2Mzg2OTM3YzZkMDhkZjkwMi4uMmU4YjU0YzNmNWIwY2MwNDY3ODNmMzYxNGRm
OWJhZjhmNTk5NWZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTIsNiArNTIsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVQcm9wZXJ0aWVzQ2hhbmdlZCgpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJB
c3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBPcHRp
b25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24pOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIAorICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgbmF0aXZlU2Nyb2xsQW5pbWF0aW9uU3RvcHBlZChTY3JvbGxpbmdOb2RlSUQpOwor
I2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzKFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpv
bnRhbEluZGV4LCB1bnNpZ25lZCB2ZXJ0aWNhbEluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
Y3BwCmluZGV4IDkyZmJlYmNlOWY0Yjk0ZjY4ZmExZGU0NjYwYTRiMzkyODc1MzUxZTkuLmNhNWIw
YmRlNGJhYWQyZTVlZTI1MmJmOTIwYWZiNmUxZTQyZDViZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlLmNwcApAQCAtMzE4LDYgKzMxOCwxMSBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNjcm9sbGluZ1N0YXRlVAogICAg
IGlmIChtX3JlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OlVu
Y2xhbXBlZCkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0
aW9uIGNsYW1waW5nIiwgbV9yZXF1ZXN0ZWRTY3JvbGxEYXRhLmNsYW1waW5nKTsKIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsRGF0YS5hbmltYXRl
ZCkKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHdp
dGggYW5pbWF0aW9uIiwgbV9yZXF1ZXN0ZWRTY3JvbGxEYXRhLmFuaW1hdGVkKTsKKyNlbmRpZgor
CiAgICAgaWYgKCFtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QuaXNFbXB0eSgpKQogICAg
ICAgICB0cy5kdW1wUHJvcGVydHkoInBhcmVudCByZWxhdGl2ZSBzY3JvbGxhYmxlIHJlY3QiLCBt
X3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCmlu
ZGV4IGViNTZmZTU4YWI1MzQ5ZGYzNzJmODU1MDE1YzA3NmIzYzIxZjVhYjkuLmI0N2FiNTYyMDJm
ZGVlNTA1YWIwMjQ0Mjc0OGI5NzY5OGY2YWRjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBA
IC00MiwxMSArNDIsMTcgQEAgc3RydWN0IFJlcXVlc3RlZFNjcm9sbERhdGEgewogICAgIEZsb2F0
UG9pbnQgc2Nyb2xsUG9zaXRpb247CiAgICAgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlIHsgU2Nyb2xs
VHlwZTo6VXNlciB9OwogICAgIFNjcm9sbENsYW1waW5nIGNsYW1waW5nIHsgU2Nyb2xsQ2xhbXBp
bmc6OkNsYW1wZWQgfTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgYW5pbWF0
ZWQ7CisjZW5kaWYKICAgICAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVxdWVzdGVkU2Ny
b2xsRGF0YSYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gc2Nyb2xsUG9zaXRp
b24gPT0gb3RoZXIuc2Nyb2xsUG9zaXRpb24KICAgICAgICAgICAgICYmIHNjcm9sbFR5cGUgPT0g
b3RoZXIuc2Nyb2xsVHlwZQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgICAgICAm
JiBhbmltYXRlZCA9PSBvdGhlci5hbmltYXRlZAorI2VuZGlmCiAgICAgICAgICAgICAmJiBjbGFt
cGluZyA9PSBvdGhlci5jbGFtcGluZzsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDhhNTljY2Q2OWRjNDhlYjJhZjVlN2Qy
MDkyYWE4MjI2M2QxYTZlZTMuLmJhODE3NzM5ODkyYmE0YWI5ZTJjNzlkZTEwNWFhMjE3NWNjNzAz
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgK
QEAgLTgyLDggKzgyLDEzIEBAIHB1YmxpYzoKICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5k
ZXJMYXllciBzY3JvbGxpbmcgc3RhdGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZSYsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uOjpTeW5jKSA9IDA7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIENh
bGxlZCBmb3Igc2Nyb2xsIGFuaW1hdGlvbiBzdGF0dXMgdXBkYXRlcy4KKyAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVOYXRpdmVTY3JvbGxBbmltYXRpb25TdG9wcGVkKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCkgeyB9CisjZW5kaWYKKwogICAgIC8vIENhbGxlZCBmb3IgcmVxdWVz
dGVkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzLgotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
LypzY3JvbGxQb3NpdGlvbiovLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykgeyB9CisgICAg
dmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBGbG9hdFBvaW50JiAvKnNjcm9sbFBvc2l0aW9uKi8sIFNjcm9sbFR5cGUsIFNj
cm9sbENsYW1waW5nLCBib29sIC8qYW5pbWF0ZWQqLyA9IGZhbHNlKSB7IH0KIAogICAgIC8vIERl
bGVnYXRlZCBzY3JvbGxpbmcvem9vbWluZyBoYXMgY2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFu
Z2UsIHNvIHVwZGF0ZSB2aWV3cG9ydC1jb25zdHJhaW5lZCBsYXllcnMKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIG1haW5GcmFtZVZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhj
b25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBsYXlvdXRWaWV3cG9ydCwgZG91YmxlIHNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApp
bmRleCAxZjA3OWM4NDBkMjhmODJiMDlkNDIwOGUwMmM4M2RhNDcyYThjMDdkLi42NzEyYzJjODZj
MmNlNjQxZGRhM2IwY2RjZmUxMTdiOTM2ZWQ3YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3Bw
CkBAIC0xMDksNyArMTA5LDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNv
bW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vCiAgICAgY29uc3Qg
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSBkb3duY2Fz
dDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CiAgICAgaWYgKHNjcm9s
bGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikpIHsKICAgICAgICAgY29uc3QgYXV0byYgcmVx
dWVzdGVkU2Nyb2xsRGF0YSA9IHNjcm9sbGluZ1N0YXRlTm9kZS5yZXF1ZXN0ZWRTY3JvbGxEYXRh
KCk7Ci0gICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKHNjcm9sbGluZ05vZGVJRCgpLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9u
LCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFR5cGUsIHJlcXVlc3RlZFNjcm9sbERhdGEuY2xh
bXBpbmcpOworICAgICAgICBib29sIGFuaW1hdGVkID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAgICAgYW5pbWF0ZWQgPSByZXF1ZXN0ZWRTY3JvbGxEYXRhLmFuaW1hdGVk
OworI2VuZGlmCisgICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBv
c2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFR5cGUsIHJlcXVlc3RlZFNjcm9sbERh
dGEuY2xhbXBpbmcsIGFuaW1hdGVkKTsKICAgICB9CiAKICAgICBtX2lzRmlyc3RDb21taXQgPSBm
YWxzZTsKQEAgLTE1OSwyMSArMTYzLDQxIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OnNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIFNjcm9sbENsYW1waW5nCiAgICAg
c2Nyb2xsVG8oY3VycmVudFNjcm9sbFBvc2l0aW9uKCkgKyBkZWx0YSwgU2Nyb2xsVHlwZTo6VXNl
ciwgY2xhbXApOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxU
byhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3Jv
bGxDbGFtcGluZyBjbGFtcCkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9s
bFRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNj
cm9sbENsYW1waW5nIGNsYW1wLCBib29sIG5lZWRTeW5jU2Nyb2xsUG9zaXRpb24pCiB7Ci0gICAg
aWYgKHBvc2l0aW9uID09IG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKQorICAgIGlmIChwb3NpdGlv
biA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbikgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgICAgIC8vIFNlbmQgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byB0aGUgV2ViIHByb2Nlc3Mu
CisgICAgICAgIGlmIChyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoKSAmJiBuZWVkU3luY1Njcm9sbFBv
c2l0aW9uKQorICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlk
U2Nyb2xsKCp0aGlzLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKTsKKyAgICAg
ICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlTmF0aXZlU2Nyb2xsQW5pbWF0aW9u
U3RvcHBlZChzY3JvbGxpbmdOb2RlSUQoKSk7CisgICAgICAgIHNldFJlcXVlc3RBbmltYXRlZFNj
cm9sbChmYWxzZSk7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0obmVlZFN5bmNTY3JvbGxQ
b3NpdGlvbik7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgLy8gSWYgZHVyaW5nIGEgc2Nyb2xsIGFuaW1hdGlvbiwgbmVlZCB0
byBzdG9wIGl0IGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuCisgICAgaWYgKHNjcm9sbEFuaW1h
dGlvbkluUHJvZ3Jlc3MoKSkKKyAgICAgICAgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1h
dGlvbih0cnVlKTsKKyNlbmRpZgogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJv
Z3JhbW1hdGljU2Nyb2xsKHNjcm9sbFR5cGUgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsK
LSAgICAKKwogICAgIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uID0gYWRqdXN0ZWRTY3JvbGxQb3Np
dGlvbihwb3NpdGlvbiwgY2xhbXApOwotICAgIAorCiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9s
bGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSAiIDw8IHNjcm9sbGlu
Z05vZGVJRCgpIDw8ICIgc2Nyb2xsVG8gIiA8PCBwb3NpdGlvbiA8PCAiIChkZWx0YSBmcm9tIGxh
c3QgY29tbWl0dGVkIHBvc2l0aW9uICIgPDwgKG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9u
IC0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24pIDw8ICIpIik7CiAKICAgICB1cGRhdGVWaWV3cG9y
dEZvckN1cnJlbnRTY3JvbGxQb3NpdGlvbigpOwogICAgIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNo
YW5nZWQoKTsKIAogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRJc0hhbmRsaW5nUHJvZ3JhbW1hdGlj
U2Nyb2xsKGZhbHNlKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc2V0TmVlZHNT
dG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihmYWxzZSk7CisgICAgc2V0UmVxdWVzdEFuaW1hdGVk
U2Nyb2xsKGZhbHNlKTsKKyNlbmRpZgogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKQEAgLTE4MSw2ICsyMDUsMTAgQEAg
dm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hh
bmdlZCgpCiAgICAgcmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpOwogICAgIHJlcG9zaXRpb25S
ZWxhdGVkTGF5ZXJzKCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChyZXF1
ZXN0QW5pbWF0ZWRTY3JvbGwoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCiAgICAgc2Nyb2xs
aW5nVHJlZSgpLm5vdGlmeVJlbGF0ZWROb2Rlc0FmdGVyU2Nyb2xsUG9zaXRpb25DaGFuZ2UoKnRo
aXMpOwogICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhp
cyk7CiB9CkBAIC0yNjgsNiArMjk2LDM3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAg
dHMuZHVtcFByb3BlcnR5KCJzY3JvbGxhYmxlIGFyZWEgcGFyYW1ldGVycyIsIG1fc2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzKTsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0QW5pbWF0ZWRTY3JvbGwoYm9vbCBh
bmltYXRlZCkKK3sKKyAgICBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbCA9IGFuaW1hdGVkOworfQor
Citib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpyZXF1ZXN0QW5pbWF0ZWRTY3JvbGwo
KSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3RBbmltYXRlZFNjcm9sbDsKK30KKwordm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVz
cyhib29sIGluUHJvZ3Jlc3MpCit7CisgICAgbV9zY3JvbGxBbmltYXRpb25JblByb2dyZXNzID0g
aW5Qcm9ncmVzczsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xs
QW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0
aW9uSW5Qcm9ncmVzczsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2V0
TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29sIHN0b3ApCit7CisgICAgbV9uZWVk
c1N0b3BDdXJyZW50U2Nyb2xsQW5pbWF0aW9uID0gc3RvcDsKK30KKworYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6bmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fbmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbjsKK30KKyNl
bmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IGQyNWFjMTgwM2Y0ZjIzMTUxNDExYTc5
ZDE1YmNlYzM5ZWY5NWQ0YzYuLjMwNTQ4ZmJmNDRiNGViNzBiNWQ5NjVhOGZkMWMxYjMxMjU1Y2Q4
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAg
RmxvYXRTaXplIHNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0KCkgY29uc3QgeyByZXR1cm4gbV9j
dXJyZW50U2Nyb2xsUG9zaXRpb24gLSBtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3NpdGlvbjsgfQog
CiAgICAgLy8gVGhlc2UgYXJlIGltcGVyYXRpdmU7IHRoZXkgYWRqdXN0IHRoZSBzY3JvbGxpbmcg
bGF5ZXJzLgotICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbFR5cGUg
PSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkKTsKKyAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxUeXBlID0g
U2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCwgYm9vbCBuZWVkU3luY1Njcm9sbFBvc2l0aW9uID0gZmFsc2UpOwogICAgIHZvaWQgc2Nyb2xs
QnkoY29uc3QgRmxvYXRTaXplJiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCk7CiAKICAgICB2b2lkIHdhc1Njcm9sbGVkQnlEZWxlZ2F0ZWRTY3JvbGxpbmcoY29uc3Qg
RmxvYXRQb2ludCYgcG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UmVjdD4gb3ZlcnJpZGVMYXlvdXRW
aWV3cG9ydCA9IHsgfSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb246OlN5bmMpOwpAQCAtOTEsNiArOTEsMTUgQEAgcHVibGljOgogICAg
IGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIHNjcm9sbENvbnRhaW5lckxheWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9zY3JvbGxDb250YWluZXJMYXllcjsgfQogICAgIGNvbnN0IExheWVyUmVwcmVz
ZW50YXRpb24mIHNjcm9sbGVkQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xs
ZWRDb250ZW50c0xheWVyOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQg
c2V0UmVxdWVzdEFuaW1hdGVkU2Nyb2xsKGJvb2wpOworICAgIGJvb2wgcmVxdWVzdEFuaW1hdGVk
U2Nyb2xsKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTY3JvbGxBbmltYXRpb25JblByb2dyZXNzKGJv
b2wpOworICAgIGJvb2wgc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcygpIGNvbnN0OworICAgIHZv
aWQgc2V0TmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbihib29sKTsKKyAgICBib29sIG5l
ZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24oKSBjb25zdDsKKyNlbmRpZgorCiBwcm90ZWN0
ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9s
bGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCkBAIC0xNDgsNiArMTU3LDEyIEBAIHBy
aXZhdGU6CiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJh
bWV0ZXJzOwogICAgIGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9OwogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG1fcmVxdWVzdEFuaW1hdGVkU2Nyb2xsIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1fc2Nyb2xsQW5pbWF0aW9uSW5Qcm9ncmVzcyB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX25lZWRzU3RvcEN1cnJlbnRTY3JvbGxBbmltYXRpb24geyBmYWxzZSB9OworI2VuZGlm
CisKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXI7CiAgICAg
TGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAppbmRleCAy
Y2E1NzhhMzBmMWIzMWEyOTdkYzk4MWRmZTUyY2EzMDY3MmU3YTdiLi5mNWUwODlhNGYzYWQyMGY3
NjIzYTY5NTBmZmQzOTRiMGUxMTE4ZDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKQEAgLTc1LDYgKzc1LDcgQEAgdm9pZCBTY3Jv
bGxBbmltYXRpb25TbW9vdGg6OnNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKICAg
ICBpZiAobmVlZFRvU2Nyb2xsICYmICFhbmltYXRpb25UaW1lckFjdGl2ZSgpKSB7CiAgICAgICAg
IG1fc3RhcnRUaW1lID0gbV9ob3Jpem9udGFsRGF0YS5zdGFydFRpbWU7CiAgICAgICAgIGFuaW1h
dGlvblRpbWVyRmlyZWQoKTsKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxCZWhh
dmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pOwog
ICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApp
bmRleCBmZjU3ZDAyZmU5YjY4ZTY4Y2IwNzZiMGE2MjVhMmIwNDZjOWEwNjNlLi5kMmIxYTUyY2M1
MzQwYTViNmFjMWFlZmQxMGNkYjZjYTdkYTFmMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3IuY3BwCkBAIC04Niw3ICs4Niw2IEBAIHZvaWQgU2Nyb2xsQW5pbWF0
b3I6OnNjcm9sbFRvT2Zmc2V0KGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCkKICAgICBtX2FuaW1h
dGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3VycmVudFBvc2l0
aW9uKTsKICAgICBhdXRvIG5ld1Bvc2l0aW9uID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFBvc2l0
aW9uRnJvbU9mZnNldChvZmZzZXQsIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xs
T3JpZ2luKCkpKTsKICAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+c2Nyb2xsKG5l
d1Bvc2l0aW9uKTsKLSAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVz
KFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbik7CiB9CiAKIHZvaWQg
U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9h
dFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKaW5kZXggNWM1MmQ1YmJkZTI4MzQ2ZmE3YzczYjg5ZDA0ZGM1NjUxMTZlMzc0My4u
MjhjYjg1OTdiNGI1ZWNlOTI4ZDVmN2NkMTkzYjMyOTBhMGM2MGNlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC01OCw2ICs1OCw5IEBAIGVudW0gU2Nyb2xsTG9naWNh
bERpcmVjdGlvbiA6IHVpbnQ4X3QgewogZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvclN0YXR1cyA6
IHVpbnQ4X3QgewogICAgIE5vdEluQW5pbWF0aW9uLAogICAgIEluTm9uTmF0aXZlQW5pbWF0aW9u
LAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisg
ICAgSW5OYXRpdmVBbmltYXRpb24sCisjZW5kaWYKIH07CiAKIGlubGluZSBTY3JvbGxEaXJlY3Rp
b24gbG9naWNhbFRvUGh5c2ljYWwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIGJv
b2wgaXNWZXJ0aWNhbCwgYm9vbCBpc0ZsaXBwZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCmluZGV4IGVkZjQ5M2MzMzllMWM0NjhjYjE2NjVkOGExNTZmYjYyZDMwZmYzZjAu
LmYzOWIyYWRjNmQ0OWMzY2QyMDQzMmIwMzFhNzYzMWYzNDM1ODFkMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC01MzMsMTAgKzUzMyw5IEBAIHZvaWQgU2Nyb2xs
Vmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0
aW9uLCBTY3JvbGxDCiAgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xs
QW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CiAKKyAgICBzZXRTY3JvbGxCZWhhdmlvclN0
YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwogICAgIGlmICghcmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKG5ld1Njcm9sbFBvc2l0aW9uLCBjdXJyZW50U2Nyb2xs
VHlwZSgpLCBjbGFtcGluZykpCiAgICAgICAgIHVwZGF0ZVNjcm9sbGJhcnMobmV3U2Nyb2xsUG9z
aXRpb24pOwotCi0gICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0
dXM6Ok5vdEluQW5pbWF0aW9uKTsKIH0KIAogYm9vbCBTY3JvbGxWaWV3OjpzY3JvbGwoU2Nyb2xs
RGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggNWJkYTg1N2JiOTFi
MTYyMjMwMjVjMGU2OGQ4MDE4MWY4YWRmZTBlYi4uMzk2ZGQwOTMzNzk4NzA3MDE3NTEzYThiZjcz
NDk1ZjVlYmEzYTIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVh
LmNwcApAQCAtMTQzLDEwICsxNDMsMjcgQEAgYm9vbCBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsKFNj
cm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGEKICAgICBy
ZXR1cm4gc2Nyb2xsQW5pbWF0b3IoKS5zY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBz
dGVwLCBtdWx0aXBsaWVyKTsKIH0KIAotdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZz
ZXRXaXRoQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCwgU2Nyb2xsQ2xhbXBpbmcp
Cit2b2lkIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3Qg
U2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcgY2xhbXBpbmcpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8
ICJTY3JvbGxhYmxlQXJlYSAiIDw8IHRoaXMgPDwgIiBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRp
b24gIiA8PCBvZmZzZXQpOwotICAgIHNjcm9sbEFuaW1hdG9yKCkuc2Nyb2xsVG9PZmZzZXQob2Zm
c2V0KTsKKworICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUo
KTsKKyAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKKworICAgIGlmIChjdXJy
ZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25O
YXRpdmVBbmltYXRpb24pCisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9u
cygpOworCisgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBzZXRTY3JvbGxCZWhhdmlvclN0YXR1
cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5OYXRpdmVBbmltYXRpb24pOworICAgIGhhbmRsZWQg
PSByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9m
ZnNldCksIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNs
YW1waW5nKTsKKyNlbmRpZgorICAgIGlmICghaGFuZGxlZCAmJiBvZmZzZXQgIT0gdGhpcy0+c2Ny
b2xsT2Zmc2V0KCkpCisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuc2Nyb2xsVG9PZmZzZXQob2Zm
c2V0KTsKKworICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CiB9
CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggZmRkZGYyZjliZWI3ZTBiMjhm
MDcyY2IxMjFkMWVlMTE3YmYwMDk2OS4uMjU1ZWVlNDEzZmY3ZDlmMGIyMTE1MDNkYjY2MWFkYjg2
M2JjYmRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC02
Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNj
cm9sbEJlaGF2aW9yU3RhdHVzIHN0YXR1cykgeyBtX2N1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1
cyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdGF0dXMpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBt
dWx0aXBsaWVyID0gMSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xh
bXBpbmc6OkNsYW1wZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRX
aXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkKTsKICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJP
cmllbnRhdGlvbiwgZmxvYXQgb2Zmc2V0KTsKIApAQCAtNDA4LDcgKzQwOCw3IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgbV9zY3JvbGxPcmlnaW5DaGFuZ2VkIDogMTsKICAgICB1bnNpZ25lZCBt
X2N1cnJlbnRTY3JvbGxUeXBlIDogMTsgLy8gU2Nyb2xsVHlwZQogICAgIHVuc2lnbmVkIG1fc2Ny
b2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUgOiAxOwotICAgIHVuc2lnbmVkIG1fY3VycmVudFNj
cm9sbEJlaGF2aW9yU3RhdHVzIDogMTsKKyAgICB1bnNpZ25lZCBtX2N1cnJlbnRTY3JvbGxCZWhh
dmlvclN0YXR1cyA6IDI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBhOTU0ODU0ODdkNWI3Y2YyZTI3YzE4
MGE4ZDgxOTVmZDU4MGRiNzU2Li5kMzcwMjdiOTBkYTNjMGNkZTQ2YjRkZjkyYWY1MmM5YmIzNjRi
MTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI1OTMs
MTAgKzI1OTMsMTIgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9ZUG9zaXRpb24oaW50IHks
IFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcKIAogdm9pZCBSZW5kZXJMYXll
cjo6c2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9s
bFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wgYW5pbWF0ZWQp
CiB7CisgICAgU2Nyb2xsT2Zmc2V0IHNjcm9sbE9mZnNldCA9IHNjcm9sbE9mZnNldEZyb21Qb3Np
dGlvbihwb3NpdGlvbik7CisgICAgU2Nyb2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBj
bGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNj
cm9sbE9mZnNldCkgOiBzY3JvbGxPZmZzZXQ7CiAgICAgaWYgKGFuaW1hdGVkKQotICAgICAgICBz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0
aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhB
bmltYXRpb24oY2xhbXBlZFNjcm9sbE9mZnNldCwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOwogICAg
IGVsc2UKLSAgICAgICAgc2Nyb2xsVG9PZmZzZXQoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBv
c2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgICAgICBzY3JvbGxUb09mZnNldChj
bGFtcGVkU2Nyb2xsT2Zmc2V0LCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CiB9CiAKIFNjcm9sbE9m
ZnNldCBSZW5kZXJMYXllcjo6Y2xhbXBTY3JvbGxPZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiBz
Y3JvbGxPZmZzZXQpIGNvbnN0CkBAIC0yNjE1LDMzICsyNjE3LDIwIEBAIGJvb2wgUmVuZGVyTGF5
ZXI6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9z
aXRpb24sIFNjCiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KGNvbnN0IFNjcm9s
bE9mZnNldCYgc2Nyb2xsT2Zmc2V0LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1w
aW5nIGNsYW1waW5nKQogewotICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9
PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pCi0gICAgICAgIHNj
cm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwotCiAgICAgU2Nyb2xsT2Zmc2V0IGNs
YW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/
IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCkgOiBzY3JvbGxPZmZzZXQ7Ci0gICAgaWYg
KGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisgICAgYXV0byBz
Y3JvbGxCZWhhdmlvclN0YXR1cyA9IGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpOworICAg
IGlmIChjbGFtcGVkU2Nyb2xsT2Zmc2V0ID09IHRoaXMtPnNjcm9sbE9mZnNldCgpICYmIHNjcm9s
bEJlaGF2aW9yU3RhdHVzID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbikK
ICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKHNjcm9sbEJlaGF2aW9yU3RhdHVzID09IFNjcm9s
bEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5p
bWF0b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CisKICAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlw
ZSA9IGN1cnJlbnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xs
VHlwZSk7CiAKKyAgICBzZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1
czo6Tm90SW5BbmltYXRpb24pOwogICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
KHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwgc2Nyb2xsVHlw
ZSwgY2xhbXBpbmcpKQogICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY2xh
bXBlZFNjcm9sbE9mZnNldCwgY2xhbXBpbmcpOwotICAgIHNldFNjcm9sbEJlaGF2aW9yU3RhdHVz
KFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7Ci0KLSAgICBzZXRDdXJyZW50
U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOwotfQotCi12b2lkIFJlbmRlckxheWVyOjpz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNj
cm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCi17Ci0gICAgYXV0
byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOwotICAgIHNldEN1cnJl
bnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwotCi0gICAgU2Nyb2xsT2Zmc2V0IG5ld1Njcm9sbE9m
ZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxP
ZmZzZXQob2Zmc2V0KSA6IG9mZnNldDsKLSAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3Rh
dHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQotICAg
ICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKLSAgICBpZiAobmV3U2Ny
b2xsT2Zmc2V0ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQotICAgICAgICBTY3JvbGxhYmxlQXJl
YTo6c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKG5ld1Njcm9sbE9mZnNldCk7CiAKICAgICBz
ZXRDdXJyZW50U2Nyb2xsVHlwZShwcmV2aW91c1Njcm9sbFR5cGUpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBkZmIyNDBjMjVhNjZkYzdiNzE0OGY3YjIwYjI2
ZGQzZDMzYWYwOTk2Li4yMjQ2NTcyNzMxMmIwMWQ4ZjEzYjY5Y2YxNzRjMGZiNjFiODVkMWVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDQ0LDcgKzQ0NCw2IEBA
IHB1YmxpYzoKICAgICBib29sIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShjb25zdCBTY3Jv
bGxQb3NpdGlvbiYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxDbGFtcGlu
ZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSBvdmVycmlkZTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiwgU2Nyb2xsVHlwZSA9
IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGlu
Zzo6Q2xhbXBlZCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhB
bmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlBy
b2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAK
ICAgICB2b2lkIHNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBib29sIGFuaW1hdGVkID0gZmFsc2UpOwog
ICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1w
aW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAK
aW5kZXggYmRiYjVlYjA3NGMzOGY1ZDBiZWY0NjQ2M2JhYzc0NGI0OGE3YzVkOC4uYThhMDkxOTgz
NWE0Y2JmMWE2ZTE4NzRiZjU2MTYyYTgwZWY4YTYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNh
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcApAQCAtNDUwLDYgKzQ1MCw5IEBA
IHZvaWQgQXJndW1lbnRDb2RlcjxSZXF1ZXN0ZWRTY3JvbGxEYXRhPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFJlcXVlc3RlCiAgICAgZW5jb2RlciA8PCBzY3JvbGxEYXRhLnNjcm9s
bFBvc2l0aW9uOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShzY3JvbGxEYXRhLnNjcm9sbFR5cGUp
OwogICAgIGVuY29kZXIuZW5jb2RlRW51bShzY3JvbGxEYXRhLmNsYW1waW5nKTsKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgIGVuY29kZXIuZW5jb2RlRW51bShzY3JvbGxEYXRhLmFuaW1h
dGVkKTsKKyNlbmRpZgogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8UmVxdWVzdGVkU2Nyb2xsRGF0
YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZXF1ZXN0ZWRTY3JvbGxEYXRhJiBzY3JvbGxE
YXRhKQpAQCAtNDYzLDYgKzQ2NiwxMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVxdWVzdGVkU2Ny
b2xsRGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZXF1ZXN0ZWRTY3JvbAogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVFbnVtKHNjcm9sbERhdGEuY2xhbXBpbmcpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVFbnVtKHNjcm9sbERhdGEuYW5pbWF0ZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02MjcsNiArNjM1LDkgQEAgc3RhdGlj
IHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlJiBub2RlLCBib29sIGMKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Ny
b2xsLXBvc2l0aW9uIiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxQb3NpdGlvbik7CiAgICAg
ICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1wb3NpdGlvbi1pcy1wcm9ncmFt
YXRpYyIsIHJlcXVlc3RlZFNjcm9sbERhdGEuc2Nyb2xsVHlwZSk7CiAgICAgICAgIHRzLmR1bXBQ
cm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1wb3NpdGlvbi1jbGFtcGluZyIsIHJlcXVlc3RlZFNj
cm9sbERhdGEuY2xhbXBpbmcpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIHRz
LmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1wb3NpdGlvbi13aXRoLWFuaW1hdGlvbiIs
IHJlcXVlc3RlZFNjcm9sbERhdGEuYW5pbWF0ZWQpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYg
KCFjaGFuZ2VkUHJvcGVydGllc09ubHkgfHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaAppbmRleCA0MzY5ZDI3MTRh
MjEwOTU1N2Q3MTQ1MmRiYTM2NmJlNDQ0NmNiNDQxLi45YjQ4ZDUzZjcxYTAzZjEyOTMwOWEwNDhi
OTYxZjQ5YzZhODhjODZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld0lPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3SU9TLmgKQEAgLTYwLDcgKzYwLDcgQEAKIAogLSAoUmVmUHRyPFdlYktpdDo6Vmll
d1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdDsKIAotLSAodm9pZClfc2Nyb2xsVG9Db250ZW50
U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xs
T3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW47CistICh2b2lkKV9zY3JvbGxU
b0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlv
biBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDoo
Qk9PTClhbmltYXRlZDsKIC0gKEJPT0wpX3Njcm9sbFRvUmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0
KXRhcmdldFJlY3Qgb3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KW9yaWdpbiBtaW5pbXVtU2Ny
b2xsRGlzdGFuY2U6KGZsb2F0KW1pbmltdW1TY3JvbGxEaXN0YW5jZTsKIAogLSAoZG91YmxlKV9p
bml0aWFsU2NhbGVGYWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3SU9TLm1tCmluZGV4IDhjOTkyOGExZWUyZTI5MGJlOWZhOTE1ZWMzNTc1ZmE5Y2My
ZTY2MTAuLjkxNjIxYmYyNGQyOGI5ZDVlNWJlYmE5YTMyZmRmNWRhYTczNTU3OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0zNDUs
NiArMzQ1LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwb2ludHNFcXVhbEluRGV2aWNlUGl4ZWxz
KENHUG9pbnQgYSwgQ0dQb2ludCBiLCBmbG9hdCBkZXZpY2VTCiAgICAgICAgICYmIGZhYnMoYS55
ICogZGV2aWNlU2NhbGVGYWN0b3IgLSBiLnkgKiBkZXZpY2VTY2FsZUZhY3RvcikgPCBzdGQ6Om51
bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wg
cG9pbnRzRXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbChDR1BvaW50IGEsIENHUG9pbnQgYiwgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAgcmV0dXJuIENHUm91bmQoYS54ICogZGV2aWNl
U2NhbGVGYWN0b3IpID09IENHUm91bmQoYi54ICogZGV2aWNlU2NhbGVGYWN0b3IpCisgICAgICAg
ICYmIENHUm91bmQoYS55ICogZGV2aWNlU2NhbGVGYWN0b3IpID09IENHUm91bmQoYi55ICogZGV2
aWNlU2NhbGVGYWN0b3IpOworfQorCiBzdGF0aWMgQ0dTaXplIHJvdW5kU2Nyb2xsVmlld0NvbnRl
bnRTaXplKGNvbnN0IFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBDR1NpemUgY29udGVudFNp
emUpCiB7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBwYWdlLmRldmljZVNjYWxlRmFj
dG9yKCk7CkBAIC0xMDk2LDkgKzExMDIsMTAgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQg
Y29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKICAg
ICByZXR1cm4gY29udGVudE9mZnNldC5jb25zdHJhaW5lZEJldHdlZW4oV2ViQ29yZTo6RmxvYXRQ
b2ludCgpLCBXZWJDb3JlOjpGbG9hdFBvaW50KG1heGltdW1Db250ZW50T2Zmc2V0KSk7CiB9CiAK
LS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBv
aW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xs
T3JpZ2luCistICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6
RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50
KXNjcm9sbE9yaWdpbiBhbmltYXRlZDooQk9PTClhbmltYXRlZAogewotICAgIGlmIChfY29tbWl0
RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uIHx8IF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlICE9
IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpCisgICAgLy8g
QW5pbWF0ZWQgc2Nyb2xsaW5nIHNob3VsZG4ndCBiZSBza2lwcGVkLgorICAgIGlmICghYW5pbWF0
ZWQgJiYgKF9jb21taXREaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24gfHwgX2R5bmFtaWNWaWV3cG9y
dFVwZGF0ZU1vZGUgIT0gV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNp
emluZykpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVu
dE9mZnNldCA9IFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRp
b24oc2Nyb2xsUG9zaXRpb24sIHRvRmxvYXRTaXplKHNjcm9sbE9yaWdpbikpOwpAQCAtMTExMiwx
MyArMTExOSwyMiBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50
T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogCiAgICAgW19zY3JvbGxWaWV3
IF9zdG9wU2Nyb2xsaW5nQW5kWm9vbWluZ0FuaW1hdGlvbnNdOwogCi0gICAgaWYgKCFDR1BvaW50
RXF1YWxUb1BvaW50KGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcywgW19zY3Jv
bGxWaWV3IGNvbnRlbnRPZmZzZXRdKSkKLSAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRP
ZmZzZXQ6Y29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzXTsKKyAgICAvLyBJdCdz
IHBvc3NpYmxlIHRoYXQgdGhleSBhcmUgbm90IGVxdWFsLCBidXQgaW4gdGhlIHNhbWUgZGV2aWNl
IHBpeGVsLCBzbyBfc2Nyb2xsVmlldyB3b24ndCBjaGFuZ2UuCisgICAgLy8gV2UgbmVlZCB0byBj
YWxjdWxhdGUgdGhlIHJvdW5kIHRvIGRldmljZSBwaXhlbCBoZXJlLgorICAgIGlmICghcG9pbnRz
RXF1YWxJblJvdW5kVG9EZXZpY2VQaXhlbChjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXMsIFtfc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XSwgX3BhZ2UtPmRldmljZVNjYWxlRmFj
dG9yKCkpKQorICAgICAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zm
c2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMgYW5pbWF0ZWQ6YW5pbWF0ZWRdOwogICAgIGVsc2Ug
ewogICAgICAgICAvLyBJZiB3ZSBoYXZlbid0IGNoYW5nZWQgYW55dGhpbmcsIHRoZXJlIHdvdWxk
IG5vdCBiZSBhbnkgVmlzaWJsZUNvbnRlbnRSZWN0IHVwZGF0ZSBzZW50IHRvIHRoZSBjb250ZW50
LgogICAgICAgICAvLyBUaGUgV2ViUHJvY2VzcyB3b3VsZCBrZWVwIHRoZSBpbnZhbGlkIGNvbnRl
bnRPZmZzZXQgYXMgaXRzIHNjcm9sbCBwb3NpdGlvbi4KICAgICAgICAgLy8gVG8gc3luY2hyb25p
emUgdGhlIFdlYlByb2Nlc3Mgd2l0aCB3aGF0IGlzIG9uIHNjcmVlbiwgd2Ugc2VuZCB0aGUgVmlz
aWJsZUNvbnRlbnRSZWN0IGFnYWluLgogICAgICAgICBfcGFnZS0+cmVzZW5kTGFzdFZpc2libGVD
b250ZW50UmVjdHMoKTsKKworICAgICAgICAvLyBJZiBfc2Nyb2xsVmlldyB3b24ndCBjaGFuZ2Us
IHdlIHN0aWxsIG5lZWQgdG8gdGVsbCB0aGUgV2ViIHByb2Nlc3MgdGhhdCB0aGUgYW5pbWF0aW9u
IHN0b3BwZWQuCisgICAgICAgIGlmIChhbmltYXRlZCkgeworICAgICAgICAgICAgV2ViS2l0OjpS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5zY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5KCk7CisgICAgICAgICAgICBpZiAoY29vcmRpbmF0b3IpCisg
ICAgICAgICAgICAgICAgY29vcmRpbmF0b3ItPnNjcm9sbGluZ1RyZWVSb290Tm9kZU5hdGl2ZVNj
cm9sbEFuaW1hdGlvblN0b3BwZWQoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtMTYzNCw2
ICsxNjUwLDEwIEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFpbkNvbnRlbnRP
ZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAtICh2b2lkKXNjcm9sbFZpZXdE
aWRFbmRTY3JvbGxpbmdBbmltYXRpb246KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKIHsKICAg
ICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xsaW5nXTsKKworICAgIFdlYktpdDo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eSogY29vcmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eSgpOworICAgIGlmIChjb29yZGluYXRvcikKKyAgICAgICAgY29vcmRpbmF0b3It
PnNjcm9sbGluZ1RyZWVSb290Tm9kZU5hdGl2ZVNjcm9sbEFuaW1hdGlvblN0b3BwZWQoKTsKIH0K
IAogLSAodm9pZClfc2Nyb2xsVmlld0RpZEludGVycnVwdERlY2VsZXJhdGluZzooVUlTY3JvbGxW
aWV3ICopc2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDIx
NzlhOWRmMzAyYzM2N2QzN2JkMTgzMGMwNmQ1NTJhYmJkMmRiNDEuLjk4OGI5NmFmMTk0YzI3YTMz
MmQ0MzM1OTAyNTRiZGRlZDFhZTkzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgKQEAgLTE4MSw2ICsxODEsOCBAQCBwdWJsaWM6CiAgICAgLy8gVGVsbCB0aGUgdmlldyB0byBz
Y3JvbGwgdG8gdGhlIGdpdmVuIHBvc2l0aW9uLCBhbmQgd2hldGhlciB0aGlzIHdhcyBhIHByb2dy
YW1tYXRpYyBzY3JvbGwuCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBzY3JvbGxPcmlnaW4pID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U2Nyb2xsV2l0
aEFuaW1hdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgeyB9CisKICAgICAvLyBSZXR1cm4g
dGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIChub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgYXMg
dGhlIFdlYkNvcmUgc2Nyb2xsIHBvc2l0aW9uLCBiZWNhdXNlIG9mIHNjYWxpbmcsIGluc2V0cyBl
dGMuKQogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24o
KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
bW0KaW5kZXggZmYzMTExMTg3ZGI4MGZjNTYwMjEzZjc3YzY4OTQxMTM1ZmQ4ZDliZi4uMGI4NjM3
NzllNWViOGY5YzhlYmNmNzI4YjRiNTU5NjYyOGI5ZTBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KQEAgLTIzOSw4ICsyMzksMTQgQEAgdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUoY29uc3Qg
UmVtb3RlTGF5ZXJUcmVlVHJhbnMKIAogICAgIC8vIEhhbmRsZSByZXF1ZXN0ZWQgc2Nyb2xsIHBv
c2l0aW9uIHVwZGF0ZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUgdHJhbnNhY3Rpb24gYWZ0ZXIg
ZGlkQ29tbWl0TGF5ZXJUcmVlKCkKICAgICAvLyBoYXMgdXBkYXRlZCB0aGUgdmlldyBzaXplIGJh
c2VkIG9uIHRoZSBjb250ZW50IHNpemUuCi0gICAgaWYgKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVx
dWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSkKLSAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVz
dFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBsYXll
clRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKSk7CisgICAgaWYgKHJlcXVlc3RlZFNjcm9s
bEluZm8ucmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSkgeworICAgICAgICBtX3dlYlBhZ2VQ
cm94eS5yZXF1ZXN0U2Nyb2xsKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24KKyAgICAgICAgICAgICwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCkK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICAgICAgLCByZXF1ZXN0ZWRTY3JvbGxJ
bmZvLnJlcXVlc3RXaXRoQW5pbWF0aW9uCisjZW5kaWYKKyAgICAgICAgICAgICk7CisgICAgfQog
I2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAKICAgICBpZiAobV9kZWJ1Z0luZGlj
YXRvckxheWVyVHJlZUhvc3QpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmNwcAppbmRleCA0YjFhMmRhOTAzZTZjYjI5YjBlYzBkZmFhYjg1NmZlZTlm
Zjc4Y2U3Li4wMjI5MDZjZWEzNTBiYTg0OTZmNGZiZGY0M2I0M2U2YThkZWFjN2YzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0yMDgs
NyArMjA4LDcgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpjdXJyZW50
U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjoKIH0KIAogLy8gVGhpcyBjb21lcyBm
cm9tIHRoZSBzY3JvbGxpbmcgdHJlZS4KLXZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVk
Tm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgY29uc3QgT3B0aW9u
YWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0
aW9uQWN0aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pCit2b2lkIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGlu
Z05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRp
b24sIGNvbnN0IE9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uLCBi
b29sIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uKQogewogICAgIC8vIFNjcm9sbCB1cGRh
dGVzIGZvciB0aGUgbWFpbiBmcmFtZSBhcmUgc2VudCB2aWEgV2ViUGFnZVByb3h5Ojp1cGRhdGVW
aXNpYmxlQ29udGVudFJlY3RzKCkKICAgICAvLyBzbyBkb24ndCBzZW5kIHRoZW0gaGVyZS4KQEAg
LTIyMiwyMSArMjIyLDM5IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlECiAgICAgbV93ZWJQYWdl
UHJveHkuc2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEaWRTY3JvbGwoKTsKICNlbmRpZgogCi0gICAg
aWYgKG1fc2Nyb2xsaW5nVHJlZS0+aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpKQorICAg
IC8vIElmIGFuIGFuaW1hdGVkIHNjcm9sbCBpcyBpbnRlcnJ1cHRlZCBieSBhbiBpbnN0YW50IHNj
cm9sbCwgdGhlIHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgaW5zdGFudCBzY3JvbGwgaW4gdGhlIFdl
YiBwcm9jZXNzCisgICAgLy8gbWlnaHQgYmUgb3ZlcnJpZGRlbiBieSB0aGUgYW5pbWF0ZWQgc2Ny
b2xsLiBTbyBzbnljIHRoZSBpbnN0YW50IHNjcm9sbCBwb3NpdGlvbiBoZXJlLCBtYWtlIHN1cmUg
dGhlIHNjcm9sbCBwb3NpdGlvbgorICAgIC8vIG9mIHRoZSBXZWIgcHJvY2VzcyBpcyBjb3JyZWN0
LgorICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPmlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwo
KSAmJiAhaW5zdGFudFNjcm9sbERpZFN0b3BBbmltYXRpb24pCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHNjcm9sbGVkTm9kZUlELCBuZXdTY3Jv
bGxQb3NpdGlvbiwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9PSBTY3JvbGxpbmdMYXll
clBvc2l0aW9uQWN0aW9uOjpTeW5jKSk7CiB9CiAKLXZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2Rl
SUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTY3Jv
bGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKQordm9pZCBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGlu
Z05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcsIGJvb2wgYW5pbWF0ZWQpCiB7
CiAgICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RTY3JvbGxpbmdOb2RlSUQoKSAmJiBtX3Jl
cXVlc3RlZFNjcm9sbEluZm8pIHsKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1
ZXN0c1Njcm9sbFBvc2l0aW9uVXBkYXRlID0gdHJ1ZTsKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3Jv
bGxJbmZvLT5yZXF1ZXN0SXNQcm9ncmFtbWF0aWNTY3JvbGwgPSBzY3JvbGxUeXBlID09IFNjcm9s
bFR5cGU6OlByb2dyYW1tYXRpYzsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBt
X3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RXaXRoQW5pbWF0aW9uID0gYW5pbWF0ZWQ7Cisj
ZW5kaWYKICAgICAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvLT5yZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbiA9IHNjcm9sbFBvc2l0aW9uOwogICAgIH0KIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVO
b2RlTmF0aXZlU2Nyb2xsQW5pbWF0aW9uU3RvcHBlZChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQg
c2Nyb2xsZWROb2RlSUQpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Ok5hdGl2ZVNjcm9sbEFuaW1hdGlvblN0b3BwZWRGb3JO
b2RlKHNjcm9sbGVkTm9kZUlEKSk7Cit9CisKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2Nyb2xsaW5nVHJlZVJvb3ROb2RlTmF0aXZlU2Nyb2xsQW5pbWF0aW9uU3RvcHBl
ZCgpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6Ok5hdGl2ZVNjcm9sbEFuaW1hdGlvblN0b3BwZWRGb3JOb2RlKHJvb3RTY3Jv
bGxpbmdOb2RlSUQoKSkpOworfQorI2VuZGlmCisKIFN0cmluZyBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkgY29uc3QKIHsKICAgICBpZiAobV9z
Y3JvbGxpbmdUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmgKaW5kZXggYjc0MDc2MTg3MjA0OTFmYzU1OTI3M2IwYzQ5MjJmMDZhNjZjZTYwNy4uYTE5
NWZiZTQ2MTVkNGJjZDU1NDA0NmI5OGNmMGQxOTlhNTYyZGIyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01NSw5ICs1NSwxNCBAQCBwdWJs
aWM6CiAgICAgZXhwbGljaXQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eShXZWJQYWdl
UHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVO
YXRpdmVTY3JvbGxBbmltYXRpb25TdG9wcGVkKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7Cisg
ICAgdm9pZCBzY3JvbGxpbmdUcmVlUm9vdE5vZGVOYXRpdmVTY3JvbGxBbmltYXRpb25TdG9wcGVk
KCk7CisjZW5kaWYKKwogICAgIC8vIEluZm9ybSB0aGUgd2ViIHByb2Nlc3MgdGhhdCB0aGUgc2Ny
b2xsIHBvc2l0aW9uIGNoYW5nZWQgKGNhbGxlZCBmcm9tIHRoZSBzY3JvbGxpbmcgdHJlZSkKLSAg
ICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJ
RCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IE9w
dGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgV2ViQ29y
ZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7Ci0gICAgdm9pZCBzY3JvbGxpbmdUcmVl
Tm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFdlYkNvcmU6OlNjcm9sbFR5cGUsIFdlYkNv
cmU6OlNjcm9sbENsYW1waW5nKTsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xs
KFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3
U2Nyb2xsUG9zaXRpb24sIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+JiBsYXlv
dXRWaWV3cG9ydE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiwg
Ym9vbCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbiA9IGZhbHNlKTsKKyAgICB2b2lkIHNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6U2Nyb2xs
VHlwZSwgV2ViQ29yZTo6U2Nyb2xsQ2xhbXBpbmcsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSk7CiAK
ICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25z
dCBBdG9tU3RyaW5nJiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKIApAQCAt
ODAsNiArODUsOSBAQCBwdWJsaWM6CiAgICAgc3RydWN0IFJlcXVlc3RlZFNjcm9sbEluZm8gewog
ICAgICAgICBib29sIHJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgeyB9OwogICAgICAgICBi
b29sIHJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCB7IH07CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICAgICAgYm9vbCByZXF1ZXN0V2l0aEFuaW1hdGlvbiB7IH07CisjZW5kaWYKICAg
ICAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICB9
OwogICAgIHZvaWQgY29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24mLCBSZXF1ZXN0ZWRTY3JvbGxJbmZvJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMDFhNTdkNGI2ZDVjZGRlZjY1YmZiMTIyZDNjMmU5
NjBkMjYwNDExMy4uMTQ5OGE1M2JkZTA5ODJlZWFkZjAxNDkxM2NlZjlhOTM0YzY0MjljYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcApAQCAtMTA0LDEyICsxMDQsMTYgQEAgdm9pZCBS
ZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZSYKICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZT4obm9kZSkpCiAgICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2luID0gZG93bmNhc3Q8U2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4obm9kZSkubGF5b3V0Vmlld3BvcnQoKS5sb2Nh
dGlvbigpOwogCi0gICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVO
b2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUuY3VycmVudFNjcm9sbFBv
c2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uKTsKKyAgICBib29sIGluc3RhbnRTY3JvbGxEaWRTdG9wQW5pbWF0aW9uID0gZmFsc2U7Cisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlv
biA9IG5vZGUubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpICYmICFub2RlLnJlcXVl
c3RBbmltYXRlZFNjcm9sbCgpOworI2VuZGlmCisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIG5v
ZGUuY3VycmVudFNjcm9sbFBvc2l0aW9uKCksIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uLCBpbnN0YW50U2Nyb2xsRGlkU3RvcEFuaW1hdGlvbik7CiB9
CiAKLXZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3Np
dGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKK3Zv
aWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
U2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywgYm9vbCBhbmlt
YXRlZCkKIHsKLSAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5v
ZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxUeXBlLCBjbGFt
cGluZyk7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2Rl
UmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsVHlwZSwgY2xhbXBp
bmcsIGFuaW1hdGVkKTsKIH0KIAogUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxp
bmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlw
ZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKQEAgLTE0Myw2ICsxNDcsMTMgQEAgUmVmPFNjcm9s
bGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9k
ZShTY3JvbGxpbmdOb2QKICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRl
KCp0aGlzLCBub2RlSUQpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgUmVt
b3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVOYXRpdmVTY3JvbGxBbmltYXRpb25T
dG9wcGVkKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQpCit7CisgICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlTmF0aXZlU2Nyb2xsQW5pbWF0aW9u
U3RvcHBlZChub2RlSUQpOworfQorI2VuZGlmCisKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6
Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwg
dW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpCiB7CiAgICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKG5vZGVJ
RCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXgg
Y2MxZjk2MGM0MTFiOGIxZDE0ODRhM2M2MjE5YWY3ZGE3MWNkYmQwYS4uMDExYzUzYTk1NjEzMjA1
NGE1ZTM4ODBjZDc3Y2IxZTA0YzMwMjRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBA
IC01Miw3ICs1MiwxMiBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eSYgc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsgfQogCiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9k
ZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYsIFdlYkNvcmU6
OlNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2Rl
UmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6U2Nyb2xsVHlwZSwgV2ViQ29yZTo6
U2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOworCisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJl
cXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFdlYkNvcmU6OlNjcm9sbFR5cGUsIFdlYkNvcmU6OlNj
cm9sbENsYW1waW5nLCBib29sIGFuaW1hdGVkID0gZmFsc2UpIG92ZXJyaWRlOworCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlTmF0aXZlU2Nyb2xs
QW5pbWF0aW9uU3RvcHBlZChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworI2Vu
ZGlmCiAKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwp
IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCmluZGV4IGU2MzdkNjE1MzI1ZDM4MGNlOTJkMDdhMmIx
MjE5MTNmZjE4MWRkMmUuLjAwYjRkYmNkMzcwZTE4Y2RmZDM5OWVlNzZiMTNmYjA1NDNiMzMxOTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9s
bERpZEVuZCgpIGNvbnN0OwogICAgIHZvaWQgc2Nyb2xsVmlld1dpbGxTdGFydFBhbkdlc3R1cmUo
KSBjb25zdDsKICAgICB2b2lkIHNjcm9sbFZpZXdEaWRTY3JvbGwoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsT2Zmc2V0LCBib29sIGluVXNlckludGVyYWN0aW9uKTsKKyAgICB2b2lk
IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKTsKIAogICAgIHZvaWQgY3VycmVu
dFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQg
dmVydGljYWwpIGNvbnN0OwogICAgIENBTGF5ZXIgKnNjcm9sbExheWVyKCkgY29uc3QgeyByZXR1
cm4gbV9zY3JvbGxMYXllci5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDhjNjQ0MmRlOTY3
NTBiMzkwZGIxMDE2NDM2NjE1YWE2ODA5NjNkNGMuLjM2N2E3YThiYjY0ODZkNWZjOTZjNjRmNWVh
NTYxMTA5NGViZThhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAgLTE1Miw2ICsxNTIsMTEgQEAKICAg
ICB9CiB9CiAKKy0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZFNjcm9sbGluZ0FuaW1hdGlvbjooVUlT
Y3JvbGxWaWV3ICopc2Nyb2xsVmlldworeworICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRl
LT5zY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uKCk7Cit9CisKICNpZiBFTkFCTEUo
UE9JTlRFUl9FVkVOVFMpCiAtIChDR1BvaW50KV9zY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilz
Y3JvbGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihDR1BvaW50KW9mZnNldCB0cmFuc2xh
dGlvbjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFydFBvaW50OihDR1BvaW50KXN0YXJ0IGxvY2F0
aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGhvcml6b250YWxWZWxvY2l0eTooaW5v
dXQgZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopdnYKIHsKQEAg
LTMwMCwxNSArMzA1LDM2IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAKICAgICBpZiAoc2Ny
b2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgewogICAgICAgICBjb25zdCBhdXRvJiBy
ZXF1ZXN0ZWRTY3JvbGxEYXRhID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbERh
dGEoKTsKLSAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbFRvKHJlcXVlc3RlZFNjcm9sbERh
dGEuc2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbERhdGEuc2Nyb2xsVHlwZSwgcmVxdWVz
dGVkU2Nyb2xsRGF0YS5jbGFtcGluZyk7CisgICAgICAgIHNjcm9sbGluZ05vZGUoKS5zZXRSZXF1
ZXN0QW5pbWF0ZWRTY3JvbGwocmVxdWVzdGVkU2Nyb2xsRGF0YS5hbmltYXRlZCk7CisgICAgICAg
IC8vIElmIHRoZSBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIFdlYiBwcm9jZXNzIGlzIG5vdCBlcXVh
bCB0byBVSSdzLCB0aGVyZSdzIGEgcG9zc2liaWxpdHkgdGhhdCB0aGUgc2Nyb2xsIG9mZnNldAor
ICAgICAgICAvLyBmcm9tIHRoZSBXZWIgcHJvY2VzcyBoYXMgYmVlbiBvdmVycmlkZGVuIGJ5IHRo
ZSBVSSBwcm9jZXNzIGFmdGVyIHNlbmRpbmcgdGhpcyByZXF1ZXN0LiBJbiB0aGlzIGNhc2UsCisg
ICAgICAgIC8vIHRoZSBzY3JvbGwgcG9zaXRpb25zIHNob3VsZCBiZSBzeW5jaHJvbml6ZWQgYW55
IHdheS4KKyAgICAgICAgYm9vbCBzaG91bGRTeW5jU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxpbmdT
dGF0ZU5vZGUuc2Nyb2xsUG9zaXRpb24oKSAhPSBzY3JvbGxpbmdOb2RlKCkuY3VycmVudFNjcm9s
bFBvc2l0aW9uKCk7CisgICAgICAgIHNjcm9sbGluZ05vZGUoKS5zY3JvbGxUbyhyZXF1ZXN0ZWRT
Y3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9uLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFR5cGUs
IHJlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcsIHNob3VsZFN5bmNTY3JvbGxQb3NpdGlvbik7
CiAgICAgfQogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6
OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwotICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxpbmdOb2Rl
KCkuY3VycmVudFNjcm9sbE9mZnNldCgpXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CisgICAgYm9vbCBhbmltYXRpb25JblByb2dyZXNzID0gc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbEFu
aW1hdGlvbkluUHJvZ3Jlc3MoKTsKKyAgICBib29sIG5lZWRUb1N0b3BBbmltYXRpb24gPSBzY3Jv
bGxpbmdOb2RlKCkubmVlZHNTdG9wQ3VycmVudFNjcm9sbEFuaW1hdGlvbigpOworICAgIGlmIChu
ZWVkVG9TdG9wQW5pbWF0aW9uICYmIGFuaW1hdGlvbkluUHJvZ3Jlc3MpIHsKKyAgICAgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVu
dE9mZnNldDpzY3JvbGxWaWV3KCkuY29udGVudE9mZnNldCBhbmltYXRlZDpOT107CisgICAgICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CisKKyAgICBpZiAoc2Nyb2xsaW5nTm9k
ZSgpLnJlcXVlc3RBbmltYXRlZFNjcm9sbCgpKSB7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6c2Nyb2xs
aW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKSBhbmltYXRlZDpZRVNdOworICAgICAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisKKyAgICAgICAgc2Nyb2xsaW5nTm9kZSgpLnNldFNj
cm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3ModHJ1ZSk7CisgICAgfSBlbHNlIGlmICghYW5pbWF0aW9u
SW5Qcm9ncmVzcyB8fCBuZWVkVG9TdG9wQW5pbWF0aW9uKSB7CisgICAgICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUworICAgICAgICBbc2Nyb2xsVmlldygpIHNldENvbnRlbnRPZmZzZXQ6
c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRTY3JvbGxPZmZzZXQoKV07CisgICAgICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKKyAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsV2lsbFN0YXJ0KCkgY29uc3QKQEAgLTMzNSw2ICszNjEs
MTcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxW
aWV3RGlkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQKICAgICBzY3JvbGxpbmdOb2RlKCkud2FzU2Ny
b2xsZWRCeURlbGVnYXRlZFNjcm9sbGluZyhzY3JvbGxQb3NpdGlvbiwgeyB9LCBpblVzZXJJbnRl
cmFjdGlvbiA/IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMgOiBTY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb24oKQor
eworICAgIGF1dG8mIG5vZGUgPSBzY3JvbGxpbmdOb2RlKCk7CisgICAgLy8gVE9ETzogSWYgYW4g
YW5pbWF0ZWQgc2Nyb2xsIGlzIGludGVycnVwdGVkIGJ5IGFub3RoZXIgYW5pbWF0ZWQgc2Nyb2xs
LCB3aGVuIHRoZSBmaXJzdCBvbmUgaXMgZW5kLAorICAgIC8vIGl0IHNob3VsZCBzZW5kIHNjcm9s
bCBlbmQgbWVzc2FnZSB0byB0aGUgV2ViIHByb2Nlc3MuCisgICAgaWYgKCEobm9kZS5yZXF1ZXN0
QW5pbWF0ZWRTY3JvbGwoKSAmJiBub2RlLnNjcm9sbEFuaW1hdGlvbkluUHJvZ3Jlc3MoKSkpIHsK
KyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlTmF0aXZlU2Nyb2xsQW5p
bWF0aW9uU3RvcHBlZChub2RlLnNjcm9sbGluZ05vZGVJRCgpKTsKKyAgICAgICAgbm9kZS5zZXRT
Y3JvbGxBbmltYXRpb25JblByb2dyZXNzKGZhbHNlKTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y3VycmVudFNuYXBQb2ludEluZGljZXNE
aWRDaGFuZ2UodW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGNvbnN0CiB7
CiAgICAgaWYgKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNWYwMzg0NDBmODZkY2IyNzIxYmY5MmQxMThiY2FjNThk
ZGFjOTU5Ni4uYTRiNjY2ZDFlZDFhMjU1OTNhYzA5Y2ViN2FkMDMxNTVlMjZkNmFjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xODA0LDkgKzE4MDQsMTIg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJiBy
ZWdpb24pCiAgICAgcGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFdlYlBhZ2VQ
cm94eTo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29u
c3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgYm9vbCB3aXRoQW5pbWF0aW9uKQogewot
ICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0U2Nyb2xsKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmln
aW4pOworICAgIGlmICh3aXRoQW5pbWF0aW9uKQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVz
dFNjcm9sbFdpdGhBbmltYXRpb24oc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAg
ZWxzZQorICAgICAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwg
c2Nyb2xsT3JpZ2luKTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBXZWJQYWdlUHJveHk6OnZp
ZXdTY3JvbGxQb3NpdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGZjNGYyMGI0NTcxNDUxN2M0YjVmMDI3NzI1ODllZmRmMzcyOWIwYzUuLjkxOTdk
NDE1MDQ4NWJmYzcxNjYwNTEyMzBmZjE5ODMzNDVkY2Y1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02MzIsNyArNjMyLDcgQEAgcHVibGljOgogICAgIFBhZ2VD
bGllbnQmIHBhZ2VDbGllbnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxh
eShjb25zdCBXZWJDb3JlOjpSZWdpb24mKTsKLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBzY3JvbGxPcmlnaW4pOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNj
cm9sbE9yaWdpbiwgYm9vbCB3aXRoQW5pbWF0aW9uID0gZmFsc2UpOwogICAgIAogICAgIFdlYkNv
cmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggODRiYmNmODBm
ZDExYWViZTcwY2E3OTU1OWE2MGFmNzM1ZTU5MTRlZi4uMmQxZGZmYmM4OWVmN2Q3NWUxMjlhYzE0
NzgzMGIyYzE1ZDVhODA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9j
ZXNzUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3Qg
V2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGxXaXRo
QW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKSBvdmVycmlkZTsKICAgICBXZWJDb3Jl
OjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6
OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2
ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tCmluZGV4IDYzMTA3ODYxZDM0NWNhOWYyNDc2ZTY1ZWE3OTdjY2M0N2I0Yzc1
MTguLmMzYWQ5YzY0Y2YyM2Q3NjA4OGJkZTg3YWM4OWY3MTEzMGUwMzg4MDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTEwNCw3
ICsxMDQsMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25z
dCBSZWdpb24mKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQog
ewotICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBv
c2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW5dOworICAgIFttX3dlYlZpZXcgX3Njcm9s
bFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3Jv
bGxPcmlnaW4gYW5pbWF0ZWQ6Tk9dOworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0
U2Nyb2xsV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29u
c3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKK3sKKyAgICBbbV93ZWJWaWV3IF9zY3JvbGxUb0Nv
bnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3Jp
Z2luIGFuaW1hdGVkOllFU107CiB9CiAKIFdlYkNvcmU6OkZsb2F0UG9pbnQgUGFnZUNsaWVudElt
cGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDhlNjQ5MzU1NDU4M2FiZjM5NWQ4OTFhY2Fh
YmYwMTVmMTc2NDQ1OTcuLjc4NjYyOWIyMmY5OWRhYWE4NjBkMDI3MGZlOWIzYzNkMDhmMjA2YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ci5oCkBAIC03Myw2ICs3MywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25D
aGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHN5bmNMYXllclBvc2l0aW9uKTsKICAgICB2
b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzQ2hhbmdlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCk7CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgbmF0aXZlU2Nyb2xsQW5pbWF0aW9uU3Rv
cHBlZEZvck5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKKyNlbmRpZgorCiAgICAgV2Vi
UGFnZSogbV93ZWJQYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4IDJjMDk4YTEw
OTcwMjM2N2MzODMzNzFlODhlNWE3NjFkNDVlMTk5YWQuLjU3NDdmNWJjMWNhM2ZjYTdlOWIwOTk5
YTY3ZWVkOTk1NjRlZjE2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDkg
QEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAgICBTY3JvbGxQ
b3NpdGlvbkNoYW5nZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6RmxvYXRQb2lu
dCBzY3JvbGxQb3NpdGlvbiwgYm9vbCBzeW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgQ3VycmVudFNu
YXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZSh1aW50NjRfdCBub2RlSUQsIHVuc2lnbmVkIGhv
cml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIE5hdGl2ZVNjcm9sbEFuaW1hdGlvblN0b3BwZWRGb3JOb2RlKHVpbnQ2NF90IG5vZGVJRCk7
CisjZW5kaWYKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KaW5kZXgg
ODM1NDQxZDMxOWI5NWY0NjY4Nzc1ODUzODkwOTJjOWVlYTI5Mzg2MS4uMzI5MjhjNmNkOGVhNjVm
OTAzZGVhNDllYjdjNmJhNDlmM2VjNzA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQpAQCAtMTA0LDYgKzEwNCwxMyBAQCB2b2lk
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0NoYW5n
ZWRGb3JOb2RlKFNjcm9sbGluZwogICAgIHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzKG5vZGVJ
RCwgaG9yaXpvbnRhbCwgdmVydGljYWwpOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
K3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Om5hdGl2ZVNjcm9sbEFuaW1hdGlvblN0
b3BwZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQpCit7CisgICAgbmF0
aXZlU2Nyb2xsQW5pbWF0aW9uU3RvcHBlZChub2RlSUQpOworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBkNTEyNjFiNzAyMjdmYjUzMzZiMzgyM2ZjMTFmMzc2MzZjNTA0ZDU1Li4zMzdjZGZiOThiZjUz
Yjk0MWM1YjNhYTJkMTEwNjg1NGYzODhhODQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTkt
MTItMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcmVsaWVzIG9uIG5hdGl2ZSBzY3JvbGwgaW50
ZXJmYWNlcyBmb3IgaU9TIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBCYXNlZCBvbiB0aGUgcGF0Y2ggYnkgRnLDqWTDqXJpYyBXYW5nLgor
CisgICAgICAgIFRoZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbiBvbiBpT1MgcGxhdGZvcm0gaXMg
YmFzZWQgb24gQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQuCisgICAgICAgIEFzeW5jIHNj
cm9sbCBpcyBub3QgZnVsbHkgc3VwcG9ydGVkIG9uIG5vbi1pT1MgcGxhdGZvcm0uIFRoZXJlZm9y
ZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzY3JvbGwtYmVoYXZpb3IgdGVzdCB0byBm
YXN0L3Njcm9sbGluZy9pb3MvLCB0aGVuIGVuYWJsZSBBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlZC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJl
aGF2aW9yLmpzOiBBZGRlZC4KKyAgICAgICAgKG9ic2VydmVTY3JvbGxpbmcpOgorICAgICAgICAo
d2FpdEZvclNjcm9sbEVuZCk6CisgICAgICAgIChzY3JvbGxOb2RlKToKKyAgICAgICAgKHNjcm9s
bFdpbmRvdyk6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1k
ZWZhdWx0LWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3Jv
bGwtYmVoYXZpb3ItZGVmYXVsdC1jc3MuaHRtbC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sLgorICAgICAgICAqIGZhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWlu
LWZyYW1lLXJvb3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFt
ZS1yb290Lmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1tYWluLWZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5l
c3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWw6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcv
c2Nyb2xsLWJlaGF2aW9yLXNjcm9sbGludG92aWV3LW5lc3RlZC5odG1sLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc21vb3RoLXBvc2l0aW9ucy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1z
bW9vdGgtcG9zaXRpb25zLmh0bWwuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9s
bC1iZWhhdmlvci1zdWJmcmFtZS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWw6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QuaHRtbC4KKyAgICAgICAg
KiBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVo
YXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXdpbmRvdy5odG1sLgorCiAyMDIwLTAyLTA3ICBUb21va2kgSW1haSAgPFRvbW9r
aS5JbWFpQHNvbnkuY29tPgogCiAgICAgICAgIFtPcGVuU1NMXSBJbXBsZW1lbnQgV2ViQ3J5cHRv
IEFQSXMgZm9yIEFFUy1DQkMsIEFFUy1DRkIgYW5kIEFFUy1HQ00KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJjZXMvc2Nyb2xsLWJlaGF2aW9yLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Jlc291cmNlcy9zY3JvbGwtYmVoYXZpb3Iu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGEwOTY4ZTAyNWJkODYwNGMwNzY1MzUyZDNhMmU4YjNjYzEyMzNhYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9yZXNvdXJj
ZXMvc2Nyb2xsLWJlaGF2aW9yLmpzCkBAIC0wLDAgKzEsODcgQEAKK2Z1bmN0aW9uIG9ic2VydmVT
Y3JvbGxpbmcoZWxlbWVudHMsIGNhbGxiYWNrKSB7CisgIGlmICghQXJyYXkuaXNBcnJheShlbGVt
ZW50cykpCisgICAgICBlbGVtZW50cyA9IFtlbGVtZW50c107CisgIHZhciBsYXN0Q2hhbmdlZEZy
YW1lID0gMDsKKyAgdmFyIGxhc3RMZWZ0ID0gbmV3IE1hcCgpOworICB2YXIgbGFzdFRvcCA9IG5l
dyBNYXAoKTsKKyAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4geworICAgIGxhc3RMZWZ0
LnNldChlbGVtZW50LCBlbGVtZW50LnNjcm9sbExlZnQpOworICAgIGxhc3RUb3Auc2V0KGVsZW1l
bnQsIGVsZW1lbnQuc2Nyb2xsVG9wKTsKKyAgfSk7CisgIGZ1bmN0aW9uIHRpY2soZnJhbWVzKSB7
CisgICAgLy8gV2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGVpdGhlciBmb3IgNTAwIGZyYW1lcyBv
ciB1bnRpbCAyMCBmcmFtZXMgd2l0aAorICAgIC8vIG5vIGNoYW5nZSBoYXZlIGJlZW4gb2JzZXJ2
ZWQuCisgICAgaWYgKGZyYW1lcyA+PSA1MDAgfHwgZnJhbWVzIC0gbGFzdENoYW5nZWRGcmFtZSA+
IDIwKSB7CisgICAgICBjYWxsYmFjayh0cnVlKTsKKyAgICB9IGVsc2UgeworICAgICAgdmFyIHNj
cm9sbEhhcHBlbmVkID0gZWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4geworICAgICAgICByZXR1
cm4gZWxlbWVudC5zY3JvbGxMZWZ0ICE9IGxhc3RMZWZ0LmdldChlbGVtZW50KSB8fCBlbGVtZW50
LnNjcm9sbFRvcCAhPSBsYXN0VG9wLmdldChlbGVtZW50KTsKKyAgICAgIH0pOworICAgICAgaWYg
KHNjcm9sbEhhcHBlbmVkKSB7CisgICAgICAgIGxhc3RDaGFuZ2VkRnJhbWUgPSBmcmFtZXM7Cisg
ICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHsKKyAgICAgICAgICBsYXN0TGVm
dC5zZXQoZWxlbWVudCwgZWxlbWVudC5zY3JvbGxMZWZ0KTsKKyAgICAgICAgICBsYXN0VG9wLnNl
dChlbGVtZW50LCBlbGVtZW50LnNjcm9sbFRvcCk7CisgICAgICAgIH0pOworICAgICAgICBjYWxs
YmFjayhmYWxzZSk7CisgICAgICB9CisgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljay5i
aW5kKG51bGwsIGZyYW1lcyArIDEpKTsKKyAgICB9CisgIH0KKyAgdGljaygwKTsKK30KKworZnVu
Y3Rpb24gd2FpdEZvclNjcm9sbEVuZChlbGVtZW50cykgeworICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUpID0+IHsKKyAgICBvYnNlcnZlU2Nyb2xsaW5nKGVsZW1lbnRzLCAoZG9uZSkgPT4g
eworICAgICAgaWYgKGRvbmUpCisgICAgICAgIHJlc29sdmUoKTsKKyAgICB9KTsKKyAgfSk7Cit9
CisKK2Z1bmN0aW9uIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpIHsKKyAgLy8gVHJ5IHZh
cmlvdXMgbWV0aG9kcyB0byBlbnN1cmUgdGhlIGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1t
ZWRpYXRlbHkuCisgIHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCA9IDA7CisgIHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wID0gMDsKKyAgc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGwoe2xlZnQ6
IDAsIHRvcDogMCwgYmVoYXZpb3I6ICJpbnN0YW50In0pOworfQorCitmdW5jdGlvbiByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpIHsKKyAgLy8gVHJ5IHZhcmlvdXMgbWV0aG9k
cyB0byBlbnN1cmUgdGhlIGVsZW1lbnQgcG9zaXRpb24gaXMgcmVzZXQgaW1tZWRpYXRlbHkuCisg
IHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQgPSAw
OworICBzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3Ag
PSAwOworICBzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsKHtsZWZ0OiAwLCB0b3A6IDAsIGJlaGF2aW9y
OiAiaW5zdGFudCJ9KTsKK30KKworZnVuY3Rpb24gc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxl
bWVudCwgY2xhc3NOYW1lKSB7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYXV0
b0JlaGF2aW9yIiwgInNtb290aEJlaGF2aW9yIik7CisgIHN0eWxlZEVsZW1lbnQuY2xhc3NMaXN0
LmFkZChjbGFzc05hbWUpOworfQorCitmdW5jdGlvbiBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlvciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdzID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBh
cmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7CisgIHN3aXRjaCAoc2Nyb2xsRnVuY3Rpb24pIHsKKyAg
ICBjYXNlICJzY3JvbGxJbnRvVmlldyI6CisgICAgICBhcmdzLmlubGluZSA9ICJzdGFydCI7Cisg
ICAgICBhcmdzLmJsb2NrID0gInN0YXJ0IjsKKyAgICAgIGVsZW1lbnRUb1JldmVhbC5zY3JvbGxJ
bnRvVmlldyhhcmdzKTsKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBhcmdzLmxl
ZnQgPSBlbGVtZW50VG9SZXZlYWxMZWZ0OworICAgICAgYXJncy50b3AgPSBlbGVtZW50VG9SZXZl
YWxUb3A7CisgICAgICBzY3JvbGxpbmdFbGVtZW50W3Njcm9sbEZ1bmN0aW9uXShhcmdzKTsKKyAg
ICAgIGJyZWFrOworICB9Cit9CisKK2Z1bmN0aW9uIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5k
b3csIHNjcm9sbEZ1bmN0aW9uLCBiZWhhdmlvciwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKSB7CisgIHZhciBhcmdzID0ge307CisgIGlmIChiZWhhdmlvcikKKyAgICBh
cmdzLmJlaGF2aW9yID0gYmVoYXZpb3I7CisgIGFyZ3MubGVmdCA9IGVsZW1lbnRUb1JldmVhbExl
ZnQ7CisgIGFyZ3MudG9wID0gZWxlbWVudFRvUmV2ZWFsVG9wOworICBzY3JvbGxpbmdXaW5kb3db
c2Nyb2xsRnVuY3Rpb25dKGFyZ3MpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWRlZmF1bHQtY3Nz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDRjYTY0MTU1ZjRmOWRlOGY5ZTEwOTNkOWIxNzEy
ZjQxN2NlNjkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACisKK1BBU1MgSW5zdGFudCBzY3JvbGxpbmcgb2YgYW4gZWxlbWVudCB3aXRoIGRlZmF1bHQg
c2Nyb2xsLWJlaGF2aW9yIAorUEFTUyBTbW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQgd2l0
aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM1YzY1MDNhYjI2NTAzNWQwMDhjNjAwNjY4NWQ2Y2MxMzcxODFkOGEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJl
aGF2aW9yLWRlZmF1bHQtY3NzLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxl
ZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBkZWZhdWx0IHZhbHVlIG9mIHNjcm9sbC1iZWhh
dmlvcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5n
QGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5n
LWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3Iu
anMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1
dG87CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgIH0KKzwvc3R5bGU+
Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJz
Y3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7
IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAg
PHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6
IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVtZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdo
dDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8
c2NyaXB0PgorICB2YXIgc2Nyb2xsaW5nRWxlbWVudCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIGVs
ZW1lbnRUb1JldmVhbExlZnQgPSA1MDA7CisgIHZhciBlbGVtZW50VG9SZXZlYWxUb3AgPSAyNTA7
CisgIHZhciBzY3JvbGxGdW5jdGlvbiA9ICJzY3JvbGwiOworCisgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgInNjcm9sbCIsICJpbnN0YW50IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgIH0sICJJ
bnN0YW50IHNjcm9sbGluZyBvZiBhbiBlbGVtZW50IHdpdGggZGVmYXVsdCBzY3JvbGwtYmVoYXZp
b3IiKTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGlu
Z0VsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNo
b3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICByZXR1cm4gd2FpdEZvclNj
cm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmlu
YWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Ny
b2xsVG9wIik7CisgICAgfSk7CisgIH0sICJTbW9vdGggc2Nyb2xsaW5nIG9mIGFuIGVsZW1lbnQg
d2l0aCBkZWZhdWx0IHNjcm9sbC1iZWhhdmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2E5NjFlZjU2YTkxODU3YzZkMmNh
YmI5MDg0OGM1YjJkOWYwNjYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDM2IEBACisKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3Jv
bGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0
aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0
byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEVs
ZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1
bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNt
b290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQgd2l0aCBhdXRv
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBF
bGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1Mg
RWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0
byBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgRWxlbWVudCB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIEVsZW1lbnQg
d2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3Jv
bGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbElu
dG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAor
UEFTUyBFbGVtZW50IHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3Ro
IHNjcm9sbGluZyBvbiBhbiBlbGVtZW50IHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIAor
UEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24gYW4gZWxlbWVudCB3
aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItZWxlbWVudC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQzOGRmZmRlY2U1OWIzNzUwZTk2ZjFhMjg2MmM1ZTk0OTdhNDIzOGIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLWVs
ZW1lbnQuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+
Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3Jv
bGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gYW4gZWxlbWVudDwvdGl0bGU+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZy
w6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRl
Zi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
ICAuc2Nyb2xsYWJsZSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDQwMHB4Owor
ICAgIGhlaWdodDogMjAwcHg7CisgIH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJl
aGF2aW9yOiBhdXRvOworICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2
aW9yOiBzbW9vdGg7CisgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2
IGlkPSJvdmVyZmxvd05vZGUiIGNsYXNzPSJzY3JvbGxhYmxlIj4KKyAgPGRpdiBzdHlsZT0id2lk
dGg6IDIwMDBweDsgaGVpZ2h0OiAxMDAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgx
MzVkZWcsIHJlZCwgZ3JlZW4pOyI+CisgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1i
bG9jazsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9zcGFuPjxzcGFuIGlkPSJlbGVt
ZW50VG9SZXZlYWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWdu
OiAtMTVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDogYmxhY2s7Ij48
L3NwYW4+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgc2Nyb2xsaW5nRWxlbWVu
dCA9IG92ZXJmbG93Tm9kZTsKKyAgdmFyIHN0eWxlZEVsZW1lbnQgPSBvdmVyZmxvd05vZGU7Cisg
IHZhciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFsVG9w
ID0gMjUwOworCisgIFsic2Nyb2xsIiwgInNjcm9sbFRvIiwgInNjcm9sbEJ5IiwgInNjcm9sbElu
dG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24pID0+IHsKKyAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRT
Y3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5vZGUo
c2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExl
ZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xs
TGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAg
ICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3Jv
bGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBz
ZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3Jv
bGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBzY3JvbGwtYmVo
YXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQp
OworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIp
OworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
cmApOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9s
bGluZ0VsZW1lbnQpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9u
LCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAg
ICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOwor
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVu
dFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7Cisg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVs
ZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVh
bFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVs
ZW1lbnQgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0
aCBzbW9vdGggYmVoYXZpb3JgKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICBy
ZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGlt
bWVkaWF0ZWx5Iik7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1l
bnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICB9
KTsKKyAgICB9LCBgRWxlbWVudCB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9s
bEZ1bmN0aW9ufSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvcmApOworCisgICAgcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgIHNjcm9sbE5v
ZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5v
dCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9s
bEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNj
cm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKwor
ICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVt
ZW50KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhh
dmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7
CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiaW5z
dGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgIH0sIGBFbGVtZW50IHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yYCk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3Jv
bGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVh
bFRvcCk7CisgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCku
dGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgIH0pOwor
ICAgfSwgYEVsZW1lbnQgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5j
dGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworICB9KTsKKworICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIHNldFNjcm9s
bEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGlu
Z0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwi
LCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAv
IDIpOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4o
KCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQs
IGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9
LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGFuIGVsZW1lbnQgd2l0
aCBhbm90aGVyIHNtb290aCBzY3JvbGxpbmciKTsKKworICBwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
ICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFs
VG9wKTsKKyAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFu
dCIsIDAsIDApOworICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQp
LnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIDAsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xs
VG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxp
bmcgb24gYW4gZWxlbWVudCB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45N2NhZWEyN2JiNTNmMWE5NDRkY2EyZDY4MTdhM2VmYjg1ZmNhNzcyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlv
ci1tYWluLWZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzcgQEAKKworUEFTUyBQ
YWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0
byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1h
aW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
YXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3Ig
CitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGgg
c2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRo
IGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xs
QnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFu
dCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgp
IHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggc21vb3Ro
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3
aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGgg
c21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBzbW9vdGggYmVo
YXZpb3IgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUg
bWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9sbGluZyAKK1BBU1MgQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5z
dGFudCBzY3JvbGxpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQzMjViNGI5ZTI0ZWY3ZGI3YmE2OTgwNGJlMmI1N2Y3MzhhMzY5ZGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2
aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sCkBAIC0wLDAgKzEsMTY5IEBACis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkPXRydWUgIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFi
bGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0aW5nIHNjcm9sbE9wdGlvbnMnIGJlaGF2aW9yIGZv
ciBFbGVtZW50LnNjcm9sbCogYW5kIHNjcm9sbC1iZWhhdmlvciBvbiB0aGUgcm9vdCBvZiB0aGUg
bWFpbiBmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+
Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRv
OmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Ny
b2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVo
YXZpb3IuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBib2R5IHsKKyAgICBtYXJnaW46IDA7Cisg
IH0KKyAgLmF1dG9CZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICB9Cisg
IC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgIH0KKzwv
c3R5bGU+Cis8ZGl2IGlkPSJsb2ciPgorPC9kaXY+Cis8ZGl2IGlkPSJwYWdlQ29udGVudCIgc3R5
bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyI+CisgIDxkaXYgaWQ9ImVs
ZW1lbnRUb1JldmVhbCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogaW5saW5l
LWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwv
ZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICB2YXIgcGFnZUxvYWRlZCA9IGFzeW5jX3Rlc3QoIlBh
Z2UgbG9hZGVkIik7CisgIHZhciBzY3JvbGxpbmdFbGVtZW50LCBzdHlsZWRFbGVtZW50LCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3A7CisgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJsb2FkIiwgcGFnZUxvYWRlZC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAg
ICBzY3JvbGxpbmdFbGVtZW50ID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICBzdHls
ZWRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIHBhZ2VDb250ZW50LnN0
eWxlLndpZHRoID0gKDEwICsgd2luZG93LmlubmVyV2lkdGgpICogNSArICJweCI7CisgICAgcGFn
ZUNvbnRlbnQuc3R5bGUuaGVpZ2h0ID0gKDIwICsgd2luZG93LmlubmVySGVpZ2h0KSAqIDYgKyAi
cHgiOworICAgIGVsZW1lbnRUb1JldmVhbExlZnQgPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkg
KiAzOworICAgIGVsZW1lbnRUb1JldmVhbFRvcCA9ICgyMCArIHdpbmRvdy5pbm5lckhlaWdodCkg
KiA0OworICAgIGVsZW1lbnRUb1JldmVhbC5zdHlsZS5sZWZ0ID0gZWxlbWVudFRvUmV2ZWFsTGVm
dCArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLnRvcCA9IGVsZW1lbnRUb1JldmVh
bFRvcCArICJweCI7CisKKyAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOyB9KTsKKworICAgIFsic2Nyb2xsIiwgInNjcm9sbFRv
IiwgInNjcm9sbEJ5IiwgInNjcm9sbEludG9WaWV3Il0uZm9yRWFjaCgoc2Nyb2xsRnVuY3Rpb24p
ID0+IHsKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNj
cm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50
LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Ny
b2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAg
ICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVu
Y3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgo
KSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBz
ZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNj
cm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1
dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZp
b3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbExlZnQsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBz
Y3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9S
ZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlh
dGVseSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIp
OworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSgpOyB9
KTsKKyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Nj
cm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAg
ICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNz
ZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVh
bExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAg
IGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAg
ICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZl
YWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgICB9
LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlv
bn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4o
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxk
IG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190
aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91
bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRG
b3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGRl
ZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9y
KHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9s
bGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVhbExlZnQs
IGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxF
bmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5h
bCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZp
b3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwo
c2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1l
bnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQs
IHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRU
b1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5
Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7
IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
JHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlv
ciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIDAp
OworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsIHNjcm9sbEZ1bmN0aW9uLCAi
c21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1l
bnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOwor
ICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdFbGVtZW50KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVm
dCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50
VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7Cisg
ICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZpb3JgKTsKKyAgICB9KTsKKworICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICBz
Y3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRv
UmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbE5vZGUoc2Nyb2xs
aW5nRWxlbWVudCwgInNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwg
ZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7CisgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChz
Y3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwg
dmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Yg
c2Nyb2xsVG9wIik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9v
dGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xs
aW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDAp
OworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigo
KSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0
LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9w
Iik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcg
b24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIpOworICB9KSk7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzgyMzg1YWFiNDkzNTE0YmRlN2JiNTk1YTc5YTc0MTQwMjY0
MDQzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjkgQEAKKworUEFTUyBQYWdlIGxvYWRlZCAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bCgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0
IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7
IHNjcm9sbCgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290
aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNT
IE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBz
bW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlv
ciA7IHNjcm9sbFRvKCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAK
K1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1i
ZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3
aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJl
aGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBhdXRvIGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Ny
b2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgTWFp
biBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggZGVm
YXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZp
b3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhhdmlv
ciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxC
eSgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbm90aGVyIHNtb290aCBzY3JvbGxp
bmcgCitQQVNTIEFib3J0aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFp
biBmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtd2luZG93
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLW1h
aW4tZnJhbWUtd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA1N2IwY2QxMjE5MTAyYWVkYTAwODQ1
OTE1NTY5YmI3ZTBhZDBkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3ItbWFpbi1mcmFtZS13aW5kb3cuaHRtbApAQCAtMCww
ICsxLDE3MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBl
cmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZD10cnVlICBpbnRlcm5hbDpB
c3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBz
Y3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIG9uIHRoZSB3aW5kb3cg
b2YgdGhlIG1haW4gZnJhbWU8L3RpdGxlPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0i
bG9uZyIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCxtaW5pbXVtLXNjYWxlPTEsaW5pdGlhbC1zY2FsZT0xIj4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3
LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CisgIGJvZHkgeworICAgIG1hcmdpbjogMDsKKyAgfQorICAuYXV0b0JlaGF2aW9yIHsK
KyAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87CisgIH0KKyAgLnNtb290aEJlaGF2aW9yIHsKKyAg
ICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+
Cis8L2Rpdj4KKzxkaXYgaWQ9InBhZ2VDb250ZW50IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
OyBsZWZ0OiAwOyB0b3A6IDA7Ij4KKyAgPGRpdiBpZD0iZWxlbWVudFRvUmV2ZWFsIiBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBo
ZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+
CisgIHZhciBwYWdlTG9hZGVkID0gYXN5bmNfdGVzdCgiUGFnZSBsb2FkZWQiKTsKKyAgdmFyIHNj
cm9sbGluZ1dpbmRvdywgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBhZ2VMb2Fk
ZWQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgc2Nyb2xsaW5nV2luZG93ID0gd2lu
ZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAg
cGFnZUNvbnRlbnQuc3R5bGUud2lkdGggPSAoMTAgKyB3aW5kb3cuaW5uZXJXaWR0aCkgKiA1ICsg
InB4IjsKKyAgICBwYWdlQ29udGVudC5zdHlsZS5oZWlnaHQgPSAoMjAgKyB3aW5kb3cuaW5uZXJI
ZWlnaHQpICogNiArICJweCI7CisgICAgZWxlbWVudFRvUmV2ZWFsTGVmdCA9ICgxMCArIHdpbmRv
dy5pbm5lcldpZHRoKSAqIDM7CisgICAgZWxlbWVudFRvUmV2ZWFsVG9wID0gKDIwICsgd2luZG93
LmlubmVySGVpZ2h0KSAqIDQ7CisgICAgZWxlbWVudFRvUmV2ZWFsLnN0eWxlLmxlZnQgPSBlbGVt
ZW50VG9SZXZlYWxMZWZ0ICsgInB4IjsKKyAgICBlbGVtZW50VG9SZXZlYWwuc3R5bGUudG9wID0g
ZWxlbWVudFRvUmV2ZWFsVG9wICsgInB4IjsKKworICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNr
KCgpID0+IHsgcmVzZXRTY3JvbGxGb3JXaW5kb3cod2luZG93KTsgfSk7CisKKyAgICBbInNjcm9s
bCIsICJzY3JvbGxUbyIsICJzY3JvbGxCeSJdLmZvckVhY2goKHNjcm9sbEZ1bmN0aW9uKSA9PiB7
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRv
dyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVt
ZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xs
RnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFs
VG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFp
biBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0byIsIGVsZW1lbnRUb1JldmVh
bExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1t
ZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJl
c29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGF1dG8gYmVoYXZpb3JgKTsKKworICAgICAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xs
aW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1
dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9u
LCAiaW5zdGFudCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1Jl
dmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9w
LCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRo
IGluc3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhz
Y3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFs
TGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5k
KHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50
VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBNYWlu
IGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAg
ICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNj
cm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRv
dyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICAgfSwgYE1haW4g
ZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
ICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0
U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2lu
ZG93KHNjcm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qg
c2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xs
RW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVt
ZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259
KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdp
bmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiaW5zdGFudCIsIGVsZW1lbnRU
b1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0
IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxU
b3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3Jv
bGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggaW5zdGFudCBiZWhhdmlvcmAp
OworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldp
bmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2lu
ZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBz
Y3JvbGxGdW5jdGlvbiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFgsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9s
bFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlh
dGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cu
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZp
bmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBz
Y3JvbGxUb3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBzbW9vdGggYmVoYXZp
b3JgKTsKKyAgICB9KTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICByZXNldFNj
cm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cpOworICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Io
c3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNj
cm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywg
InNjcm9sbCIsICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxU
b3ApOworICAgICAgc2Nyb2xsV2luZG93KHNjcm9sbGluZ1dpbmRvdywgInNjcm9sbCIsICJzbW9v
dGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8gMiwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMik7Cisg
ICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQgLyAyLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AgLyAyLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9w
Iik7CisgICAgICB9KTsKKyAgICB9LCAiQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xs
aW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisK
KyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Ny
b2xsaW5nV2luZG93KTsKKyAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJz
bW9vdGhCZWhhdmlvciIpOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Ny
b2xsWCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAw
KTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3Ro
IiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9s
bFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAiaW5zdGFudCIsIDAsIDApOworICAg
ICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z1dpbmRvdy5zY3JvbGxYLCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwLCAiRmluYWwgdmFsdWUg
b2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290
aCBzY3JvbGxpbmcgb24gdGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyIp
OworICB9KSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xs
aW50b3ZpZXctbmVzdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDNhODIwZTU4NTk2ZDU2
ZTNmZTg5MjExOWJlMDNkYzQ4ZDBiOTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHNjcm9sbEludG9WaWV3IHdpdGgg
bmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhhdmlvciAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zY3Jv
bGxpbnRvdmlldy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50b3ZpZXctbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVi
NWQ4ZDdjNzg0NDVhMGQyYzA3MmZhMTdkN2ZjOGMxOTZjZTU0YwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc2Nyb2xsaW50
b3ZpZXctbmVzdGVkLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZD10cnVlICBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVl
IF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciB3aXRoIHNjcm9s
bEludG9WaWV3IGZvciBuZXN0ZWQgc2Nyb2xsaW5nIG5vZGVzPC90aXRsZT4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRnLD
qWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdhbGlhLmNvbSI+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNwcm9wZGVm
LXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94Ij4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisg
IC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICBoZWlnaHQ6IDIwMHB4Owor
ICB9CisgIC5zbW9vdGhCZWhhdmlvciB7CisgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7Cisg
IH0KKyAgLmdyYWRpZW50IHsKKyAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVn
LCByZWQsIGdyZWVuKTsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxk
aXY+CisgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUgc21vb3RoQmVoYXZpb3IiIHN0eWxlPSJ3aWR0
aDogNDUwcHgiPgorICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSBzbW9v
dGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiA0MDBweCI+CisgICAgICA8ZGl2IGNsYXNzPSJncmFk
aWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAg
PGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAzNTBweCI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGUiIHN0eWxlPSJ3aWR0aDogMzAw
cHgiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJs
ZSBzbW9vdGhCZWhhdmlvciIgc3R5bGU9IndpZHRoOiAyNTBweCI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwv
ZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZSIgc3R5bGU9IndpZHRoOiAy
MDBweCI+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImVs
ZW1lbnRUb1JldmVhbCIgc3R5bGU9IndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJhY2tncm91
bmQ6IGJsYWNrOyI+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgICA8
L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IiBzdHlsZT0id2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAg
PGRpdiBjbGFzcz0iZ3JhZGllbnQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MDBweDsiPjwvZGl2PgorICAgICAgPC9kaXY+Cisg
ICAgICA8ZGl2IGNsYXNzPSJncmFkaWVudCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1
MDBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAg
Ly8gVGhlIENTU09NLVZpZXcgc3BlYyBhbmQgaW1wbGVtZW50YXRpb25zIGZvbGxvdyBkaWZmZXJl
bnQgYWxnb3JpdGhtcyAoc2Nyb2xscyBwZXJmb3JtZWQgaW4gcGFyYWxsZWwsIGFzIGlubmVyLXRv
LW91dGVyIHNlcXVlbmNlIG9yIGFzIG91dGVyLXRvLWlubmVyIHNlcXVlbmNlKS4KKyAgLy8gU2Vl
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMTI3CisgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgdmFyIGRpdnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
c2Nyb2xsYWJsZSIpOworICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7Cisg
ICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGFibGVEaXYpOworICAgICAgfSk7CisgICAgICBlbGVt
ZW50VG9SZXZlYWwuc2Nyb2xsSW50b1ZpZXcoe2lubGluZTogInN0YXJ0IiwgYmxvY2s6ICJzdGFy
dCIsIGJlaGF2aW9yOiAiYXV0byJ9KTsKKyAgICAgIHZhciBzY3JvbGxUb3AgPSBuZXcgTWFwKCk7
CisgICAgICB2YXIgaXNTbW9vdGggPSBuZXcgTWFwKCk7CisgICAgICBkaXZzLmZvckVhY2goKHNj
cm9sbGFibGVEaXYpID0+IHsKKyAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2LCBz
Y3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgIGlzU21vb3RoLnNldChzY3JvbGxhYmxl
RGl2LCBzY3JvbGxhYmxlRGl2LmNsYXNzTGlzdC5jb250YWlucygic21vb3RoQmVoYXZpb3IiKSk7
CisgICAgICAgIC8vIElmIHNjcm9sbCBvcGVyYXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIGluIHBh
cmFsbGVsLCBzY3JvbGwgYm94ZXMgd2l0aCBpbnN0YW50IGJlaGF2aW9yIG1pZ2h0IGFsc28gbmVl
ZCB0byB3YWl0IGZvciB0aGVpciBwcmVkZWNlc3NvcnMuCisgICAgICAgIGlmIChpc1Ntb290aC5n
ZXQoc2Nyb2xsYWJsZURpdikpCisgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxUb3Au
Z2V0KHNjcm9sbGFibGVEaXYpLCA1MDAsICJFbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9yIHNo
b3VsZCBub3Qgc2Nyb2xsIGltbWVkaWF0ZWx5Iik7CisgICAgICB9KTsKKworICAgICAgb2JzZXJ2
ZVNjcm9sbGluZyhBcnJheS5mcm9tKGRpdnMpLCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRy
eSB7CisgICAgICAgICAgZGl2cy5mb3JFYWNoKChzY3JvbGxhYmxlRGl2KSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKHNjcm9sbFRvcC5nZXQoc2Nyb2xsYWJsZURpdiks
IHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmciKTsK
KyAgICAgICAgICAgIGlmICghaXNTbW9vdGguZ2V0KHNjcm9sbGFibGVEaXYpKQorICAgICAgICAg
ICAgICBhc3NlcnRfYW55KGFzc2VydF9lcXVhbHMsIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG9wLCBb
MCwgNTAwXSwgIkVsZW1lbnQgd2l0aCBpbnN0YW50IGJlaGF2aW9yIHNob3VsZCBqdW1wIHRvIHRo
ZSBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3AsIDUwMCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbFRvcCIpOworICAgICAgICAgICAgc2Nyb2xsVG9wLnNldChzY3JvbGxhYmxlRGl2
LCBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0gY2F0
Y2goZSkgeworICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9u
ZSkKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSwgInNjcm9s
bEludG9WaWV3IHdpdGggbmVzdGVkIGVsZW1lbnRzIHdpdGggZGlmZmVyZW50IHNjcm9sbC1iZWhh
dmlvciIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290aC1wb3NpdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRp
b25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTVhNmE2MTBmMzczMWFjN2VkZmRiMGUyZGRh
MzhiMDU4ZWM5MWQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDIwIEBACisKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21v
b3RoIHNjcm9sbGluZyBmcm9tICgwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAK
K1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBm
cm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbCgpICAKK1BBU1MgU2Nyb2xs
IHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgwLCA1MDAp
IHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsKCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdo
ZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDEwMDAsIDUwMCkgdG8gKDUwMCwg
MjUwKSB1c2luZyBzY3JvbGwoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3Jt
aW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3Jv
bGxUbygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNj
cm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbFRvKCkgIAor
UEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZy
b20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxUbygpICAKK1BBU1MgU2Nyb2xs
IHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1
MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsVG8oKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlv
bnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoMCwgMCkgdG8gKDUwMCwg
MjUwKSB1c2luZyBzY3JvbGxCeSgpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZv
cm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAwKSB0byAoNTAwLCAyNTApIHVzaW5n
IHNjcm9sbEJ5KCkgIAorUEFTUyBTY3JvbGwgcG9zaXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9v
dGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxCeSgp
ICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGlu
ZyBmcm9tICgxMDAwLCA1MDApIHRvICg1MDAsIDI1MCkgdXNpbmcgc2Nyb2xsQnkoKSAgCitQQVNT
IFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBwZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAo
MCwgMCkgdG8gKDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xs
IHBvc2l0aW9ucyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCAw
KSB0byAoNTAwLCAyNTApIHVzaW5nIHNjcm9sbEludG9WaWV3KCkgIAorUEFTUyBTY3JvbGwgcG9z
aXRpb25zIHdoZW4gcGVyZm9ybWluZyBzbW9vdGggc2Nyb2xsaW5nIGZyb20gKDAsIDUwMCkgdG8g
KDUwMCwgMjUwKSB1c2luZyBzY3JvbGxJbnRvVmlldygpICAKK1BBU1MgU2Nyb2xsIHBvc2l0aW9u
cyB3aGVuIHBlcmZvcm1pbmcgc21vb3RoIHNjcm9sbGluZyBmcm9tICgxMDAwLCA1MDApIHRvICg1
MDAsIDI1MCkgdXNpbmcgc2Nyb2xsSW50b1ZpZXcoKSAgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMg
d2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3JvbGxpbmcgd2l0aCBhbm90aGVyIHNtb290aCBzY3Jv
bGxpbmcgCitQQVNTIFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBhYm9ydGluZyBhIHNtb290aCBzY3Jv
bGxpbmcgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXNtb290
aC1wb3NpdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTQxYjhiMDhkYWYyMTNhOWY5YTg1ZmYwYTQw
ZGY1Y2RhMTRlNmEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zbW9vdGgtcG9zaXRpb25zLmh0bWwKQEAgLTAsMCArMSwx
NTEgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVu
dGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNP
dmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3Rpbmcgc2Nyb2xs
IHBvc2l0aW9ucyB3aGVuIHNjcm9sbGluZyBhbiBlbGVtZW50IHdpdGggc21vb3RoIGJlaGF2aW9y
PC90aXRsZT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRnLDqWTDqXJpYyBXYW5nIiBocmVmPSJtYWlsdG86ZndhbmdAaWdh
bGlhLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3NvbS12aWV3LyNwcm9wZGVmLXNjcm9sbC1iZWhhdmlvciI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS12aWV3LyNzY3JvbGxpbmctYm94
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Njcm9sbC1iZWhhdmlvci5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGU+CisgIC5zY3JvbGxhYmxlIHsKKyAgICBvdmVyZmxvdzogYXV0bzsK
KyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBzY3JvbGwtYmVoYXZp
b3I6IHNtb290aDsKKyAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9ImxvZyI+Cis8L2Rpdj4KKzxkaXYg
aWQ9Im92ZXJmbG93Tm9kZSIgY2xhc3M9InNjcm9sbGFibGUiPgorICA8ZGl2IHN0eWxlPSJ3aWR0
aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEz
NWRlZywgcmVkLCBncmVlbik7Ij4KKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJs
b2NrOyB3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij48L3NwYW4+PHNwYW4gaWQ9ImVsZW1l
bnRUb1JldmVhbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246
IC0xNXB4OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiBibGFjazsiPjwv
c3Bhbj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIC8vIEZvciBzbW9vdGggYmVoYXZp
b3IsIGV2b2x1dGlvbiBvZiBzY3JvbGwgcG9zaXRpb25zIG92ZXIgdGltZSBpcyBub3Qgc3BlY2lm
aWVkIGJ5IENTU09NIFZpZXcuCisgIC8vIFRoaXMgdGVzdCByZWxpZXMgb24gdGhlIG1pbmltYWwg
YXNzdW1wdGlvbiB0aGF0IHNjcm9sbCBwb3NpdGlvbiBmdW5jdGlvbnMgYXJlIG1vbm90b25pYy4K
KyAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xsSW50b1ZpZXciXS5m
b3JFYWNoKGZ1bmN0aW9uKHNjcm9sbEZ1bmN0aW9uKSB7CisgICAgW3tsZWZ0OjAsIHRvcDowfSwg
e2xlZnQ6MTAwMCwgdG9wOjB9LCB7bGVmdDowLCB0b3A6NTAwfSwge2xlZnQ6MTAwMCwgdG9wOjUw
MH1dLmZvckVhY2goKGluaXRpYWwpID0+IHsKKyAgICAgIHZhciBmaW5hbExlZnQgPSA1MDA7Cisg
ICAgICB2YXIgZmluYWxUb3AgPSAyNTA7CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAg
ICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIGluaXRp
YWwubGVmdCwgaW5pdGlhbC50b3ApOworICAgICAgICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dO
b2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3Jv
bGxUb3A7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvbGRMZWZ0LCBpbml0aWFsLmxlZnQsICJT
Y3JvbGxMZWZ0IHNob3VsZCBiZSBhdCBpbml0aWFsIHBvc2l0aW9uIik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhvbGRUb3AsIGluaXRpYWwudG9wLCAiU2Nyb2xsVG9wIHNob3VsZCBiZSBhdCBp
bml0aWFsIHBvc2l0aW9uIik7CisgICAgICAgICAgaWYgKHNjcm9sbEZ1bmN0aW9uID09PSAic2Ny
b2xsQnkiKQorICAgICAgICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsIHNjcm9sbEZ1bmN0
aW9uLCAic21vb3RoIiwgZmluYWxMZWZ0IC0gaW5pdGlhbC5sZWZ0LCBmaW5hbFRvcCAtIGluaXRp
YWwudG9wKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBzY3JvbGxOb2RlKG92ZXJmbG93
Tm9kZSwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBmaW5hbExlZnQsIGZpbmFsVG9wKTsKKyAg
ICAgICAgICBvYnNlcnZlU2Nyb2xsaW5nKG92ZXJmbG93Tm9kZSwgZnVuY3Rpb24oZG9uZSkgewor
ICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgdmFyIG5ld0xlZnQgPSBvdmVyZmxvd05v
ZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICAgICAgdmFyIG5ld1RvcCA9IG92ZXJmbG93Tm9kZS5z
Y3JvbGxUb3A7CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoTWF0aC5oeXBv
dChmaW5hbExlZnQgLSBuZXdMZWZ0LCBmaW5hbFRvcCAtIG5ld1RvcCksIE1hdGguaHlwb3QoZmlu
YWxMZWZ0IC0gb2xkTGVmdCwgZmluYWxUb3AgLSBvbGRUb3ApLCAiU2Nyb2xsIHBvc2l0aW9uIHNo
b3VsZCBtb3ZlIHRvd2FyZHMgdGhlIGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgICAgIGlm
IChkb25lKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCBmaW5hbExl
ZnQsICJTY3JvbGxMZWZ0IHNob3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMobmV3VG9wLCBmaW5hbFRvcCwgIlNjcm9sbFRvcCBzaG91bGQg
cmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBv
bGRMZWZ0ID0gbmV3TGVmdDsKKyAgICAgICAgICAgICAgb2xkVG9wID0gbmV3VG9wOworICAgICAg
ICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgIHJlamVjdChlKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGlmIChkb25lKQorICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgfSwgYFNjcm9sbCBwb3NpdGlvbnMgd2hlbiBw
ZXJmb3JtaW5nIHNtb290aCBzY3JvbGxpbmcgZnJvbSAoJHtpbml0aWFsLmxlZnR9LCAke2luaXRp
YWwudG9wfSkgdG8gKCR7ZmluYWxMZWZ0fSwgJHtmaW5hbFRvcH0pIHVzaW5nICR7c2Nyb2xsRnVu
Y3Rpb259KCkgYCk7CisgICAgfSk7CisgIH0pOworCisgIHByb21pc2VfdGVzdCgoKSA9PiB7Cisg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAg
cmVzZXRTY3JvbGwob3ZlcmZsb3dOb2RlKTsKKyAgICAgIHZhciBpbml0aWFsU2Nyb2xsQWJvcnRl
ZCA9IGZhbHNlOworICAgICAgdmFyIHNjcm9sbERpcmVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKKyAg
ICAgIHZhciBvbGRMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICB2YXIgb2xk
VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgIGFzc2VydF9lcXVhbHMob2xkTGVm
dCwgMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZFRvcCwgMCk7CisgICAgICBzY3JvbGxOb2Rl
KG92ZXJmbG93Tm9kZSwgInNjcm9sbCIsICJzbW9vdGgiLCAxNTAwLCA3NTApOworICAgICAgb2Jz
ZXJ2ZVNjcm9sbGluZyhvdmVyZmxvd05vZGUsIGZ1bmN0aW9uKGRvbmUpIHsKKyAgICAgICAgdHJ5
IHsKKyAgICAgICAgICB2YXIgbmV3TGVmdCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxMZWZ0OworICAg
ICAgICAgIHZhciBuZXdUb3AgPSBvdmVyZmxvd05vZGUuc2Nyb2xsVG9wOworICAgICAgICAgIGlm
IChpbml0aWFsU2Nyb2xsQWJvcnRlZCkgeworICAgICAgICAgICAgaWYgKHNjcm9sbERpcmVjdGlv
bkNoYW5nZWQpIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChvbGRM
ZWZ0LCBuZXdMZWZ0LCAiU2Nyb2xsTGVmdCBrZWVwcyBkZWNyZWFzaW5nIik7CisgICAgICAgICAg
ICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwob2xkVG9wLCBuZXdUb3AsICJTY3JvbGxUb3Ag
a2VlcHMgZGVjcmVhc2luZyIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgIHNj
cm9sbERpcmVjdGlvbkNoYW5nZWQgPSBuZXdMZWZ0IDw9IG9sZExlZnQgJiYgbmV3VG9wIDw9IG9s
ZFRvcDsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBhc3NlcnRfbGVzc190aGFu
X2VxdWFsKG9sZExlZnQsIG5ld0xlZnQsICJTY3JvbGxMZWZ0IGtlZXBzIGluY3JlYXNpbmciKTsK
KyAgICAgICAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChvbGRUb3AsIG5ld1RvcCwgIlNj
cm9sbFRvcCBrZWVwcyBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgIGlmIChuZXdMZWZ0ID4g
MTAwMCAmJiBuZXdUb3AgPiA1MDApIHsKKyAgICAgICAgICAgICAgICAvLyBBYm9ydCB0aGUgaW5p
dGlhbCBzY3JvbGwuCisgICAgICAgICAgICAgICAgaW5pdGlhbFNjcm9sbEFib3J0ZWQgPSB0cnVl
OworICAgICAgICAgICAgICAgIHNjcm9sbE5vZGUob3ZlcmZsb3dOb2RlLCAic2Nyb2xsIiwgInNt
b290aCIsIDUwMCwgMjUwKTsKKyAgICAgICAgICAgICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2Rl
LnNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9s
bFRvcDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNo
b3VsZCByZWFjaCBmaW5hbCBwb3NpdGlvbiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhu
ZXdUb3AsIDI1MCwgIlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAg
ICAgICAgICB9CisgICAgICAgICAgb2xkTGVmdCA9IG5ld0xlZnQ7CisgICAgICAgICAgb2xkVG9w
ID0gbmV3VG9wOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICByZWplY3QoZSk7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAg
fSk7CisgICAgfSk7CisgIH0sICJTY3JvbGwgcG9zaXRpb25zIHdoZW4gYWJvcnRpbmcgYSBzbW9v
dGggc2Nyb2xsaW5nIHdpdGggYW5vdGhlciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICByZXNldFNjcm9sbChvdmVyZmxvd05vZGUpOworICAgICAgdmFyIGlu
aXRpYWxTY3JvbGxBYm9ydGVkID0gZmFsc2U7CisgICAgICB2YXIgb2xkTGVmdCA9IG92ZXJmbG93
Tm9kZS5zY3JvbGxMZWZ0OworICAgICAgdmFyIG9sZFRvcCA9IG92ZXJmbG93Tm9kZS5zY3JvbGxU
b3A7CisgICAgICBhc3NlcnRfZXF1YWxzKG9sZExlZnQsIDApOworICAgICAgYXNzZXJ0X2VxdWFs
cyhvbGRUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAi
c21vb3RoIiwgMTUwMCwgNzUwKTsKKyAgICAgIG9ic2VydmVTY3JvbGxpbmcob3ZlcmZsb3dOb2Rl
LCBmdW5jdGlvbihkb25lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIG5ld0xlZnQg
PSBvdmVyZmxvd05vZGUuc2Nyb2xsTGVmdDsKKyAgICAgICAgICB2YXIgbmV3VG9wID0gb3ZlcmZs
b3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICBpZiAoIWluaXRpYWxTY3JvbGxBYm9ydGVkKSB7
CisgICAgICAgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwob2xkTGVmdCwgbmV3TGVmdCwg
IlNjcm9sbExlZnQga2VlcHMgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICBhc3NlcnRfbGVz
c190aGFuX2VxdWFsKG9sZFRvcCwgbmV3VG9wLCAiU2Nyb2xsVG9wIGtlZXBzIGluY3JlYXNpbmci
KTsKKyAgICAgICAgICAgICAgaWYgKG5ld0xlZnQgPiAxMDAwICYmIG5ld1RvcCA+IDUwMCkgewor
ICAgICAgICAgICAgICAgIC8vIEFib3J0IHRoZSBpbml0aWFsIHNjcm9sbC4KKyAgICAgICAgICAg
ICAgICBpbml0aWFsU2Nyb2xsQWJvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2Nyb2xs
Tm9kZShvdmVyZmxvd05vZGUsICJzY3JvbGwiLCAiaW5zdGFudCIsIDUwMCwgMjUwKTsKKyAgICAg
ICAgICAgICAgICBuZXdMZWZ0ID0gb3ZlcmZsb3dOb2RlLnNjcm9sbExlZnQ7CisgICAgICAgICAg
ICAgICAgbmV3VG9wID0gb3ZlcmZsb3dOb2RlLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKG5ld0xlZnQsIDUwMCwgIlNjcm9sbExlZnQgc2hvdWxkIHJlYWNoIGZpbmFs
IHBvc2l0aW9uIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdUb3AsIDI1MCwg
IlNjcm9sbFRvcCBzaG91bGQgcmVhY2ggZmluYWwgcG9zaXRpb24iKTsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhuZXdMZWZ0LCA1MDAsICJTY3JvbGxMZWZ0IHNob3VsZCBzdGF5IGF0IGZpbmFsIHBv
c2l0aW9uIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld1RvcCwgMjUwLCAiU2Nyb2xs
VG9wIHNob3VsZCBzdGF5IGF0IGZpbmFsIHBvc2l0aW9uIik7CisgICAgICAgICAgfQorICAgICAg
ICAgIG9sZExlZnQgPSBuZXdMZWZ0OworICAgICAgICAgIG9sZFRvcCA9IG5ld1RvcDsKKyAgICAg
ICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisgICAgICAg
IGlmIChkb25lKQorICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgIH0pOworICB9
LCAiU2Nyb2xsIHBvc2l0aW9ucyB3aGVuIGFib3J0aW5nIGEgc21vb3RoIHNjcm9sbGluZyB3aXRo
IGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9y
LXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3OTlmZGNjMjllZDU2MzM3
YTg5MTIxYjA1OTBhMDliN2JlZjVjMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXJvb3QtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMzcgQEAKKworUEFTUyBpZnJhbWUgbG9hZGVkIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBkZWZhdWx0IGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2
aW9yIDsgc2Nyb2xsKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNt
b290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQ
QVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
c21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGgg
YXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggYXV0byBiZWhhdmlvciAKK1BB
U1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBp
bnN0YW50IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9y
IDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBz
bW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGRlZmF1bHQgYmVoYXZpb3Ig
CitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkg
d2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGxUbygpIHdpdGggaW5zdGFudCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIHNtb290aCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1l
IHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggaW5zdGFudCBiZWhh
dmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5
KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9s
bC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBTdWJm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0byBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21vb3Ro
IHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNT
IFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdp
dGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFt
ZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsSW50b1ZpZXcoKSB3aXRoIGluc3Rh
bnQgYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBz
Y3JvbGxJbnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRo
IHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJbnRvVmlldygpIHdpdGggZGVmYXVsdCBi
ZWhhdmlvciAKK1BBU1MgU3ViZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Ny
b2xsSW50b1ZpZXcoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIFN1YmZyYW1lIHdpdGggc21v
b3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEludG9WaWV3KCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxJ
bnRvVmlldygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5n
IHNtb290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFub3RoZXIgc21vb3RoIHNjcm9s
bGluZyAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIGEgc3Vi
ZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1l
LXJvb3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmQxMWFiOTYyMTYzNDc4NDI5ZjZmOGE4YTdhNGMyMjJi
MmVmMTU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9z
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS1yb290Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNTU09N
Vmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Nj
cm9sbGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10
cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBiZWhhdmlvciBmb3IgRWxl
bWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJvb3Qgb2YgYSBzdWJmcmFt
ZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIi8+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0ibWFpbHRvOmZ3YW5nQGln
YWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jc2Nyb2xsaW5nLWJv
eCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JvbGwtYmVoYXZpb3IuanMi
Pjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lTm9k
ZSIgd2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9IjwhRE9DVFlQRT4KKzxodG1s
PgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorICAgIC5h
dXRvQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOworICAgIH0KKyAgICAu
c21vb3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CisgICAgfQor
ICA8L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0aDogMjAwMHB4OyBoZWln
aHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBncmVl
bik7Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA1
MDBweDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxlbWVudFRvUmV2ZWFsJyBz
dHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogLTE1cHg7IHdpZHRo
OiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+PC9zcGFuPgorICAgIDwv
ZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNjcmlwdD4KKyAgdmFyIGlm
cmFtZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIpOworICB2YXIgc2Nyb2xs
aW5nRWxlbWVudCwgc3R5bGVkRWxlbWVudCwgZWxlbWVudFRvUmV2ZWFsOworICB2YXIgZWxlbWVu
dFRvUmV2ZWFsTGVmdCA9IDUwMDsKKyAgdmFyIGVsZW1lbnRUb1JldmVhbFRvcCA9IDI1MDsKKyAg
aWZyYW1lTm9kZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaWZyYW1lTG9hZFRlc3Quc3RlcF9m
dW5jX2RvbmUoKCkgPT4geworICAgIHNjcm9sbGluZ0VsZW1lbnQgPSBpZnJhbWVOb2RlLmNvbnRl
bnREb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVO
b2RlLmNvbnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFs
ID0gaWZyYW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1Jl
dmVhbCIpOworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiLCAic2Nyb2xs
SW50b1ZpZXciXS5mb3JFYWNoKChzY3JvbGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAg
ICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDApOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsKKyAgICAg
ICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwgZWxl
bWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJT
aG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxk
IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJl
aGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Ny
b2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRF
bGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVu
dCwgc2Nyb2xsRnVuY3Rpb24sICJhdXRvIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRv
UmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9s
bExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRp
YXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHki
KTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsg
fSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAg
ICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAg
IHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50Iiwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJTaG91bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hv
dWxkIHNldCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0
aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBpbnN0YW50
IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0
U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHls
ZWRFbGVtZW50LCAiYXV0b0JlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxl
bWVudCwgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9s
bExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Ny
b2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNj
cm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bFRvcCIpOworICAgICAgICB9KTsKKyAgICAgIH0sIGBTdWJmcmFtZSB3aXRoIGF1dG8gc2Nyb2xs
LWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOwor
CisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxp
bmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNt
b290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9sbE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xs
RnVuY3Rpb24sIG51bGwsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7
CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsTGVmdCBpbW1lZGlhdGVs
eSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
LCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBzY3JvbGxUb3AgaW1tZWRpYXRl
bHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCku
dGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNj
cm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0
Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwg
ZWxlbWVudFRvUmV2ZWFsVG9wLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAg
IH0pOworICAgICAgfSwgYFN1YmZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7
c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsKHNjcm9sbGluZ0VsZW1lbnQpOwor
ICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwKTsK
KyAgICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCBzY3JvbGxGdW5jdGlvbiwgImF1
dG8iLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBh
c3NlcnRfbGVzc190aGFuKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2
ZWFsTGVmdCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRv
UmV2ZWFsVG9wLCAiU2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAg
ICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4g
eworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBl
bGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1Jl
dmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsKKyAgICAg
IH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0
aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgICByZXNldFNjcm9sbChzY3JvbGxpbmdFbGVtZW50KTsKKyAgICAgICAgc2V0U2Ny
b2xsQmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgMCk7CisgICAgICAgIHNjcm9s
bE5vZGUoc2Nyb2xsaW5nRWxlbWVudCwgc2Nyb2xsRnVuY3Rpb24sICJpbnN0YW50IiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91
bGQgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wLCAiU2hvdWxkIHNl
dCBzY3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICB9LCBgU3ViZnJhbWUgd2l0aCBzbW9v
dGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGluc3RhbnQgYmVo
YXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVzZXRTY3Jv
bGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVs
ZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsTGVmdCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1l
bnQsIHNjcm9sbEZ1bmN0aW9uLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVu
dFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihzY3JvbGxpbmdFbGVtZW50
LnNjcm9sbExlZnQsIGVsZW1lbnRUb1JldmVhbExlZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxM
ZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AsIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBub3Qgc2V0IHNjcm9s
bFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4gd2FpdEZvclNjcm9sbEVuZChzY3Jv
bGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsTGVmdCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVl
IG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wLCBlbGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxU
b3AiKTsKKyAgICAgICAgfSk7CisgICAgIH0sIGBTdWJmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwt
YmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggc21vb3RoIGJlaGF2aW9yYCk7Cisg
ICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgcmVzZXRTY3JvbGwoc2Ny
b2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAi
c21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5z
Y3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVtZW50LCAic2Nyb2xsIiwg
InNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAg
ICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVu
dFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1JldmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJu
IHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nRWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCBlbGVtZW50VG9SZXZl
YWxMZWZ0IC8gMiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCwgZWxlbWVudFRvUmV2ZWFsVG9wIC8g
MiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0
aW5nIGFuIG9uZ29pbmcgc21vb3RoIHNjcm9sbGluZyBvbiBhIHN1YmZyYW1lIHdpdGggYW5vdGhl
ciBzbW9vdGggc2Nyb2xsaW5nIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
cmVzZXRTY3JvbGwoc2Nyb2xsaW5nRWxlbWVudCk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0LCAwKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AsIDApOworICAgICAgc2Nyb2xsTm9kZShzY3JvbGxpbmdFbGVt
ZW50LCAic2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1Jl
dmVhbFRvcCk7CisgICAgICBzY3JvbGxOb2RlKHNjcm9sbGluZ0VsZW1lbnQsICJzY3JvbGwiLCAi
aW5zdGFudCIsIDAsIDApOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5n
RWxlbWVudCkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxMZWZ0LCAwLCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wLCAwLCAiRmluYWwgdmFs
dWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgfSk7CisgIH0sICJBYm9ydGluZyBhbiBvbmdvaW5nIHNt
b290aCBzY3JvbGxpbmcgb24gYSBzdWJmcmFtZSB3aXRoIGFuIGluc3RhbnQgc2Nyb2xsaW5nIik7
CisgIH0pKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5k
b3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZWIzMjcyZjQwOGU1ZTY0ZDFiYjdlYzJhMDdl
MGJmY2M5MDQ3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9pb3Mvc2Nyb2xsLWJlaGF2aW9yLXN1YmZyYW1lLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyOSBAQAorCitQQVNTIGlmcmFtZSBsb2FkZWQgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BB
U1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBh
dXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3Ig
OyBzY3JvbGwoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFT
UyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgpIHdpdGgg
ZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVo
YXZpb3IgOyBzY3JvbGwoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0
aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9y
IAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbCgp
IHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwt
YmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggZGVmYXVsdCBiZWhhdmlvciAKK1BBU1MgTWFpbiBm
cmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsVG8oKSB3aXRoIGF1dG8gYmVo
YXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggYXV0byBz
Y3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxUbygpIHdpdGggc21vb3RoIGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBk
ZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhh
dmlvciA7IHNjcm9sbFRvKCkgd2l0aCBhdXRvIGJlaGF2aW9yIAorUEFTUyBNYWluIGZyYW1lIHdp
dGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbFRvKCkgd2l0aCBpbnN0YW50IGJlaGF2
aW9yIAorUEFTUyBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9s
bFRvKCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBhdXRvIHNj
cm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yIAorUEFTUyBN
YWluIGZyYW1lIHdpdGggYXV0byBzY3JvbGwtYmVoYXZpb3IgOyBzY3JvbGxCeSgpIHdpdGggYXV0
byBiZWhhdmlvciAKK1BBU1MgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7IHNjcm9sbEJ5KCkgd2l0aCBzbW9vdGggYmVoYXZpb3IgCitQ
QVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3
aXRoIGRlZmF1bHQgYmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xs
LWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGF1dG8gYmVoYXZpb3IgCitQQVNTIE1haW4gZnJh
bWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgc2Nyb2xsQnkoKSB3aXRoIGluc3RhbnQg
YmVoYXZpb3IgCitQQVNTIE1haW4gZnJhbWUgd2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsg
c2Nyb2xsQnkoKSB3aXRoIHNtb290aCBiZWhhdmlvciAKK1BBU1MgQWJvcnRpbmcgYW4gb25nb2lu
ZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW5vdGhlciBzbW9vdGgg
c2Nyb2xsaW5nIAorUEFTUyBBYm9ydGluZyBhbiBvbmdvaW5nIHNtb290aCBzY3JvbGxpbmcgb24g
dGhlIG1haW4gZnJhbWUgd2l0aCBhbiBpbnN0YW50IHNjcm9sbGluZyAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13
aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZp
b3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzMzM2Q2NGY4NTA3MTY3MGJkNDdi
Y2U4NmIwNjU1OTY4MjUwNDkzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtd2luZG93Lmh0bWwKQEAgLTAs
MCArMSwxNzEgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSAgaW50ZXJuYWw6
QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Ny
b2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8dGl0bGU+VGVzdGluZyBzY3JvbGxPcHRpb25zJyBi
ZWhhdmlvciBmb3IgRWxlbWVudC5zY3JvbGwqIGFuZCBzY3JvbGwtYmVoYXZpb3Igb24gdGhlIHJv
b3Qgb2YgYSBzdWJmcmFtZTwvdGl0bGU+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIi8+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZyw6lkw6lyaWMgV2FuZyIgaHJlZj0i
bWFpbHRvOmZ3YW5nQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmlldy8jcHJvcGRlZi1zY3JvbGwtYmVoYXZpb3IiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20tdmll
dy8jc2Nyb2xsaW5nLWJveCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3Jv
bGwtYmVoYXZpb3IuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj4KKzwvZGl2PgorPGlmcmFt
ZSBpZD0iaWZyYW1lTm9kZSIgd2lkdGg9IjQwMHB4IiBoZWlnaHQ9IjIwMHB4IiBzcmNkb2M9Ijwh
RE9DVFlQRT4KKzxodG1sPgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7
CisgICAgfQorICAgIC5hdXRvQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRv
OworICAgIH0KKyAgICAuc21vb3RoQmVoYXZpb3IgeworICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBz
bW9vdGg7CisgICAgfQorICA8L3N0eWxlPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSd3aWR0
aDogMjAwMHB4OyBoZWlnaHQ6IDEwMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEz
NWRlZywgcmVkLCBncmVlbik7Jz4KKyAgICAgIDxzcGFuIHN0eWxlPSdkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNTBweDsnPjwvc3Bhbj48c3BhbiBpZD0nZWxl
bWVudFRvUmV2ZWFsJyBzdHlsZT0nZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGln
bjogLTE1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1cHg7IGJhY2tncm91bmQ6IGJsYWNrOyc+
PC9zcGFuPgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+Ij4KKzwvaWZyYW1lPgorPHNj
cmlwdD4KKyAgdmFyIGlmcmFtZUxvYWRUZXN0ID0gYXN5bmNfdGVzdCgiaWZyYW1lIGxvYWRlZCIp
OworICB2YXIgc2Nyb2xsaW5nV2luZG93LCBzdHlsZWRFbGVtZW50LCBlbGVtZW50VG9SZXZlYWw7
CisgIHZhciBlbGVtZW50VG9SZXZlYWxMZWZ0ID0gNTAwOworICB2YXIgZWxlbWVudFRvUmV2ZWFs
VG9wID0gMjUwOworICBpZnJhbWVOb2RlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBpZnJhbWVM
b2FkVGVzdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7CisgICAgc2Nyb2xsaW5nV2luZG93ID0gaWZy
YW1lTm9kZS5jb250ZW50V2luZG93OworICAgIHN0eWxlZEVsZW1lbnQgPSBpZnJhbWVOb2RlLmNv
bnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxlbWVudFRvUmV2ZWFsID0gaWZy
YW1lTm9kZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRUb1JldmVhbCIp
OworCisgICAgWyJzY3JvbGwiLCAic2Nyb2xsVG8iLCAic2Nyb2xsQnkiXS5mb3JFYWNoKChzY3Jv
bGxGdW5jdGlvbikgPT4geworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgcmVz
ZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xsQmVo
YXZpb3Ioc3R5bGVkRWxlbWVudCwgImF1dG9CZWhhdmlvciIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxp
bmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCBudWxsLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVt
ZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVk
aWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFks
IGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7
CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0p
OworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRv
dyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAg
ICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImF1dG8i
LCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAi
U2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBz
ZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBh
dXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xsRnVuY3Rpb259KCkgd2l0aCBhdXRvIGJlaGF2
aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xs
Rm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0
eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3Jv
bGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5n
V2luZG93LnNjcm9sbFksIDApOworICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93
LCBzY3JvbGxGdW5jdGlvbiwgImluc3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50
VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3Jv
bGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0
ZWx5Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVs
ZW1lbnRUb1JldmVhbFRvcCwgIlNob3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7Cisg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOwor
ICAgICAgfSwgYE1haW4gZnJhbWUgd2l0aCBhdXRvIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Nyb2xs
RnVuY3Rpb259KCkgd2l0aCBpbnN0YW50IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7
CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJhdXRvQmVoYXZpb3Ii
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAgICAg
ICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgInNtb290aCIs
IGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExlZnQs
ICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2Vy
dF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1cm4g
d2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cu
c2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQi
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVt
ZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAgfSk7
CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIGF1dG8gc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3Jv
bGxGdW5jdGlvbn0oKSB3aXRoIHNtb290aCBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNlX3Rl
c3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5kb3cp
OworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZp
b3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOworICAg
ICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgbnVsbCwg
ZWxlbWVudFRvUmV2ZWFsTGVmdCwgZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgICAgYXNzZXJ0
X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
IlNob3VsZCBub3Qgc2V0IHNjcm9sbExlZnQgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgYXNzZXJ0
X2xlc3NfdGhhbihzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
U2hvdWxkIG5vdCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiB3
YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRvdy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5z
Y3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiRmluYWwgdmFsdWUgb2Ygc2Nyb2xsTGVmdCIp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1l
bnRUb1JldmVhbFRvcCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgICB9KTsK
KyAgICAgIH0sIGBNYWluIGZyYW1lIHdpdGggc21vb3RoIHNjcm9sbC1iZWhhdmlvciA7ICR7c2Ny
b2xsRnVuY3Rpb259KCkgd2l0aCBkZWZhdWx0IGJlaGF2aW9yYCk7CisKKyAgICAgIHByb21pc2Vf
dGVzdCgoKSA9PiB7CisgICAgICAgIHJlc2V0U2Nyb2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRv
dyk7CisgICAgICAgIHNldFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhh
dmlvciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCAw
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgMCk7Cisg
ICAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3csIHNjcm9sbEZ1bmN0aW9uLCAiYXV0
byIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRvcCk7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRUb1JldmVhbExl
ZnQsICJTaG91bGQgbm90IHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFz
c2VydF9sZXNzX3RoYW4oc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRv
cCwgIlNob3VsZCBub3Qgc2V0IHNjcm9sbFRvcCBpbW1lZGlhdGVseSIpOworICAgICAgICByZXR1
cm4gd2FpdEZvclNjcm9sbEVuZChzY3JvbGxpbmdXaW5kb3cuZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudCkudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5k
b3cuc2Nyb2xsWCwgZWxlbWVudFRvUmV2ZWFsTGVmdCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExl
ZnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCBl
bGVtZW50VG9SZXZlYWxUb3AsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxUb3AiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCBgTWFpbiBmcmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAk
e3Njcm9sbEZ1bmN0aW9ufSgpIHdpdGggYXV0byBiZWhhdmlvcmApOworCisgICAgICBwcm9taXNl
X3Rlc3QoKCkgPT4geworICAgICAgICByZXNldFNjcm9sbEZvcldpbmRvdyhzY3JvbGxpbmdXaW5k
b3cpOworICAgICAgICBzZXRTY3JvbGxCZWhhdmlvcihzdHlsZWRFbGVtZW50LCAic21vb3RoQmVo
YXZpb3IiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwg
MCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIDApOwor
ICAgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCBzY3JvbGxGdW5jdGlvbiwgImlu
c3RhbnQiLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCAiU2hvdWxkIHNldCBzY3JvbGxMZWZ0IGltbWVkaWF0ZWx5Iik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFksIGVsZW1lbnRUb1JldmVhbFRvcCwgIlNo
b3VsZCBzZXQgc2Nyb2xsVG9wIGltbWVkaWF0ZWx5Iik7CisgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKCk7IH0pOworICAgICAgfSwgYE1haW4gZnJhbWUg
d2l0aCBzbW9vdGggc2Nyb2xsLWJlaGF2aW9yIDsgJHtzY3JvbGxGdW5jdGlvbn0oKSB3aXRoIGlu
c3RhbnQgYmVoYXZpb3JgKTsKKworICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAg
cmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgICAgc2V0U2Nyb2xs
QmVoYXZpb3Ioc3R5bGVkRWxlbWVudCwgInNtb290aEJlaGF2aW9yIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgICAgc2Nyb2xsV2luZG93KHNj
cm9sbGluZ1dpbmRvdywgc2Nyb2xsRnVuY3Rpb24sICJzbW9vdGgiLCBlbGVtZW50VG9SZXZlYWxM
ZWZ0LCBlbGVtZW50VG9SZXZlYWxUb3ApOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0LCAiU2hvdWxkIG5vdCBzZXQg
c2Nyb2xsTGVmdCBpbW1lZGlhdGVseSIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKHNjcm9s
bGluZ1dpbmRvdy5zY3JvbGxZLCBlbGVtZW50VG9SZXZlYWxUb3AsICJTaG91bGQgbm90IHNldCBz
Y3JvbGxUb3AgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQo
c2Nyb2xsaW5nV2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nV2luZG93LnNjcm9sbFgsIGVsZW1lbnRU
b1JldmVhbExlZnQsICJGaW5hbCB2YWx1ZSBvZiBzY3JvbGxMZWZ0Iik7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wLCAi
RmluYWwgdmFsdWUgb2Ygc2Nyb2xsVG9wIik7CisgICAgICAgIH0pOworICAgICB9LCBgTWFpbiBm
cmFtZSB3aXRoIHNtb290aCBzY3JvbGwtYmVoYXZpb3IgOyAke3Njcm9sbEZ1bmN0aW9ufSgpIHdp
dGggc21vb3RoIGJlaGF2aW9yYCk7CisgICAgfSk7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4g
eworICAgICAgcmVzZXRTY3JvbGxGb3JXaW5kb3coc2Nyb2xsaW5nV2luZG93KTsKKyAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yKHN0eWxlZEVsZW1lbnQsICJzbW9vdGhCZWhhdmlvciIpOworICAgICAg
YXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCk7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxZLCAwKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhz
Y3JvbGxpbmdXaW5kb3csICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCwg
ZWxlbWVudFRvUmV2ZWFsVG9wKTsKKyAgICAgIHNjcm9sbFdpbmRvdyhzY3JvbGxpbmdXaW5kb3cs
ICJzY3JvbGwiLCAic21vb3RoIiwgZWxlbWVudFRvUmV2ZWFsTGVmdCAvIDIsIGVsZW1lbnRUb1Jl
dmVhbFRvcCAvIDIpOworICAgICAgcmV0dXJuIHdhaXRGb3JTY3JvbGxFbmQoc2Nyb2xsaW5nV2lu
ZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQpLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHNjcm9sbGluZ1dpbmRvdy5zY3JvbGxYLCBlbGVtZW50VG9SZXZlYWxMZWZ0IC8g
MiwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
Y3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwgZWxlbWVudFRvUmV2ZWFsVG9wIC8gMiwgIkZpbmFsIHZh
bHVlIG9mIHNjcm9sbFRvcCIpOworICAgICAgfSk7CisgICAgfSwgIkFib3J0aW5nIGFuIG9uZ29p
bmcgc21vb3RoIHNjcm9sbGluZyBvbiB0aGUgbWFpbiBmcmFtZSB3aXRoIGFub3RoZXIgc21vb3Ro
IHNjcm9sbGluZyIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgIHJlc2V0U2Ny
b2xsRm9yV2luZG93KHNjcm9sbGluZ1dpbmRvdyk7CisgICAgICBzZXRTY3JvbGxCZWhhdmlvcihz
dHlsZWRFbGVtZW50LCAic21vb3RoQmVoYXZpb3IiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nV2luZG93LnNjcm9sbFgsIDApOworICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdX
aW5kb3cuc2Nyb2xsWSwgMCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAi
c2Nyb2xsIiwgInNtb290aCIsIGVsZW1lbnRUb1JldmVhbExlZnQsIGVsZW1lbnRUb1JldmVhbFRv
cCk7CisgICAgICBzY3JvbGxXaW5kb3coc2Nyb2xsaW5nV2luZG93LCAic2Nyb2xsIiwgImluc3Rh
bnQiLCAwLCAwKTsKKyAgICAgIHJldHVybiB3YWl0Rm9yU2Nyb2xsRW5kKHNjcm9sbGluZ1dpbmRv
dy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWCwgMCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9s
bExlZnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdXaW5kb3cuc2Nyb2xsWSwg
MCwgIkZpbmFsIHZhbHVlIG9mIHNjcm9sbFRvcCIpOworICAgIH0pOworICB9LCAiQWJvcnRpbmcg
YW4gb25nb2luZyBzbW9vdGggc2Nyb2xsaW5nIG9uIHRoZSBtYWluIGZyYW1lIHdpdGggYW4gaW5z
dGFudCBzY3JvbGxpbmciKTsKKworICB9KSk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440729</attachid>
            <date>2021-10-10 10:36:55 -0700</date>
            <delta_ts>2021-10-10 10:50:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204936-20211010103654.patch</filename>
            <type>text/plain</type>
            <size>32047</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzI0MTk5ZTZhMDYyYmQ4
ZTU0ZjdlNTk4NGMxN2I1MjM4N2UzNmRhNS4uZjBjZjc4ZDMzMDFiN2I1ZGM3ZjI1MDcyZjYyMDk4
MjMyMDViZmFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTEwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNtb290aC1zY3Jv
bGwgYW5pbWF0aW9ucyBzaG91bGQgcnVuIGluIHRoZSBVSSBwcm9jZXNzIG9uIGlPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aGFuZGxlU2Nyb2xsUG9zaXRpb25SZXF1ZXN0KTogT24g
aU9TIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoKQorICAgICAgICBkb2Vzbid0IGhh
bmRsZSB0aGUgYW5pbWF0ZWQgc2Nyb2xsLCBzbyB3ZSBuZWVkIHRvIGNhbGwgc3RhcnRBbmltYXRl
ZFNjcm9sbFRvUG9zaXRpb24oKSBmcm9tIGhlcmUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXQpOiBjYWxsIHN0b3BBc3luY0FuaW1hdGVkU2Ny
b2xsKCkKKyAgICAgICAgZm9yIG92ZXJmbG93IHNjcm9sbHMgYXMgd2UgZG8gaW4gRnJhbWVWaWV3
LgorCiAyMDIxLTEwLTA5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJ1biBzbW9vdGggc2Nyb2xsIGFuaW1hdGlvbnMgb24gdGhlIHNjcm9sbGluZyB0
aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggNDIxMmNkMTMzOTk2Yzc5M2U5YzRkYTUzMTMyY2IwOGVkMDgxZjJl
Yy4uNmYzYzdjOTVhNjdkZDg3ODU1YTMxYzQyYjQxZmM0NjJjZWQ4OGIxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2OSBAQAorMjAyMS0xMC0xMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKworICAgICAgICBTbW9vdGgtc2Nyb2xsIGFuaW1hdGlvbnMgc2hvdWxkIHJ1biBp
biB0aGUgVUkgcHJvY2VzcyBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEltcGxlbWVudCBhbmltYXRlZCBzY3JvbGxzIGluIHRoZSBVSSBwcm9j
ZXNzIGZvciBVSS1zaWRlIGNvbXBvc2l0aW5nLiBUaGUgc2Nyb2xsaW5nIHRyZWUKKyAgICAgICAg
ZGVjb2RlZCBpbiB0aGUgVUkgcHJvY2VzcyBoYXMgYSBSZXF1ZXN0ZWRTY3JvbGxEYXRhIHdpdGgg
dGhlICdhbmltYXRlZCcgZmxhZy4gVGhpcyBpcworICAgICAgICBwcm9jZXNzZWQgYnkgaGFuZGxl
U2Nyb2xsUG9zaXRpb25SZXF1ZXN0KCkgYXMgbm9ybWFsLgorCisgICAgICAgIFNjcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6OnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9u
KCkgcmVzcG9uZHMgYnkgY2FsbGluZworICAgICAgICB0aHJvdWdoIHRvIHRoZSBkZWxlZ2F0ZSwg
d2hpY2ggc2ltcGx5IGNhbGxzIC1bc2V0Q29udGVudE9mZnNldDphbmltYXRlZDpZRVNdIG9uIHRo
ZQorICAgICAgICBVSVNjcm9sbFZpZXcuCisKKyAgICAgICAgTWFpbiBmcmFtZSBzY3JvbGxzIGFy
ZSBhIGxpdHRsZSBkaWZmZXJlbnQgYmVjYXVzZSB0aGUgcHJvZ3JhbW1hdGljIHNjcm9sbCBuZWVk
cyB0byBiZQorICAgICAgICBoYW5kbGVkIGFmdGVyIGxheWVyIHRyZWUgY29tbWl0czsgbGV2ZXJh
Z2UgdGhlIGV4aXN0aW5nCisgICAgICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoKSBjb2RlLCBidXQgY2xlYW4gaXQgdXAg
dG8KKyAgICAgICAgc2hhcmUgdGhlIFJlcXVlc3RlZFNjcm9sbERhdGEgdHlwZSwgYW5kIGhhdmUg
Y29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKCkgcmV0dXJuCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UmVxdWVzdGVkU2Nyb2xsRGF0YT4gaW5zdGVhZCBvZiBzdG9yaW5nIGEgcG9pbnRlciB0byBhIHN0
cnVjdCBvbiB0aGUgc3RhY2sgYXMKKyAgICAgICAgaXQgZGlkIGJlZm9yZS4gVGhlIHZhcmlvdXMg
cmVxdWVzdFNjcm9sbCgpIGZ1bmN0aW9ucyB0YWtlIGEgU2Nyb2xsSXNBbmltYXRlZCBmbGFnIHdo
aWNoCisgICAgICAgIHR1cm5zIGludG8gIC1bc2V0Q29udGVudE9mZnNldDphbmltYXRlZDpZRVNd
IGluIFdLV2ViVmlldy4KKworICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmR1
bXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46YW5pbWF0ZWQ6
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246
c2Nyb2xsT3JpZ2luOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmNvbW1pdFNjcm9sbGlu
Z1RyZWVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVO
b2RlUmVxdWVzdHNTY3JvbGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1M6OmNvbW1p
dFN0YXRlQWZ0ZXJDaGlsZHJlbik6IFRoZSBkZWxlZ2F0ZSdzCisgICAgICAgIGNvbW1pdFN0YXRl
QWZ0ZXJDaGlsZHJlbigpIGhhcyB0byBydW4gZmlyc3QgdG8gdXBkYXRlIFVJU2Nyb2xsVmlldyBz
dGF0ZSBiZWZvcmUgdGhlIHByb2dyYW1tYXRpYyBzY3JvbGwKKyAgICAgICAgaXMgaGFuZGxlZCBp
biB0aGUgYmFzZSBjbGFzcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKTogVGhlIGRlbGVnYXRlJ3MKKyAg
ICAgICAgY29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKCkgaGFzIHRvIHJ1biBmaXJzdCB0byB1cGRh
dGUgVUlTY3JvbGxWaWV3IHN0YXRlIGJlZm9yZSB0aGUgcHJvZ3JhbW1hdGljIHNjcm9sbAorICAg
ICAgICBpcyBoYW5kbGVkIGluIHRoZSBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViS2l0OjpTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpzdGFydEFuaW1hdGVkU2Nyb2xsVG9Q
b3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVJT1M6OnN0b3BBbmltYXRlZFNjcm9sbCk6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oOgor
ICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpz
Y3JvbGxMYXllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmFjdGl2ZVRvdWNoQWN0aW9ucyBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1M6OmNsZWFyQWN0aXZlVG91Y2hBY3Rpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TOjpzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnN0b3BBbmltYXRlZFNj
cm9sbCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpyZXF1ZXN0U2Nyb2xsKToKKwogMjAyMS0xMC0wOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSdW4gc21vb3RoIHNjcm9sbCBhbmltYXRpb25zIG9u
IHRoZSBzY3JvbGxpbmcgdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggMzBmYmNh
MWVlNWY5ZjI4YjI4NjMxZGNlNDU0ZTI0NDcxNGNhNjMwZi4uNDBlZjhmOTlkZDQ4MDBkNGIzZTgz
ODFlZDViMzJlMzA2OGE2M2Q4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMjQzLDYg
KzI0MywxMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpoYW5kbGVTY3JvbGxQ
b3NpdGlvblJlcXVlc3QoY29uc3QgUmVxdWVzdGVkU2NybwogICAgIGlmIChzY3JvbGxpbmdUcmVl
KCkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChzY3JvbGxpbmdOb2RlSUQoKSwgcmVx
dWVzdGVkU2Nyb2xsRGF0YSkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChyZXF1ZXN0ZWRT
Y3JvbGxEYXRhLmFuaW1hdGVkID09IFNjcm9sbElzQW5pbWF0ZWQ6OlllcykgeworICAgICAgICBz
dGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihyZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBv
c2l0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHNjcm9sbFRvKHJlcXVlc3Rl
ZFNjcm9sbERhdGEuc2Nyb2xsUG9zaXRpb24sIHJlcXVlc3RlZFNjcm9sbERhdGEuc2Nyb2xsVHlw
ZSwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5jbGFtcGluZyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCA4
ODM4MDBmMDFhMTQ4YmE0ZDhiNDQwNDI2YzRjNzI2YTIwOThmYmE5Li40Y2NmMmI4MWNhNjYyNGNl
NDYwZjRhNDFmNTIyNTU1NGRiZTc1NzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0yNzcsOCArMjc3LDEw
IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c3RvcEFzeW5jQW5pbWF0ZWRTY3Jv
bGwoKQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9P
ZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiBzY3JvbGxPZmZzZXQsIGNvbnN0IFNjcm9sbFBvc2l0
aW9uQ2hhbmdlT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBpZiAoc2Nyb2xsQW5pbWF0aW9uU3Rh
dHVzKCkgPT0gU2Nyb2xsQW5pbWF0aW9uU3RhdHVzOjpBbmltYXRpbmcpCisgICAgaWYgKHNjcm9s
bEFuaW1hdGlvblN0YXR1cygpID09IFNjcm9sbEFuaW1hdGlvblN0YXR1czo6QW5pbWF0aW5nKSB7
CiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOworICAgICAgICBz
dG9wQXN5bmNBbmltYXRlZFNjcm9sbCgpOworICAgIH0KIAogICAgIFNjcm9sbE9mZnNldCBjbGFt
cGVkU2Nyb2xsT2Zmc2V0ID0gb3B0aW9ucy5jbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCkgOiBzY3JvbGxPZmZzZXQ7CiAg
ICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKaW5k
ZXggMmM4Mjg4NjE5YzI2Mjk0MWEzMWJhMDAxOTEyOWYzNWYyZmU4Mjg4Yy4uODJkZjY0ZmY1NjFk
NzY4MDZkMzhjNGY4OGU0Y2ZjNzZjYWU5YTM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcApAQCAtNzM4LDYgKzczOCw3IEBAIHN0
YXRpYyB2b2lkIGR1bXAoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZSYgbm9kZSwgYm9vbCBjCiAgICAgICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVl
c3RlZC1zY3JvbGwtcG9zaXRpb24iLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLnNjcm9sbFBvc2l0aW9u
KTsKICAgICAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1wb3NpdGlv
bi1pcy1wcm9ncmFtYXRpYyIsIHJlcXVlc3RlZFNjcm9sbERhdGEuc2Nyb2xsVHlwZSk7CiAgICAg
ICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24tY2xhbXBp
bmciLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLmNsYW1waW5nKTsKKyAgICAgICAgICAgIHRzLmR1bXBQ
cm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1wb3NpdGlvbi1hbmltYXRlZCIsIHJlcXVlc3RlZFNj
cm9sbERhdGEuYW5pbWF0ZWQgPT0gU2Nyb2xsSXNBbmltYXRlZDo6WWVzKTsKICAgICAgICAgfQog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9T
LmgKaW5kZXggNWY3NDRhNjM5MDYzOTgwYmVlY2ZiYzhmYzQ0MWU5ZWNlN2ZjZWQwNy4uNmZmOGJh
NmNjMWFmYWQ4NWRmMDM1ZDA4NGQ4YzA4ZmQ0NDgyOWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCkBAIC02Nyw3ICs2Nyw3IEBAIGVudW0g
Y2xhc3MgVGFwSGFuZGxpbmdSZXN1bHQgOiB1aW50OF90OwogCiAtIChSZWZQdHI8V2ViS2l0OjpW
aWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90OwogCi0tICh2b2lkKV9zY3JvbGxUb0NvbnRl
bnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3Jv
bGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbjsKKy0gKHZvaWQpX3Njcm9s
bFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0
aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2luIGFuaW1hdGVk
OihCT09MKWFuaW1hdGVkOwogLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3JlOjpGbG9hdFJl
Y3QpdGFyZ2V0UmVjdCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIG1pbmltdW1T
Y3JvbGxEaXN0YW5jZTooZmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNlOwogCiAtIChkb3VibGUp
X2luaXRpYWxTY2FsZUZhY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdJT1MubW0KaW5kZXggZTA2OGY4M2JhYTBiODdhZWIyZTg5NTA0MmZkY2YzNTRi
OWViNTQ3ZS4uNDMwZDMzMmRmMDRjM2M4N2FhNDViMDBjOWViNzNkN2IyZWJlYWY1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTEx
MzMsNyArMTEzMyw3IEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFpbkNvbnRl
bnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250ZW50T2ZmCiAgICAgcmV0dXJuIGNvbnRl
bnRPZmZzZXQuY29uc3RyYWluZWRCZXR3ZWVuKFdlYkNvcmU6OkZsb2F0UG9pbnQoKSwgV2ViQ29y
ZTo6RmxvYXRQb2ludChtYXhpbXVtQ29udGVudE9mZnNldCkpOwogfQogCi0tICh2b2lkKV9zY3Jv
bGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3Np
dGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBvaW50KXNjcm9sbE9yaWdpbgorLSAodm9p
ZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Ny
b2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3JvbGxPcmlnaW4g
YW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQKIHsKICAgICBpZiAoX2NvbW1pdERpZFJlc3RvcmVTY3Jv
bGxQb3NpdGlvbiB8fCBfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBXZWJLaXQ6OkR5bmFt
aWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKQogICAgICAgICByZXR1cm47CkBAIC0x
MTU2LDcgKzExNTYsNyBAQCAtICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjoo
V2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbAogICAgIFtfc2Nyb2xsVmll
dyBfc3RvcFNjcm9sbGluZ0FuZFpvb21pbmdBbmltYXRpb25zXTsKIAogICAgIGlmICghQ0dQb2lu
dEVxdWFsVG9Qb2ludChjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFtfc2Ny
b2xsVmlldyBjb250ZW50T2Zmc2V0XSkpCi0gICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50
T2Zmc2V0OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlc107CisgICAgICAgIFtf
c2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29y
ZGluYXRlcyBhbmltYXRlZDphbmltYXRlZF07CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHdl
IGhhdmVuJ3QgY2hhbmdlZCBhbnl0aGluZywgdGhlcmUgd291bGQgbm90IGJlIGFueSBWaXNpYmxl
Q29udGVudFJlY3QgdXBkYXRlIHNlbnQgdG8gdGhlIGNvbnRlbnQuCiAgICAgICAgIC8vIFRoZSBX
ZWJQcm9jZXNzIHdvdWxkIGtlZXAgdGhlIGludmFsaWQgY29udGVudE9mZnNldCBhcyBpdHMgc2Ny
b2xsIHBvc2l0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDdhMWEz
ODc2ZjFiNzcwODFmMWJkMjI4MTk1ZDY5OGZhMGZmY2Q4MDQuLjc5YTEwZDQ5NWMxYmZkYjc2NGIy
MzhlODdiZGEzMGFmYmYyYzYzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
QEAgLTIxMyw3ICsyMTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZXdOZWVk
c0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgPSAwOwogCiAgICAgLy8gVGVsbCB0aGUg
dmlldyB0byBzY3JvbGwgdG8gdGhlIGdpdmVuIHBvc2l0aW9uLCBhbmQgd2hldGhlciB0aGlzIHdh
cyBhIHByb2dyYW1tYXRpYyBzY3JvbGwuCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGwo
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBzY3JvbGxPcmlnaW4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNj
cm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsSXNBbmltYXRlZCkg
PSAwOwogCiAgICAgLy8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiAobm90IG5l
Y2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwgYmVjYXVz
ZSBvZiBzY2FsaW5nLCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UG9p
bnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCAxYjA0MzkxYTA4MzhiOTJhZTQwMGI3OWQ5ZWU3
ZDE0Y2UyYzk0NTgxLi42YTE2ZDA4YjZjNGQ0MDEzNDA5MWQzMTU5ZWRlZGFjOTI5NGI4MzMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAt
MjIyLDggKzIyMiw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29t
bWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAgICAgfQogCiAjaWYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKLSAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
OjpSZXF1ZXN0ZWRTY3JvbGxJbmZvIHJlcXVlc3RlZFNjcm9sbEluZm87Ci0gICAgbV93ZWJQYWdl
UHJveHkuc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpLT5jb21taXRTY3JvbGxpbmdUcmVlU3Rh
dGUoc2Nyb2xsaW5nVHJlZVRyYW5zYWN0aW9uLCByZXF1ZXN0ZWRTY3JvbGxJbmZvKTsKKyAgICBh
dXRvIHJlcXVlc3RlZFNjcm9sbCA9IG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkoKS0+Y29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKHNjcm9sbGluZ1RyZWVUcmFuc2FjdGlv
bik7CiAjZW5kaWYKIAogICAgIG1fd2ViUGFnZVByb3h5LmRpZENvbW1pdExheWVyVHJlZShsYXll
clRyZWVUcmFuc2FjdGlvbik7CkBAIC0yMzYsOCArMjM1LDggQEAgdm9pZCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVl
VHJhbnMKIAogICAgIC8vIEhhbmRsZSByZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMg
ZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUgdHJhbnNhY3Rpb24gYWZ0ZXIgZGlkQ29tbWl0TGF5ZXJU
cmVlKCkKICAgICAvLyBoYXMgdXBkYXRlZCB0aGUgdmlldyBzaXplIGJhc2VkIG9uIHRoZSBjb250
ZW50IHNpemUuCi0gICAgaWYgKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdHNTY3JvbGxQb3Np
dGlvblVwZGF0ZSkKLSAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0
ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBsYXllclRyZWVUcmFuc2FjdGlv
bi5zY3JvbGxPcmlnaW4oKSk7CisgICAgaWYgKHJlcXVlc3RlZFNjcm9sbCkKKyAgICAgICAgbV93
ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGwtPnNjcm9sbFBvc2l0aW9u
LCBsYXllclRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKSwgcmVxdWVzdGVkU2Nyb2xsLT5h
bmltYXRlZCk7CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIAogICAgIGlmICht
X2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGU1NjU3OGFhOGIxYzZjZmZlNTg5MjRm
ZjMyYWU0Y2E5YzZlYjk5ZDQuLjFkY2M3ZmRlOWZiZmEyZTRiNjEwY2RhYTBmZTgyZTZiZTQ0MGNh
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5j
cHAKQEAgLTc2LDE2ICs3NiwxNiBAQCBjb25zdCBSZW1vdGVMYXllclRyZWVIb3N0KiBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpsYXllclRyZWVIb3N0KCkgY29ucwogICAgIHJldHVy
biAmcmVtb3RlRHJhd2luZ0FyZWEucmVtb3RlTGF5ZXJUcmVlSG9zdCgpOwogfQogCi12b2lkIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShj
b25zdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwg
UmVxdWVzdGVkU2Nyb2xsSW5mbyYgcmVxdWVzdGVkU2Nyb2xsSW5mbykKK3N0ZDo6b3B0aW9uYWw8
UmVxdWVzdGVkU2Nyb2xsRGF0YT4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y29t
bWl0U2Nyb2xsaW5nVHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJh
bnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewotICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbyA9ICZy
ZXF1ZXN0ZWRTY3JvbGxJbmZvOworICAgIG1fcmVxdWVzdGVkU2Nyb2xsID0geyB9OwogCiAgICAg
YXV0byBzdGF0ZVRyZWUgPSBXVEZNb3ZlKGNvbnN0X2Nhc3Q8UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JUcmFuc2FjdGlvbiY+KHRyYW5zYWN0aW9uKS5zY3JvbGxpbmdTdGF0ZVRyZWUoKSk7CiAK
ICAgICBhdXRvKiBsYXllclRyZWVIb3N0ID0gdGhpcy0+bGF5ZXJUcmVlSG9zdCgpOwogICAgIGlm
ICghbGF5ZXJUcmVlSG9zdCkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgcmV0dXJuOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIGNvbm5lY3RTdGF0
ZU5vZGVMYXllcnMoKnN0YXRlVHJlZSwgKmxheWVyVHJlZUhvc3QpOwpAQCAtOTMsNyArOTMsNyBA
QCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmNvbW1pdFNjcm9sbGluZ1Ry
ZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbAogCiAgICAgZXN0YWJsaXNoTGF5ZXJUcmVlU2Nyb2xs
aW5nUmVsYXRpb25zKCpsYXllclRyZWVIb3N0KTsKIAotICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5m
byA9IG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9yZXF1ZXN0ZWRTY3JvbGws
IHsgfSk7CiB9CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTI0MSwxNiArMjQxLDEz
IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5v
ZGVEaWRTdG9wQW5pbWF0ZWRTY3JvbGwoU2NyCiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNz
YWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OkFuaW1hdGVkU2Nyb2xsRGlkRW5kRm9y
Tm9kZShzY3JvbGxlZE5vZGVJRCkpOwogfQogCi1ib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlE
IHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xs
VHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykKK2Jvb2wgUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdO
b2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IFJlcXVlc3RlZFNjcm9sbERhdGEmIHJlcXVlc3Qp
CiB7Ci0gICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RTY3JvbGxpbmdOb2RlSUQoKSAmJiBt
X3JlcXVlc3RlZFNjcm9sbEluZm8pIHsKLSAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBhbmltYXRl
ZCBzY3JvbGxzLgotICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RzU2Nyb2xs
UG9zaXRpb25VcGRhdGUgPSB0cnVlOwotICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJl
cXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbFR5cGUgPT0gU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljOwotICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247CisgICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJv
b3RTY3JvbGxpbmdOb2RlSUQoKSkgeworICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbCA9IHJlcXVl
c3Q7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiBmYWxz
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgK
aW5kZXggYWMyNjEyMTQ2ODk4M2RkM2E4YTc4N2UwZDBhODk5ZTI4MDFkMGFkNy4uMzVhYTMyNDUz
M2ViNmI0YjViNDRiMzRjZjliYmI5ODI5NTgwODRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIEluZm9ybSB0aGUgd2ViIHByb2Nlc3MgdGhhdCB0aGUgc2Nyb2xsIHBvc2l0aW9uIGNo
YW5nZWQgKGNhbGxlZCBmcm9tIHRoZSBzY3JvbGxpbmcgdHJlZSkKICAgICB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLSAgICBib29sIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVz
dHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6U2Nyb2xsVHlwZSwgV2ViQ29yZTo6U2Nyb2xs
Q2xhbXBpbmcpOworICAgIGJvb2wgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJD
b3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OlJlcXVlc3RlZFNjcm9sbERhdGEm
KTsKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU3RvcEFuaW1hdGVkU2Nyb2xsKFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRCk7CiAKICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgZXZlbnRU
cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUsIFdlYkNvcmU6
OkludFBvaW50KSBjb25zdDsKQEAgLTgwLDEyICs4MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBS
ZW1vdGVMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KCkgY29uc3Q7CiAgICAgV2ViUGFnZVBy
b3h5JiB3ZWJQYWdlUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VQcm94eTsgfQogCi0g
ICAgc3RydWN0IFJlcXVlc3RlZFNjcm9sbEluZm8gewotICAgICAgICBib29sIHJlcXVlc3RzU2Ny
b2xsUG9zaXRpb25VcGRhdGUgeyB9OwotICAgICAgICBib29sIHJlcXVlc3RJc1Byb2dyYW1tYXRp
Y1Njcm9sbCB7IH07Ci0gICAgICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgcmVxdWVzdGVkU2Nyb2xs
UG9zaXRpb247Ci0gICAgfTsKLSAgICB2b2lkIGNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25z
dCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uJiwgUmVxdWVzdGVkU2Nyb2xs
SW5mbyYpOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVxdWVzdGVkU2Nyb2xsRGF0YT4g
Y29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
VHJhbnNhY3Rpb24mKTsKIAogICAgIHZvaWQgc2V0UHJvcGFnYXRlc01haW5GcmFtZVNjcm9sbHMo
Ym9vbCBwcm9wYWdhdGVzTWFpbkZyYW1lU2Nyb2xscykgeyBtX3Byb3BhZ2F0ZXNNYWluRnJhbWVT
Y3JvbGxzID0gcHJvcGFnYXRlc01haW5GcmFtZVNjcm9sbHM7IH0KICAgICBib29sIHByb3BhZ2F0
ZXNNYWluRnJhbWVTY3JvbGxzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9wYWdhdGVzTWFpbkZyYW1l
U2Nyb2xsczsgfQpAQCAtMTI2LDcgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5
JiBtX3dlYlBhZ2VQcm94eTsKICAgICBSZWZQdHI8UmVtb3RlU2Nyb2xsaW5nVHJlZT4gbV9zY3Jv
bGxpbmdUcmVlOwogICAgIEhhc2hNYXA8dW5zaWduZWQsIE9wdGlvblNldDxXZWJDb3JlOjpUb3Vj
aEFjdGlvbj4+IG1fdG91Y2hBY3Rpb25zQnlUb3VjaElkZW50aWZpZXI7Ci0gICAgUmVxdWVzdGVk
U2Nyb2xsSW5mbyogbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvIHsgbnVsbHB0ciB9OworICAgIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6UmVxdWVzdGVkU2Nyb2xsRGF0YT4gbV9yZXF1ZXN0ZWRTY3JvbGw7
CiAgICAgUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZSBtX3VpU3RhdGU7CiAgICAgc3RkOjpvcHRpb25h
bDx1bnNpZ25lZD4gbV9jdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4OwogICAgIHN0ZDo6
b3B0aW9uYWw8dW5zaWduZWQ+IG1fY3VycmVudFZlcnRpY2FsU25hcFBvaW50SW5kZXg7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMjk4NzBjNzU5NWM3ZWE4NmE2ZThiYzhiOGY1
NDBmNDJjODg1MDBlMi4uN2RkYTMzNjNlMDViM2QwZjJjNDQ0Yjk5ZDFlMmM1MzQxY2RhM2IzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQg
UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTdG9wQW5pbWF0ZWRTY3Jv
bGwoU2Nyb2xsaW5nVHJlZVNjCiAKIGJvb2wgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5n
VHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBSZXF1
ZXN0ZWRTY3JvbGxEYXRhJiByZXF1ZXN0KQogewotICAgIHJldHVybiBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHJlcXVl
c3Quc2Nyb2xsUG9zaXRpb24sIHJlcXVlc3Quc2Nyb2xsVHlwZSwgcmVxdWVzdC5jbGFtcGluZyk7
CisgICAgcmV0dXJuIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9k
ZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgcmVxdWVzdCk7CiB9CiAKIFJlZjxTY3JvbGxpbmdUcmVl
Tm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xs
aW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVJT1MubW0KaW5kZXggMTlmYTQ5ZjU0YmEyNmRiYzFmMTE4Y2IxOGJlOGQ0MjQxNWY5MGYxNS4u
ZGQ5MTIyY2I0YTdjMDliOTM2Y2M5ZDVkYzI2NmU3MDZhODc0N2E4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZUlPUy5tbQpAQCAtODQsMTEgKzg0LDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTCiAKIHZv
aWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y29tbWl0U3RhdGVB
ZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewotICAg
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJl
bihzdGF0ZU5vZGUpOwotCiAgICAgY29uc3QgYXV0byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93
bmNhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CiAgICAg
aWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlKQogICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxl
Z2F0ZS0+Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKHNjcm9sbGluZ1N0YXRlTm9kZSk7CisKKyAg
ICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRy
ZW4oc3RhdGVOb2RlKTsKIH0KIAogRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlUmVtb3RlSU9TOjptaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1Mu
aAppbmRleCA4YjZlOTFlMmY3MThjNzhhMjY3NTE5Nzc5ZDllZmZjYzNkNTY0ODllLi5kZjFiZTky
YWM5NDNjZTEzOWIyMmM2ZjI0Y2RmOWQwMmY2YWMxMjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaApAQCAtMzUs
NyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUzsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZUlPUyA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlIHsKK2NsYXNzIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZSB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlSU9TPiBjcmVhdGUoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCk7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZUlPUygpOwpAQCAtNDUsMTAgKzQ1LDEzIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUyhXZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiwg
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKIAotICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVD
aGlsZHJlbihjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZU5vZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4o
Y29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgZmluYWw7CisgICAgdm9pZCBjb21t
aXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikg
ZmluYWw7CiAgICAgCi0gICAgdm9pZCByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkgZmluYWw7CisKKyAgICBi
b29sIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQpIGZp
bmFsOworICAgIHZvaWQgc3RvcEFuaW1hdGVkU2Nyb2xsKCkgZmluYWw7CiAKICAgICAvLyBUaGUg
ZGVsZWdhdGUgaXMgbm9uLW51bGwgZm9yIHN1YmZyYW1lcy4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUz4gbV9zY3JvbGxpbmdOb2RlRGVs
ZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1MubW0KaW5kZXggZmNhYzlmZGViYjA4ZDlhMTA4ZmEwNTIxMjU3ZDUw
NmQyNTAyZGU5OS4uMTQ4ZGViMWMzNTFhZWY4OTdkYzUyNDE2NzYxY2M0MGY2YjA1MDNkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZUlPUy5tbQpAQCAtNjcsMTAgKzY3LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBXZWJD
CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0U3Rh
dGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewot
ICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJD
aGlsZHJlbihzdGF0ZU5vZGUpOwotCiAgICAgY29uc3QgYXV0byYgc2Nyb2xsaW5nU3RhdGVOb2Rl
ID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpOwogICAg
IG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlLT5jb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oc2Nyb2xs
aW5nU3RhdGVOb2RlKTsKKworICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6
OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihzdGF0ZU5vZGUpOwogfQogCiB2b2lkIFNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMo
KQpAQCAtNzgsNiArNzgsMTYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlSU9TOjpyZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkKICAgICBtX3Njcm9sbGluZ05vZGVE
ZWxlZ2F0ZS0+cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpOwogfQogCitib29sIFNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6OnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0
aW9uKEZsb2F0UG9pbnQgZGVzdGluYXRpb25Qb3NpdGlvbikKK3sKKyAgICByZXR1cm4gbV9zY3Jv
bGxpbmdOb2RlRGVsZWdhdGUtPnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKGRlc3RpbmF0
aW9uUG9zaXRpb24pOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVJT1M6OnN0b3BBbmltYXRlZFNjcm9sbCgpCit7CisgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdh
dGUtPnN0b3BBbmltYXRlZFNjcm9sbCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCmluZGV4IGEzYTI0
Mjc4MmM2MDU2MWFjYWU4M2JiNDk2M2Q4ZTIwOWY4Njk1YTAuLjk5ZDRmNDZhMWFiNDNiMjk3MzQw
OGMzMzNhZmFhMDk4ODk1ZDQ2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlP
Uy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCkBAIC00Niw3ICs0Niw3IEBAIGNs
YXNzIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
Y2xhc3MgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUyA6IHB1YmxpYyBXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlIHsKK2NsYXNzIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUyhXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYpOwpAQCAtNzgs
MTAgKzc4LDEwIEBAIHB1YmxpYzoKICAgICBVSVNjcm9sbFZpZXcgKmZpbmRBY3RpbmdTY3JvbGxQ
YXJlbnQoVUlTY3JvbGxWaWV3ICopOwogICAgIFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldygpIGNv
bnN0OwogCi1wcml2YXRlOgotICAgIGJvb2wgc3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24o
RmxvYXRQb2ludCkgZmluYWw7CisgICAgYm9vbCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlv
bihXZWJDb3JlOjpGbG9hdFBvaW50KSBmaW5hbDsKICAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9s
bCgpIGZpbmFsOwogCitwcml2YXRlOgogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3Njcm9sbExh
eWVyOwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsKICAg
ICBSZXRhaW5QdHI8V0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlPiBtX3Njcm9sbFZp
ZXdEZWxlZ2F0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQppbmRleCAxM2E2MDQ2YzllNzcxNTc5ZWViNWIyOTA3
NTMzZjgwYzU5MjFiMmNmLi42YzM2N2Y0MjM5OTNiMjU4YTI1NmNkYmZkYTJlNDY4MDMxYzVmNjll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9z
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TLm1tCkBAIC00NSw3ICs0NSw2IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tP
YmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL1NldEZvclNjb3BlLmg+CiAKLQogQGltcGxl
bWVudGF0aW9uIFdLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZQogCiAtIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhTY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlOihXZWJLaXQ6OlNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MqKWRlbGVnYXRlCkBAIC0yOTQsMTUgKzI5Mywy
MSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0
YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbAogICAgIH0KIH0KIAotYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlv
bihGbG9hdFBvaW50KQorYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
OjpzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9u
KQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGF1
dG8gc2Nyb2xsT2Zmc2V0ID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlv
bihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2luKCkpKTsKKworICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9m
ZnNldDpzY3JvbGxPZmZzZXQgYW5pbWF0ZWQ6WUVTXTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUzo6c3RvcEFuaW1hdGVkU2Nyb2xsKCkKIHsKLSAgICAvLyBGSVhNRTog
SW1wbGVtZW50LgorICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIFtzY3JvbGxW
aWV3KCkgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CisgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogfQogCiAjaWYgSEFWRShVSVNDUk9MTFZJRVdfQVNZTkNIUk9OT1VT
X1NDUk9MTF9FVkVOVF9IQU5ETElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDYxYzA3ZjZkZmI5YjQ2MzY1ZDc2N2U0MTMzY2JkNjhkYTBkMzJhN2MuLmQ5
ZDllN2FlYTRhZjU0ZWJkNDU4Zjc0MGQyZjUwMjc3NjdhMjRmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjA2Nyw5ICsyMDY3LDkgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAgICAg
cGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQm
IHNjcm9sbE9yaWdpbiwgU2Nyb2xsSXNBbmltYXRlZCBhbmltYXRlZCkKIHsKLSAgICBwYWdlQ2xp
ZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBw
YWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luLCBh
bmltYXRlZCk7CiB9CiAKIFdlYkNvcmU6OkZsb2F0UG9pbnQgV2ViUGFnZVByb3h5Ojp2aWV3U2Ny
b2xsUG9zaXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCA3NTFjYzQ3OWVjOWZkNjljZDM3MzA3NzM3MjgwMTc1MGU3OWIyYzJkLi5jNWQ1NjMzYWJj
ODkyNDdlN2JjNDRlZGE0NmNhMjQ1YzA1Mjg1OTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtNzEyLDcgKzcxMiw3IEBAIHB1YmxpYzoKICAgICBQYWdlQ2xpZW50
JiBwYWdlQ2xpZW50KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29u
c3QgV2ViQ29yZTo6UmVnaW9uJik7Ci0gICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
c2Nyb2xsT3JpZ2luKTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxP
cmlnaW4sIFdlYkNvcmU6OlNjcm9sbElzQW5pbWF0ZWQpOwogICAgIAogICAgIFdlYkNvcmU6OkZs
b2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggMGNlOGVmZjM0ZjdmNzIw
ZTY4MDgwYjUwNmUzOTA0OTYzMzNjNjlmYi4uZWMzMGU3YmRiZGEwMDVmMWZkMGJkODM5ODdkYWQy
NzEyOWQyYmIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBQYWdlQ2xpZW50
CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVh
UHJveHkoV2ViUHJvY2Vzc1Byb3h5Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWV3TmVlZHNE
aXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVz
dFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1
ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1h
dGVkKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlv
bigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsK
ICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDljMzI0MzRiODAx
M2I5ZmMzZmJhOGI5NDY5ZDY2ODYyMzE5ZmEzY2MuLjdhMzlhY2E5OWMxOGQzNTk2ZDY1YjhiZDBh
NWUyZDM0YTk5MWUwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KQEAgLTEwNCw5ICsxMDQsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFJlZ2lvbiYpCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9s
bFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBTY3JvbGxJc0FuaW1hdGVk
IGFuaW1hdGVkKQogewotICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0
aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW5dOworICAgIFttX3dl
YlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9s
bE9yaWdpbjpzY3JvbGxPcmlnaW4gYW5pbWF0ZWQ6YW5pbWF0ZWQgPT0gU2Nyb2xsSXNBbmltYXRl
ZDo6WWVzXTsKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBQYWdlQ2xpZW50SW1wbDo6dmlld1Nj
cm9sbFBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLmgKaW5kZXggZWFmZGQ0N2EyOGZiYThjM2U5MDIwOGFmZDQyM2UyYjAxMjI3MjRk
ZC4uZTI2MTI3Y2JmMTc2ZmViYWRkNDY1NzViNjE0OTgxZGE3YTE5OTQyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTY1LDcgKzY1
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBQYWdlQ2xpZW50CiAgICAgc3RkOjp1bmlxdWVfcHRyPERy
YXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJl
Z2lvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9s
bE9yaWdpbikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
b2xsT3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkKSBvdmVycmlkZTsKICAgICBXZWJD
b3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogCiAgICAgV2Vi
Q29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDI2YTA5OGI5YWFlM2RhOTIy
OTIyYWE4OWM5ODkyMzM5MDljNjExOTYuLjhmZWEzNWMxMGIyNDZkMDk3OTk5ZmE3NzQxYjM2MTdi
MmQ3ODQzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMubW0KQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRW
aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwoY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4p
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBTY3JvbGxJc0FuaW1h
dGVkKQogewogfQogCg==
</data>
<flag name="commit-queue"
          id="464769"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440730</attachid>
            <date>2021-10-10 10:49:32 -0700</date>
            <delta_ts>2021-10-10 11:42:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204936-20211010104931.patch</filename>
            <type>text/plain</type>
            <size>39095</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzI0MTk5ZTZhMDYyYmQ4
ZTU0ZjdlNTk4NGMxN2I1MjM4N2UzNmRhNS4uZjBjZjc4ZDMzMDFiN2I1ZGM3ZjI1MDcyZjYyMDk4
MjMyMDViZmFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTEwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNtb290aC1zY3Jv
bGwgYW5pbWF0aW9ucyBzaG91bGQgcnVuIGluIHRoZSBVSSBwcm9jZXNzIG9uIGlPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aGFuZGxlU2Nyb2xsUG9zaXRpb25SZXF1ZXN0KTogT24g
aU9TIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoKQorICAgICAgICBkb2Vzbid0IGhh
bmRsZSB0aGUgYW5pbWF0ZWQgc2Nyb2xsLCBzbyB3ZSBuZWVkIHRvIGNhbGwgc3RhcnRBbmltYXRl
ZFNjcm9sbFRvUG9zaXRpb24oKSBmcm9tIGhlcmUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXQpOiBjYWxsIHN0b3BBc3luY0FuaW1hdGVkU2Ny
b2xsKCkKKyAgICAgICAgZm9yIG92ZXJmbG93IHNjcm9sbHMgYXMgd2UgZG8gaW4gRnJhbWVWaWV3
LgorCiAyMDIxLTEwLTA5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJ1biBzbW9vdGggc2Nyb2xsIGFuaW1hdGlvbnMgb24gdGhlIHNjcm9sbGluZyB0
aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggNDIxMmNkMTMzOTk2Yzc5M2U5YzRkYTUzMTMyY2IwOGVkMDgxZjJl
Yy4uZjBjYzkxMDc2OWU4OGE2YWVmYzIwZWUyMjZlMGNhMTFiNzAxYjI1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw4MSBAQAorMjAyMS0xMC0xMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKworICAgICAgICBTbW9vdGgtc2Nyb2xsIGFuaW1hdGlvbnMgc2hvdWxkIHJ1biBp
biB0aGUgVUkgcHJvY2VzcyBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEltcGxlbWVudCBhbmltYXRlZCBzY3JvbGxzIGluIHRoZSBVSSBwcm9j
ZXNzIGZvciBVSS1zaWRlIGNvbXBvc2l0aW5nLiBUaGUgc2Nyb2xsaW5nIHRyZWUKKyAgICAgICAg
ZGVjb2RlZCBpbiB0aGUgVUkgcHJvY2VzcyBoYXMgYSBSZXF1ZXN0ZWRTY3JvbGxEYXRhIHdpdGgg
dGhlICdhbmltYXRlZCcgZmxhZy4gVGhpcyBpcworICAgICAgICBwcm9jZXNzZWQgYnkgaGFuZGxl
U2Nyb2xsUG9zaXRpb25SZXF1ZXN0KCkgYXMgbm9ybWFsLgorCisgICAgICAgIFNjcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6OnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9u
KCkgcmVzcG9uZHMgYnkgY2FsbGluZworICAgICAgICB0aHJvdWdoIHRvIHRoZSBkZWxlZ2F0ZSwg
d2hpY2ggc2ltcGx5IGNhbGxzIC1bc2V0Q29udGVudE9mZnNldDphbmltYXRlZDpZRVNdIG9uIHRo
ZQorICAgICAgICBVSVNjcm9sbFZpZXcuCisKKyAgICAgICAgTWFpbiBmcmFtZSBzY3JvbGxzIGFy
ZSBhIGxpdHRsZSBkaWZmZXJlbnQgYmVjYXVzZSB0aGUgcHJvZ3JhbW1hdGljIHNjcm9sbCBuZWVk
cyB0byBiZQorICAgICAgICBoYW5kbGVkIGFmdGVyIGxheWVyIHRyZWUgY29tbWl0czsgbGV2ZXJh
Z2UgdGhlIGV4aXN0aW5nCisgICAgICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoKSBjb2RlLCBidXQgY2xlYW4gaXQgdXAg
dG8KKyAgICAgICAgc2hhcmUgdGhlIFJlcXVlc3RlZFNjcm9sbERhdGEgdHlwZSwgYW5kIGhhdmUg
Y29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKCkgcmV0dXJuCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UmVxdWVzdGVkU2Nyb2xsRGF0YT4gaW5zdGVhZCBvZiBzdG9yaW5nIGEgcG9pbnRlciB0byBhIHN0
cnVjdCBvbiB0aGUgc3RhY2sgYXMKKyAgICAgICAgaXQgZGlkIGJlZm9yZS4gVGhlIHZhcmlvdXMg
cmVxdWVzdFNjcm9sbCgpIGZ1bmN0aW9ucyB0YWtlIGEgU2Nyb2xsSXNBbmltYXRlZCBmbGFnIHdo
aWNoCisgICAgICAgIHR1cm5zIGludG8gIC1bc2V0Q29udGVudE9mZnNldDphbmltYXRlZDpZRVNd
IGluIFdLV2ViVmlldy4KKworICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmR1
bXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3SU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9s
bFBvc2l0aW9uOnNjcm9sbE9yaWdpbjphbmltYXRlZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46XSk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFn
ZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpjb21taXRT
Y3JvbGxpbmdUcmVlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxp
bmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
Ojpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4pOiBUaGUgZGVsZWdhdGUncworICAgICAgICBjb21t
aXRTdGF0ZUFmdGVyQ2hpbGRyZW4oKSBoYXMgdG8gcnVuIGZpcnN0IHRvIHVwZGF0ZSBVSVNjcm9s
bFZpZXcgc3RhdGUgYmVmb3JlIHRoZSBwcm9ncmFtbWF0aWMgc2Nyb2xsCisgICAgICAgIGlzIGhh
bmRsZWQgaW4gdGhlIGJhc2UgY2xhc3MuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IFRoZSBkZWxlZ2F0
ZSdzCisgICAgICAgIGNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbigpIGhhcyB0byBydW4gZmlyc3Qg
dG8gdXBkYXRlIFVJU2Nyb2xsVmlldyBzdGF0ZSBiZWZvcmUgdGhlIHByb2dyYW1tYXRpYyBzY3Jv
bGwKKyAgICAgICAgaXMgaGFuZGxlZCBpbiB0aGUgYmFzZSBjbGFzcy4KKyAgICAgICAgKFdlYktp
dDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6c3RhcnRBbmltYXRlZFNj
cm9sbFRvUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlSU9TOjpzdG9wQW5pbWF0ZWRTY3JvbGwpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MuaDoKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUzo6c2Nyb2xsTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjphY3RpdmVUb3VjaEFjdGlvbnMgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TOjpjbGVhckFjdGl2ZVRvdWNoQWN0aW9ucyk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUzo6c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzdG9wQW5p
bWF0ZWRTY3JvbGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgICogVUlQcm9jZXNzL3BsYXlzdGF0aW9u
L1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJl
cXVlc3RTY3JvbGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50
SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgICog
VUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5oOgorCiAyMDIxLTEwLTA5ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1biBzbW9vdGggc2Nyb2xs
IGFuaW1hdGlvbnMgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cAppbmRleCAzMGZiY2ExZWU1ZjlmMjhiMjg2MzFkY2U0NTRlMjQ0NzE0Y2E2MzBmLi40MGVmOGY5
OWRkNDgwMGQ0YjNlODM4MWVkNWIzMmUzMDY4YTYzZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwCkBAIC0yNDMsNiArMjQzLDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmhhbmRsZVNjcm9sbFBvc2l0aW9uUmVxdWVzdChjb25zdCBSZXF1ZXN0ZWRTY3JvCiAgICAgaWYg
KHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGlu
Z05vZGVJRCgpLCByZXF1ZXN0ZWRTY3JvbGxEYXRhKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKHJlcXVlc3RlZFNjcm9sbERhdGEuYW5pbWF0ZWQgPT0gU2Nyb2xsSXNBbmltYXRlZDo6WWVz
KSB7CisgICAgICAgIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKHJlcXVlc3RlZFNjcm9s
bERhdGEuc2Nyb2xsUG9zaXRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgc2Ny
b2xsVG8ocmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xs
RGF0YS5zY3JvbGxUeXBlLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLmNsYW1waW5nKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWEuY3BwCmluZGV4IDg4MzgwMGYwMWExNDhiYTRkOGI0NDA0MjZjNGM3MjZhMjA5OGZiYTkuLjRj
Y2YyYjgxY2E2NjI0Y2U0NjBmNGE0MWY1MjI1NTU0ZGJlNzU3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKQEAg
LTI3Nyw4ICsyNzcsMTAgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzdG9wQXN5
bmNBbmltYXRlZFNjcm9sbCgpCiAKIFNjcm9sbE9mZnNldCBSZW5kZXJMYXllclNjcm9sbGFibGVB
cmVhOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgY29u
c3QgU2Nyb2xsUG9zaXRpb25DaGFuZ2VPcHRpb25zJiBvcHRpb25zKQogewotICAgIGlmIChzY3Jv
bGxBbmltYXRpb25TdGF0dXMoKSA9PSBTY3JvbGxBbmltYXRpb25TdGF0dXM6OkFuaW1hdGluZykK
KyAgICBpZiAoc2Nyb2xsQW5pbWF0aW9uU3RhdHVzKCkgPT0gU2Nyb2xsQW5pbWF0aW9uU3RhdHVz
OjpBbmltYXRpbmcpIHsKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25z
KCk7CisgICAgICAgIHN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsKCk7CisgICAgfQogCiAgICAgU2Ny
b2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBvcHRpb25zLmNsYW1waW5nID09IFNjcm9s
bENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNj
cm9sbE9mZnNldDsKICAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxP
ZmZzZXQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmNwcAppbmRleCAyYzgyODg2MTljMjYyOTQxYTMxYmEwMDE5MTI5ZjM1ZjJmZTgyODhj
Li44MmRmNjRmZjU2MWQ3NjgwNmQzOGM0Zjg4ZTRjZmM3NmNhZTlhMzQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC03Mzgs
NiArNzM4LDcgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAgICAgICAgICAgIHRzLmR1bXBQ
cm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1wb3NpdGlvbiIsIHJlcXVlc3RlZFNjcm9sbERhdGEu
c2Nyb2xsUG9zaXRpb24pOwogICAgICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQt
c2Nyb2xsLXBvc2l0aW9uLWlzLXByb2dyYW1hdGljIiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3Jv
bGxUeXBlKTsKICAgICAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1w
b3NpdGlvbi1jbGFtcGluZyIsIHJlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcpOworICAgICAg
ICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLWFuaW1hdGVk
IiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5hbmltYXRlZCA9PSBTY3JvbGxJc0FuaW1hdGVkOjpZZXMp
OwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDlmMDVmNTEzYWIyZjE1NDcxY2UwOTVjYWZk
MTViOWMyNmVjNzM4NjMuLjkyMDQ0NDBiMDI4ZmQxNzVhZjZmMGZlYjFjNzgwZWE3Y2I5MzhkZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVk
c0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJiByZWdpb24pCiAjZW5kaWYKIH0KIAotdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVz
dFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmLCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGll
bnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBs
LmgKaW5kZXggNmJhYzk1MWM1MmNmZWE4ZGEzN2MzMGJjMjFkZWRjNjg3ZGVmM2YyNS4uNDJhNDQx
NzY0MGRkNjc3ODAwMDYwOWZjMTNjNzdkZTM1NmJjZThhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaApAQCAtNjIsNyArNjIsNyBAQCBw
cml2YXRlOgogICAgIC8vIFBhZ2VDbGllbnQKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0Fy
ZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2lu
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmln
aW4sIFdlYkNvcmU6OlNjcm9sbElzQW5pbWF0ZWQpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVxdWVz
dFNjcm9sbFRvUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG9yaWdpbikgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6Rmxv
YXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRT
aXplIHZpZXdTaXplKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdJT1MuaAppbmRleCA1Zjc0NGE2MzkwNjM5ODBiZWVjZmJjOGZjNDQxZTll
Y2U3ZmNlZDA3Li42ZmY4YmE2Y2MxYWZhZDg1ZGYwMzVkMDg0ZDhjMDhmZDQ0ODI5ZjkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKQEAgLTY3
LDcgKzY3LDcgQEAgZW51bSBjbGFzcyBUYXBIYW5kbGluZ1Jlc3VsdCA6IHVpbnQ4X3Q7CiAKIC0g
KFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3Q7CiAKLS0gKHZv
aWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNj
cm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2lu
OworLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0
UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3Jv
bGxPcmlnaW4gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQ7CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6
KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2lu
dClvcmlnaW4gbWluaW11bVNjcm9sbERpc3RhbmNlOihmbG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFu
Y2U7CiAKIC0gKGRvdWJsZSlfaW5pdGlhbFNjYWxlRmFjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCBlMDY4ZjgzYmFhMGI4N2Fl
YjJlODk1MDQyZmRjZjM1NGI5ZWI1NDdlLi40MzBkMzMyZGYwNGMzYzg3YWE0NWIwMGM5ZWI3M2Q3
YjJlYmVhZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld0lPUy5tbQpAQCAtMTEzMyw3ICsxMTMzLDcgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9p
bnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYK
ICAgICByZXR1cm4gY29udGVudE9mZnNldC5jb25zdHJhaW5lZEJldHdlZW4oV2ViQ29yZTo6Rmxv
YXRQb2ludCgpLCBXZWJDb3JlOjpGbG9hdFBvaW50KG1heGltdW1Db250ZW50T2Zmc2V0KSk7CiB9
CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9h
dFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Ny
b2xsT3JpZ2luCistICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29y
ZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBv
aW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDooQk9PTClhbmltYXRlZAogewogICAgIGlmIChfY29t
bWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uIHx8IF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2Rl
ICE9IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpCiAgICAg
ICAgIHJldHVybjsKQEAgLTExNTYsNyArMTE1Niw3IEBAIC0gKHZvaWQpX3Njcm9sbFRvQ29udGVu
dFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9s
CiAgICAgW19zY3JvbGxWaWV3IF9zdG9wU2Nyb2xsaW5nQW5kWm9vbWluZ0FuaW1hdGlvbnNdOwog
CiAgICAgaWYgKCFDR1BvaW50RXF1YWxUb1BvaW50KGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdD
b29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdKSkKLSAgICAgICAgW19zY3Jv
bGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzXTsKKyAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNl
dEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzIGFuaW1hdGVkOmFuaW1hdGVkXTsKICAgICBlbHNlIHsK
ICAgICAgICAgLy8gSWYgd2UgaGF2ZW4ndCBjaGFuZ2VkIGFueXRoaW5nLCB0aGVyZSB3b3VsZCBu
b3QgYmUgYW55IFZpc2libGVDb250ZW50UmVjdCB1cGRhdGUgc2VudCB0byB0aGUgY29udGVudC4K
ICAgICAgICAgLy8gVGhlIFdlYlByb2Nlc3Mgd291bGQga2VlcCB0aGUgaW52YWxpZCBjb250ZW50
T2Zmc2V0IGFzIGl0cyBzY3JvbGwgcG9zaXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDQ0YTQyM2I5Nzc2OWE1ZThi
YzFmZDExYWFlM2I0MjgyODRmZTgyMGIuLjZjM2UxYzk1NTA0MjA1NWIzMDE2ZTA0ZTRiYzljNDAw
YzVhNWM5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFn
ZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFn
ZUNsaWVudEltcGwuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNl
dFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikKIHsKIH0KIAotdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNj
cm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
LCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggOGFiOGRiNzE1ZGI2NDYx
NmExNWEwNmJiMmI0NzYwYTQwYWQ1ZjI1NC4uY2EzMDAwMGUxYTA2Yjg1ODg2NzE2YzhkOTkxZWY0
ODU5NjNmZDYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9Q
YWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFn
ZUNsaWVudEltcGwuaApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIC8vIFBhZ2VDbGll
bnQKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0Fy
ZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZXdOZWVk
c0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1
ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpTY3JvbGxJc0Fu
aW1hdGVkKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3Np
dGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlk
ZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDdhMWEzODc2ZjFiNzcwODFmMWJkMjI4MTk1ZDY5OGZh
MGZmY2Q4MDQuLjc5YTEwZDQ5NWMxYmZkYjc2NGIyMzhlODdiZGEzMGFmYmYyYzYzZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTIxMyw3ICsyMTMsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVn
aW9uJikgPSAwOwogCiAgICAgLy8gVGVsbCB0aGUgdmlldyB0byBzY3JvbGwgdG8gdGhlIGdpdmVu
IHBvc2l0aW9uLCBhbmQgd2hldGhlciB0aGlzIHdhcyBhIHByb2dyYW1tYXRpYyBzY3JvbGwuCi0g
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdp
biwgV2ViQ29yZTo6U2Nyb2xsSXNBbmltYXRlZCkgPSAwOwogCiAgICAgLy8gUmV0dXJuIHRoZSBj
dXJyZW50IHNjcm9sbCBwb3NpdGlvbiAobm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBX
ZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwgYmVjYXVzZSBvZiBzY2FsaW5nLCBpbnNldHMgZXRjLikK
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRl
eCAxYjA0MzkxYTA4MzhiOTJhZTQwMGI3OWQ5ZWU3ZDE0Y2UyYzk0NTgxLi42YTE2ZDA4YjZjNGQ0
MDEzNDA5MWQzMTU5ZWRlZGFjOTI5NGI4MzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMjIyLDggKzIyMiw3IEBAIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxh
eWVyVHJlZVRyYW5zCiAgICAgfQogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKLSAgICBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpSZXF1ZXN0ZWRTY3JvbGxJbmZvIHJlcXVl
c3RlZFNjcm9sbEluZm87Ci0gICAgbV93ZWJQYWdlUHJveHkuc2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eSgpLT5jb21taXRTY3JvbGxpbmdUcmVlU3RhdGUoc2Nyb2xsaW5nVHJlZVRyYW5zYWN0aW9u
LCByZXF1ZXN0ZWRTY3JvbGxJbmZvKTsKKyAgICBhdXRvIHJlcXVlc3RlZFNjcm9sbCA9IG1fd2Vi
UGFnZVByb3h5LnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKS0+Y29tbWl0U2Nyb2xsaW5nVHJl
ZVN0YXRlKHNjcm9sbGluZ1RyZWVUcmFuc2FjdGlvbik7CiAjZW5kaWYKIAogICAgIG1fd2ViUGFn
ZVByb3h5LmRpZENvbW1pdExheWVyVHJlZShsYXllclRyZWVUcmFuc2FjdGlvbik7CkBAIC0yMzYs
OCArMjM1LDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRM
YXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKIAogICAgIC8vIEhhbmRsZSByZXF1
ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUgdHJh
bnNhY3Rpb24gYWZ0ZXIgZGlkQ29tbWl0TGF5ZXJUcmVlKCkKICAgICAvLyBoYXMgdXBkYXRlZCB0
aGUgdmlldyBzaXplIGJhc2VkIG9uIHRoZSBjb250ZW50IHNpemUuCi0gICAgaWYgKHJlcXVlc3Rl
ZFNjcm9sbEluZm8ucmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSkKLSAgICAgICAgbV93ZWJQ
YWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZvLnJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uLCBsYXllclRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKSk7CisgICAgaWYg
KHJlcXVlc3RlZFNjcm9sbCkKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChy
ZXF1ZXN0ZWRTY3JvbGwtPnNjcm9sbFBvc2l0aW9uLCBsYXllclRyZWVUcmFuc2FjdGlvbi5zY3Jv
bGxPcmlnaW4oKSwgcmVxdWVzdGVkU2Nyb2xsLT5hbmltYXRlZCk7CiAjZW5kaWYgLy8gRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKIAogICAgIGlmIChtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9z
dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3Bw
CmluZGV4IGU1NjU3OGFhOGIxYzZjZmZlNTg5MjRmZjMyYWU0Y2E5YzZlYjk5ZDQuLjFkY2M3ZmRl
OWZiZmEyZTRiNjEwY2RhYTBmZTgyZTZiZTQ0MGNhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTc2LDE2ICs3NiwxNiBAQCBjb25z
dCBSZW1vdGVMYXllclRyZWVIb3N0KiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojps
YXllclRyZWVIb3N0KCkgY29ucwogICAgIHJldHVybiAmcmVtb3RlRHJhd2luZ0FyZWEucmVtb3Rl
TGF5ZXJUcmVlSG9zdCgpOwogfQogCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHk6OmNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgUmVxdWVzdGVkU2Nyb2xsSW5mbyYgcmVxdWVz
dGVkU2Nyb2xsSW5mbykKK3N0ZDo6b3B0aW9uYWw8UmVxdWVzdGVkU2Nyb2xsRGF0YT4gUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKGNvbnN0
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewot
ICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbyA9ICZyZXF1ZXN0ZWRTY3JvbGxJbmZvOworICAgIG1f
cmVxdWVzdGVkU2Nyb2xsID0geyB9OwogCiAgICAgYXV0byBzdGF0ZVRyZWUgPSBXVEZNb3ZlKGNv
bnN0X2Nhc3Q8UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbiY+KHRyYW5zYWN0
aW9uKS5zY3JvbGxpbmdTdGF0ZVRyZWUoKSk7CiAKICAgICBhdXRvKiBsYXllclRyZWVIb3N0ID0g
dGhpcy0+bGF5ZXJUcmVlSG9zdCgpOwogICAgIGlmICghbGF5ZXJUcmVlSG9zdCkgewogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIAogICAgIGNvbm5lY3RTdGF0ZU5vZGVMYXllcnMoKnN0YXRlVHJlZSwgKmxh
eWVyVHJlZUhvc3QpOwpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OmNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbAog
CiAgICAgZXN0YWJsaXNoTGF5ZXJUcmVlU2Nyb2xsaW5nUmVsYXRpb25zKCpsYXllclRyZWVIb3N0
KTsKIAotICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbyA9IG51bGxwdHI7CisgICAgcmV0dXJuIHN0
ZDo6ZXhjaGFuZ2UobV9yZXF1ZXN0ZWRTY3JvbGwsIHsgfSk7CiB9CiAKICNpZiAhUExBVEZPUk0o
SU9TX0ZBTUlMWSkKQEAgLTI0MSwxNiArMjQxLDEzIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTdG9wQW5pbWF0ZWRTY3JvbGwoU2Ny
CiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OkFuaW1hdGVkU2Nyb2xsRGlkRW5kRm9yTm9kZShzY3JvbGxlZE5vZGVJRCkpOwogfQog
Ci1ib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2Rl
UmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9kZUlELCBjb25zdCBGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZykKK2Jvb2wgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJl
ZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0
IFJlcXVlc3RlZFNjcm9sbERhdGEmIHJlcXVlc3QpCiB7Ci0gICAgaWYgKHNjcm9sbGVkTm9kZUlE
ID09IHJvb3RTY3JvbGxpbmdOb2RlSUQoKSAmJiBtX3JlcXVlc3RlZFNjcm9sbEluZm8pIHsKLSAg
ICAgICAgLy8gRklYTUU6IEhhbmRsZSBhbmltYXRlZCBzY3JvbGxzLgotICAgICAgICBtX3JlcXVl
c3RlZFNjcm9sbEluZm8tPnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgPSB0cnVlOwotICAg
ICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCA9
IHNjcm9sbFR5cGUgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwotICAgICAgICBtX3JlcXVl
c3RlZFNjcm9sbEluZm8tPnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247
CisgICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RTY3JvbGxpbmdOb2RlSUQoKSkgeworICAg
ICAgICBtX3JlcXVlc3RlZFNjcm9sbCA9IHJlcXVlc3Q7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KLSAgICAKKwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggYWMyNjEyMTQ2ODk4M2RkM2E4YTc4
N2UwZDBhODk5ZTI4MDFkMGFkNy4uMzVhYTMyNDUzM2ViNmI0YjViNDRiMzRjZjliYmI5ODI5NTgw
ODRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5o
CkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEluZm9ybSB0aGUgd2ViIHByb2Nl
c3MgdGhhdCB0aGUgc2Nyb2xsIHBvc2l0aW9uIGNoYW5nZWQgKGNhbGxlZCBmcm9tIHRoZSBzY3Jv
bGxpbmcgdHJlZSkKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9z
aXRpb24sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4mIGxheW91dFZp
ZXdwb3J0T3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLSAg
ICBib29sIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29y
ZTo6U2Nyb2xsVHlwZSwgV2ViQ29yZTo6U2Nyb2xsQ2xhbXBpbmcpOworICAgIGJvb2wgc2Nyb2xs
aW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0
IFdlYkNvcmU6OlJlcXVlc3RlZFNjcm9sbERhdGEmKTsKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVO
b2RlRGlkU3RvcEFuaW1hdGVkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CiAKICAg
ICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBB
dG9tU3RyaW5nJiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKQEAgLTgwLDEy
ICs4MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW1vdGVMYXllclRyZWVIb3N0KiBsYXllclRy
ZWVIb3N0KCkgY29uc3Q7CiAgICAgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkoKSBjb25zdCB7
IHJldHVybiBtX3dlYlBhZ2VQcm94eTsgfQogCi0gICAgc3RydWN0IFJlcXVlc3RlZFNjcm9sbElu
Zm8gewotICAgICAgICBib29sIHJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRhdGUgeyB9OwotICAg
ICAgICBib29sIHJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCB7IH07Ci0gICAgICAgIFdlYkNv
cmU6OkZsb2F0UG9pbnQgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247Ci0gICAgfTsKLSAgICB2b2lk
IGNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clRyYW5zYWN0aW9uJiwgUmVxdWVzdGVkU2Nyb2xsSW5mbyYpOworICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UmVxdWVzdGVkU2Nyb2xsRGF0YT4gY29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKGNv
bnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24mKTsKIAogICAgIHZvaWQg
c2V0UHJvcGFnYXRlc01haW5GcmFtZVNjcm9sbHMoYm9vbCBwcm9wYWdhdGVzTWFpbkZyYW1lU2Ny
b2xscykgeyBtX3Byb3BhZ2F0ZXNNYWluRnJhbWVTY3JvbGxzID0gcHJvcGFnYXRlc01haW5GcmFt
ZVNjcm9sbHM7IH0KICAgICBib29sIHByb3BhZ2F0ZXNNYWluRnJhbWVTY3JvbGxzKCkgY29uc3Qg
eyByZXR1cm4gbV9wcm9wYWdhdGVzTWFpbkZyYW1lU2Nyb2xsczsgfQpAQCAtMTI2LDcgKzEyMSw3
IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5JiBtX3dlYlBhZ2VQcm94eTsKICAgICBSZWZQ
dHI8UmVtb3RlU2Nyb2xsaW5nVHJlZT4gbV9zY3JvbGxpbmdUcmVlOwogICAgIEhhc2hNYXA8dW5z
aWduZWQsIE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFjdGlvbj4+IG1fdG91Y2hBY3Rpb25zQnlU
b3VjaElkZW50aWZpZXI7Ci0gICAgUmVxdWVzdGVkU2Nyb2xsSW5mbyogbV9yZXF1ZXN0ZWRTY3Jv
bGxJbmZvIHsgbnVsbHB0ciB9OworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVxdWVzdGVk
U2Nyb2xsRGF0YT4gbV9yZXF1ZXN0ZWRTY3JvbGw7CiAgICAgUmVtb3RlU2Nyb2xsaW5nVUlTdGF0
ZSBtX3VpU3RhdGU7CiAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gbV9jdXJyZW50SG9yaXpv
bnRhbFNuYXBQb2ludEluZGV4OwogICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IG1fY3VycmVu
dFZlcnRpY2FsU25hcFBvaW50SW5kZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5k
ZXggMjk4NzBjNzU5NWM3ZWE4NmE2ZThiYzhiOGY1NDBmNDJjODg1MDBlMi4uN2RkYTMzNjNlMDVi
M2QwZjJjNDQ0Yjk5ZDFlMmM1MzQxY2RhM2IzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVl
LmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xs
aW5nVHJlZU5vZGVEaWRTdG9wQW5pbWF0ZWRTY3JvbGwoU2Nyb2xsaW5nVHJlZVNjCiAKIGJvb2wg
UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBSZXF1ZXN0ZWRTY3JvbGxEYXRhJiByZXF1ZXN0KQog
ewotICAgIHJldHVybiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5v
ZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHJlcXVlc3Quc2Nyb2xsUG9zaXRpb24sIHJlcXVlc3Qu
c2Nyb2xsVHlwZSwgcmVxdWVzdC5jbGFtcGluZyk7CisgICAgcmV0dXJuIG1fc2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJRCwgcmVx
dWVzdCk7CiB9CiAKIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6
Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCBub2RlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0KaW5kZXggMTlmYTQ5ZjU0YmEy
NmRiYzFmMTE4Y2IxOGJlOGQ0MjQxNWY5MGYxNS4uZGQ5MTIyY2I0YTdjMDliOTM2Y2M5ZDVkYzI2
NmU3MDZhODc0N2E4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQpAQCAtODQsMTEgKzg0LDExIEBA
IHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y29tbWl0U3Rh
dGVCZWZvcmVDaGlsZHJlbihjb25zdCBTCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZVJlbW90ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGlu
Z1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewotICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihzdGF0ZU5vZGUpOwotCiAgICAgY29uc3Qg
YXV0byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CiAgICAgaWYgKG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRl
KQogICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+Y29tbWl0U3RhdGVBZnRlckNoaWxk
cmVuKHNjcm9sbGluZ1N0YXRlTm9kZSk7CisKKyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oc3RhdGVOb2RlKTsKIH0KIAogRmxvYXRQ
b2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TOjptaW5pbXVtU2Ny
b2xsUG9zaXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9T
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaAppbmRleCA4YjZlOTFlMmY3MThjNzhhMjY3
NTE5Nzc5ZDllZmZjYzNkNTY0ODllLi5kZjFiZTkyYWM5NDNjZTEzOWIyMmM2ZjI0Y2RmOWQwMmY2
YWMxMjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVJT1MuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzsKIAotY2xh
c3MgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUyA6IHB1YmxpYyBXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlIHsKK2NsYXNzIFNjcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TPiBjcmVhdGUoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CiAgICAgdmlydHVhbCB+U2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUygpOwpAQCAtNDUsMTAgKzQ1LDEzIEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZUlPUyhXZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsK
IAotICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBXZWJDb3JlOjpTY3Jv
bGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbW1pdFN0YXRlQWZ0ZXJDaGls
ZHJlbihjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3Rh
dGVOb2RlJikgZmluYWw7CisgICAgdm9pZCBjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3Qg
V2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgZmluYWw7CiAgICAgCi0gICAgdm9pZCByZXBv
c2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXBvc2l0aW9uU2Ny
b2xsaW5nTGF5ZXJzKCkgZmluYWw7CisKKyAgICBib29sIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bv
c2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQpIGZpbmFsOworICAgIHZvaWQgc3RvcEFuaW1hdGVk
U2Nyb2xsKCkgZmluYWw7CiAKICAgICAvLyBUaGUgZGVsZWdhdGUgaXMgbm9uLW51bGwgZm9yIHN1
YmZyYW1lcy4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUz4gbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0KaW5kZXgg
ZmNhYzlmZGViYjA4ZDlhMTA4ZmEwNTIxMjU3ZDUwNmQyNTAyZGU5OS4uMTQ4ZGViMWMzNTFhZWY4
OTdkYzUyNDE2NzYxY2M0MGY2YjA1MDNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbQpAQCAtNjcsMTAgKzY3
LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0
U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBXZWJDCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9s
bGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewotICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihzdGF0ZU5vZGUpOwotCiAgICAg
Y29uc3QgYXV0byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpOwogICAgIG1fc2Nyb2xsaW5nTm9kZURlbGVnYXRlLT5j
b21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oc2Nyb2xsaW5nU3RhdGVOb2RlKTsKKworICAgIFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihz
dGF0ZU5vZGUpOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJ
T1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKQpAQCAtNzgsNiArNzgsMTYgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpyZXBvc2l0aW9uU2Nyb2xsaW5n
TGF5ZXJzKCkKICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+cmVwb3NpdGlvblNjcm9sbGlu
Z0xheWVycygpOwogfQogCitib29sIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJ
T1M6OnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9pbnQgZGVzdGluYXRpb25Q
b3NpdGlvbikKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPnN0YXJ0QW5p
bWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKGRlc3RpbmF0aW9uUG9zaXRpb24pOworfQorCit2b2lkIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6OnN0b3BBbmltYXRlZFNjcm9sbCgp
Cit7CisgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPnN0b3BBbmltYXRlZFNjcm9sbCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JP
TExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy5oCmluZGV4IGEzYTI0Mjc4MmM2MDU2MWFjYWU4M2JiNDk2M2Q4ZTIw
OWY4Njk1YTAuLjk5ZDRmNDZhMWFiNDNiMjk3MzQwOGMzMzNhZmFhMDk4ODk1ZDQ2N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUy5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUyA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlIHsKK2NsYXNzIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUyhXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZSYpOwpAQCAtNzgsMTAgKzc4LDEwIEBAIHB1YmxpYzoKICAgICBV
SVNjcm9sbFZpZXcgKmZpbmRBY3RpbmdTY3JvbGxQYXJlbnQoVUlTY3JvbGxWaWV3ICopOwogICAg
IFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldygpIGNvbnN0OwogCi1wcml2YXRlOgotICAgIGJvb2wg
c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oRmxvYXRQb2ludCkgZmluYWw7CisgICAgYm9v
bCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihXZWJDb3JlOjpGbG9hdFBvaW50KSBmaW5h
bDsKICAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIGZpbmFsOwogCitwcml2YXRlOgogICAg
IFJldGFpblB0cjxDQUxheWVyPiBtX3Njcm9sbExheWVyOwogICAgIFJldGFpblB0cjxDQUxheWVy
PiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsKICAgICBSZXRhaW5QdHI8V0tTY3JvbGxpbmdOb2Rl
U2Nyb2xsVmlld0RlbGVnYXRlPiBtX3Njcm9sbFZpZXdEZWxlZ2F0ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpp
bmRleCAxM2E2MDQ2YzllNzcxNTc5ZWViNWIyOTA3NTMzZjgwYzU5MjFiMmNmLi42YzM2N2Y0MjM5
OTNiMjU4YTI1NmNkYmZkYTJlNDY4MDMxYzVmNjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCkBAIC00NSw3
ICs0NSw2IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8
d3RmL1NldEZvclNjb3BlLmg+CiAKLQogQGltcGxlbWVudGF0aW9uIFdLU2Nyb2xsaW5nTm9kZVNj
cm9sbFZpZXdEZWxlZ2F0ZQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTY3JvbGxpbmdUcmVl
Tm9kZURlbGVnYXRlOihXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MqKWRlbGVnYXRlCkBAIC0yOTQsMTUgKzI5MywyMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3Jv
bAogICAgIH0KIH0KIAotYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
OjpzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50KQorYm9vbCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3Np
dGlvbihGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGF1dG8gc2Nyb2xsT2Zmc2V0ID0gU2Nyb2xsYWJs
ZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgdG9GbG9hdFNp
emUoc2Nyb2xsT3JpZ2luKCkpKTsKKworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwor
ICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxPZmZzZXQgYW5pbWF0ZWQ6
WUVTXTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJuIHRydWU7CiB9
CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c3RvcEFuaW1h
dGVkU2Nyb2xsKCkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUworICAgIFtzY3JvbGxWaWV3KCkgX3N0b3BTY3JvbGxpbmdBbmRab29t
aW5nQW5pbWF0aW9uc107CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiAjaWYg
SEFWRShVSVNDUk9MTFZJRVdfQVNZTkNIUk9OT1VTX1NDUk9MTF9FVkVOVF9IQU5ETElORykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDYxYzA3ZjZkZmI5YjQ2
MzY1ZDc2N2U0MTMzY2JkNjhkYTBkMzJhN2MuLmQ5ZDllN2FlYTRhZjU0ZWJkNDU4Zjc0MGQyZjUw
Mjc3NjdhMjRmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtMjA2Nyw5ICsyMDY3LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdOZWVkc0Rpc3Bs
YXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAgICAgcGFnZUNsaWVudCgpLnNldFZpZXdOZWVkc0Rp
c3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwoY29u
c3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmln
aW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbiwgU2Nyb2xsSXNBbmlt
YXRlZCBhbmltYXRlZCkKIHsKLSAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChzY3JvbGxQ
b3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBwYWdlQ2xpZW50KCkucmVxdWVzdFNjcm9sbChz
Y3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luLCBhbmltYXRlZCk7CiB9CiAKIFdlYkNvcmU6OkZs
b2F0UG9pbnQgV2ViUGFnZVByb3h5Ojp2aWV3U2Nyb2xsUG9zaXRpb24oKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3NTFjYzQ3OWVjOWZkNjljZDM3MzA3
NzM3MjgwMTc1MGU3OWIyYzJkLi5jNWQ1NjMzYWJjODkyNDdlN2JjNDRlZGE0NmNhMjQ1YzA1Mjg1
OTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzEyLDcgKzcx
Miw3IEBAIHB1YmxpYzoKICAgICBQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KCkgY29uc3Q7CiAKICAg
ICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJik7Ci0gICAg
dm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKTsKKyAgICB2b2lkIHJl
cXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4sIFdlYkNvcmU6OlNjcm9sbElzQW5p
bWF0ZWQpOwogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9u
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmgKaW5kZXggMGNlOGVmZjM0ZjdmNzIwZTY4MDgwYjUwNmUzOTA0OTYzMzNjNjlmYi4u
ZWMzMGU3YmRiZGEwMDVmMWZkMGJkODM5ODdkYWQyNzEyOWQyYmIxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTU5LDcgKzU5LDcg
QEAgcHJpdmF0ZToKICAgICAvLyBQYWdlQ2xpZW50CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdp
bmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lv
biYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9y
aWdpbikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xs
T3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkKSBvdmVycmlkZTsKICAgICBXZWJDb3Jl
OjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6
OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2
ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tCmluZGV4IDljMzI0MzRiODAxM2I5ZmMzZmJhOGI5NDY5ZDY2ODYyMzE5ZmEz
Y2MuLjdhMzlhY2E5OWMxOGQzNTk2ZDY1YjhiZDBhNWUyZDM0YTk5MWUwODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTEwNCw5
ICsxMDQsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0
IFJlZ2lvbiYpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVu
dEltcGw6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNv
bnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0
U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYg
c2Nyb2xsT3JpZ2luLCBTY3JvbGxJc0FuaW1hdGVkIGFuaW1hdGVkKQogewotICAgIFttX3dlYlZp
ZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9y
aWdpbjpzY3JvbGxPcmlnaW5dOworICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9s
bFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW4gYW5pbWF0
ZWQ6YW5pbWF0ZWQgPT0gU2Nyb2xsSXNBbmltYXRlZDo6WWVzXTsKIH0KIAogV2ViQ29yZTo6Rmxv
YXRQb2ludCBQYWdlQ2xpZW50SW1wbDo6dmlld1Njcm9sbFBvc2l0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggZWFmZGQ0N2Ey
OGZiYThjM2U5MDIwOGFmZDQyM2UyYjAxMjI3MjRkZC4uZTI2MTI3Y2JmMTc2ZmViYWRkNDY1NzVi
NjE0OTgxZGE3YTE5OTQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKICAgICAvLyBQYWdl
Q2xpZW50CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdp
bmdBcmVhUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWV3
TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQg
cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgb3ZlcnJpZGU7CisgICAgdm9p
ZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxJ
c0FuaW1hdGVkKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQ
b3NpdGlvbigpIG92ZXJyaWRlOwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLm1tCmluZGV4IDI2YTA5OGI5YWFlM2RhOTIyOTIyYWE4OWM5ODkyMzM5MDljNjExOTYuLjhm
ZWEzNWMxMGIyNDZkMDk3OTk5ZmE3NzQxYjM2MTdiMmQ3ODQzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTEzMCw3ICsxMzAs
NyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNv
cmU6OlJlZ2lvbiYpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgUGFnZUNs
aWVudEltcGw6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1
ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dCYgc2Nyb2xsT3JpZ2luLCBTY3JvbGxJc0FuaW1hdGVkKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5jcHAKaW5k
ZXggMzk0MWU5ZmIxODZmZTAyYzUxNmMyYzg5NDc5M2IyOGE0OTA1MjdhZi4uYTkyN2E0OThkOGE3
OTNkOTJhYjQzYzY2ZGE4MDQ4MjkwOWI1NTI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtNDgsNyArNDgs
NyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNv
cmU6OlJlZ2lvbiYgcmVnaW9uKQogICAgIG1fdmlldy5zZXRWaWV3TmVlZHNEaXNwbGF5KHJlZ2lv
bik7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBz
Y3JvbGxPcmlnaW4pCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgc2Nyb2xsT3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkKQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1w
bC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwu
aAppbmRleCA1ZDZhYjE0NTc4N2IzMThlMTQzNDk1ZGZhMTZjZGYyMjdlMGEwYTk1Li42NGNiNzBm
MTFkNzdmYmNhZTkzNDE0Y2ZmMjJmMTg4ZDA1OGYyYjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTUyLDcgKzUy
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29y
ZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAKICAgICAvLyBUZWxsIHRoZSB2aWV3IHRvIHNjcm9sbCB0
byB0aGUgZ2l2ZW4gcG9zaXRpb24sIGFuZCB3aGV0aGVyIHRoaXMgd2FzIGEgcHJvZ3JhbW1hdGlj
IHNjcm9sbC4KLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4p
IG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdp
biwgV2ViQ29yZTo6U2Nyb2xsSXNBbmltYXRlZCkgb3ZlcnJpZGU7CiAKICAgICAvLyBSZXR1cm4g
dGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIChub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgYXMg
dGhlIFdlYkNvcmUgc2Nyb2xsIHBvc2l0aW9uLCBiZWNhdXNlIG9mIHNjYWxpbmcsIGluc2V0cyBl
dGMuKQogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudElt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcApp
bmRleCBlZWNhODRiNDdhNjRmNGVjOWM2YmJiZTBiOGIyYmYwZmRmMDg1NTIwLi4yMjA4OThjMTIy
ZmMzNjhmYzk2YzA0NjRkZTQwYjFlYzFiNWMwZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBQYWdl
Q2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mIHJl
Z2lvbikKICAgICBtX3ZpZXcuc2V0Vmlld05lZWRzRGlzcGxheShyZWdpb24pOwogfQogCi12b2lk
IFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0
U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYsIFdlYkNvcmU6OlNjcm9sbElzQW5pbWF0ZWQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1w
bC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXgg
NWY0YTcyNGQ0NGY5NmRhMjNhYzcwM2IwMTUxMjRlOTAwYjAzOGFjNy4uM2VhNDkzZGYxZTY2ODc2
ZjUwOWRmNmMzYzA5MTcyNDBiNzY0Y2JhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
d2luL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBQ
YWdlQ2xpZW50CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURy
YXdpbmdBcmVhUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRW
aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgb3ZlcnJpZGU7CisgICAg
dm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBXZWJDb3JlOjpTY3Jv
bGxJc0FuaW1hdGVkKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3Jv
bGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBv
dmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwo=
</data>
<flag name="commit-queue"
          id="464772"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440731</attachid>
            <date>2021-10-10 11:01:20 -0700</date>
            <delta_ts>2021-10-11 10:53:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204936-20211010110119.patch</filename>
            <type>text/plain</type>
            <size>39395</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzI0MTk5ZTZhMDYyYmQ4
ZTU0ZjdlNTk4NGMxN2I1MjM4N2UzNmRhNS4uZjBjZjc4ZDMzMDFiN2I1ZGM3ZjI1MDcyZjYyMDk4
MjMyMDViZmFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTEwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNtb290aC1zY3Jv
bGwgYW5pbWF0aW9ucyBzaG91bGQgcnVuIGluIHRoZSBVSSBwcm9jZXNzIG9uIGlPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aGFuZGxlU2Nyb2xsUG9zaXRpb25SZXF1ZXN0KTogT24g
aU9TIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoKQorICAgICAgICBkb2Vzbid0IGhh
bmRsZSB0aGUgYW5pbWF0ZWQgc2Nyb2xsLCBzbyB3ZSBuZWVkIHRvIGNhbGwgc3RhcnRBbmltYXRl
ZFNjcm9sbFRvUG9zaXRpb24oKSBmcm9tIGhlcmUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXQpOiBjYWxsIHN0b3BBc3luY0FuaW1hdGVkU2Ny
b2xsKCkKKyAgICAgICAgZm9yIG92ZXJmbG93IHNjcm9sbHMgYXMgd2UgZG8gaW4gRnJhbWVWaWV3
LgorCiAyMDIxLTEwLTA5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJ1biBzbW9vdGggc2Nyb2xsIGFuaW1hdGlvbnMgb24gdGhlIHNjcm9sbGluZyB0
aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggNDIxMmNkMTMzOTk2Yzc5M2U5YzRkYTUzMTMyY2IwOGVkMDgxZjJl
Yy4uZjBjYzkxMDc2OWU4OGE2YWVmYzIwZWUyMjZlMGNhMTFiNzAxYjI1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw4MSBAQAorMjAyMS0xMC0xMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKworICAgICAgICBTbW9vdGgtc2Nyb2xsIGFuaW1hdGlvbnMgc2hvdWxkIHJ1biBp
biB0aGUgVUkgcHJvY2VzcyBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDkzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEltcGxlbWVudCBhbmltYXRlZCBzY3JvbGxzIGluIHRoZSBVSSBwcm9j
ZXNzIGZvciBVSS1zaWRlIGNvbXBvc2l0aW5nLiBUaGUgc2Nyb2xsaW5nIHRyZWUKKyAgICAgICAg
ZGVjb2RlZCBpbiB0aGUgVUkgcHJvY2VzcyBoYXMgYSBSZXF1ZXN0ZWRTY3JvbGxEYXRhIHdpdGgg
dGhlICdhbmltYXRlZCcgZmxhZy4gVGhpcyBpcworICAgICAgICBwcm9jZXNzZWQgYnkgaGFuZGxl
U2Nyb2xsUG9zaXRpb25SZXF1ZXN0KCkgYXMgbm9ybWFsLgorCisgICAgICAgIFNjcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6OnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9u
KCkgcmVzcG9uZHMgYnkgY2FsbGluZworICAgICAgICB0aHJvdWdoIHRvIHRoZSBkZWxlZ2F0ZSwg
d2hpY2ggc2ltcGx5IGNhbGxzIC1bc2V0Q29udGVudE9mZnNldDphbmltYXRlZDpZRVNdIG9uIHRo
ZQorICAgICAgICBVSVNjcm9sbFZpZXcuCisKKyAgICAgICAgTWFpbiBmcmFtZSBzY3JvbGxzIGFy
ZSBhIGxpdHRsZSBkaWZmZXJlbnQgYmVjYXVzZSB0aGUgcHJvZ3JhbW1hdGljIHNjcm9sbCBuZWVk
cyB0byBiZQorICAgICAgICBoYW5kbGVkIGFmdGVyIGxheWVyIHRyZWUgY29tbWl0czsgbGV2ZXJh
Z2UgdGhlIGV4aXN0aW5nCisgICAgICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoKSBjb2RlLCBidXQgY2xlYW4gaXQgdXAg
dG8KKyAgICAgICAgc2hhcmUgdGhlIFJlcXVlc3RlZFNjcm9sbERhdGEgdHlwZSwgYW5kIGhhdmUg
Y29tbWl0U2Nyb2xsaW5nVHJlZVN0YXRlKCkgcmV0dXJuCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UmVxdWVzdGVkU2Nyb2xsRGF0YT4gaW5zdGVhZCBvZiBzdG9yaW5nIGEgcG9pbnRlciB0byBhIHN0
cnVjdCBvbiB0aGUgc3RhY2sgYXMKKyAgICAgICAgaXQgZGlkIGJlZm9yZS4gVGhlIHZhcmlvdXMg
cmVxdWVzdFNjcm9sbCgpIGZ1bmN0aW9ucyB0YWtlIGEgU2Nyb2xsSXNBbmltYXRlZCBmbGFnIHdo
aWNoCisgICAgICAgIHR1cm5zIGludG8gIC1bc2V0Q29udGVudE9mZnNldDphbmltYXRlZDpZRVNd
IGluIFdLV2ViVmlldy4KKworICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmR1
bXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3SU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9s
bFBvc2l0aW9uOnNjcm9sbE9yaWdpbjphbmltYXRlZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46XSk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFn
ZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpjb21taXRT
Y3JvbGxpbmdUcmVlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxp
bmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
Ojpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4pOiBUaGUgZGVsZWdhdGUncworICAgICAgICBjb21t
aXRTdGF0ZUFmdGVyQ2hpbGRyZW4oKSBoYXMgdG8gcnVuIGZpcnN0IHRvIHVwZGF0ZSBVSVNjcm9s
bFZpZXcgc3RhdGUgYmVmb3JlIHRoZSBwcm9ncmFtbWF0aWMgc2Nyb2xsCisgICAgICAgIGlzIGhh
bmRsZWQgaW4gdGhlIGJhc2UgY2xhc3MuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbik6IFRoZSBkZWxlZ2F0
ZSdzCisgICAgICAgIGNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbigpIGhhcyB0byBydW4gZmlyc3Qg
dG8gdXBkYXRlIFVJU2Nyb2xsVmlldyBzdGF0ZSBiZWZvcmUgdGhlIHByb2dyYW1tYXRpYyBzY3Jv
bGwKKyAgICAgICAgaXMgaGFuZGxlZCBpbiB0aGUgYmFzZSBjbGFzcy4KKyAgICAgICAgKFdlYktp
dDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6c3RhcnRBbmltYXRlZFNj
cm9sbFRvUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlSU9TOjpzdG9wQW5pbWF0ZWRTY3JvbGwpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MuaDoKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUzo6c2Nyb2xsTGF5ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjphY3RpdmVUb3VjaEFjdGlvbnMgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TOjpjbGVhckFjdGl2ZVRvdWNoQWN0aW9ucyk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUzo6c3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzdG9wQW5p
bWF0ZWRTY3JvbGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RTY3JvbGwpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgICogVUlQcm9jZXNzL3BsYXlzdGF0aW9u
L1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJl
cXVlc3RTY3JvbGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50
SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbCk6CisgICAgICAgICog
VUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5oOgorCiAyMDIxLTEwLTA5ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1biBzbW9vdGggc2Nyb2xs
IGFuaW1hdGlvbnMgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cAppbmRleCAzMGZiY2ExZWU1ZjlmMjhiMjg2MzFkY2U0NTRlMjQ0NzE0Y2E2MzBmLi40MGVmOGY5
OWRkNDgwMGQ0YjNlODM4MWVkNWIzMmUzMDY4YTYzZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwCkBAIC0yNDMsNiArMjQzLDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmhhbmRsZVNjcm9sbFBvc2l0aW9uUmVxdWVzdChjb25zdCBSZXF1ZXN0ZWRTY3JvCiAgICAgaWYg
KHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKHNjcm9sbGlu
Z05vZGVJRCgpLCByZXF1ZXN0ZWRTY3JvbGxEYXRhKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKHJlcXVlc3RlZFNjcm9sbERhdGEuYW5pbWF0ZWQgPT0gU2Nyb2xsSXNBbmltYXRlZDo6WWVz
KSB7CisgICAgICAgIHN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKHJlcXVlc3RlZFNjcm9s
bERhdGEuc2Nyb2xsUG9zaXRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgc2Ny
b2xsVG8ocmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3JvbGxQb3NpdGlvbiwgcmVxdWVzdGVkU2Nyb2xs
RGF0YS5zY3JvbGxUeXBlLCByZXF1ZXN0ZWRTY3JvbGxEYXRhLmNsYW1waW5nKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWEuY3BwCmluZGV4IDg4MzgwMGYwMWExNDhiYTRkOGI0NDA0MjZjNGM3MjZhMjA5OGZiYTkuLjRj
Y2YyYjgxY2E2NjI0Y2U0NjBmNGE0MWY1MjI1NTU0ZGJlNzU3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKQEAg
LTI3Nyw4ICsyNzcsMTAgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzdG9wQXN5
bmNBbmltYXRlZFNjcm9sbCgpCiAKIFNjcm9sbE9mZnNldCBSZW5kZXJMYXllclNjcm9sbGFibGVB
cmVhOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgY29u
c3QgU2Nyb2xsUG9zaXRpb25DaGFuZ2VPcHRpb25zJiBvcHRpb25zKQogewotICAgIGlmIChzY3Jv
bGxBbmltYXRpb25TdGF0dXMoKSA9PSBTY3JvbGxBbmltYXRpb25TdGF0dXM6OkFuaW1hdGluZykK
KyAgICBpZiAoc2Nyb2xsQW5pbWF0aW9uU3RhdHVzKCkgPT0gU2Nyb2xsQW5pbWF0aW9uU3RhdHVz
OjpBbmltYXRpbmcpIHsKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25z
KCk7CisgICAgICAgIHN0b3BBc3luY0FuaW1hdGVkU2Nyb2xsKCk7CisgICAgfQogCiAgICAgU2Ny
b2xsT2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBvcHRpb25zLmNsYW1waW5nID09IFNjcm9s
bENsYW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNj
cm9sbE9mZnNldDsKICAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxP
ZmZzZXQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmNwcAppbmRleCAyYzgyODg2MTljMjYyOTQxYTMxYmEwMDE5MTI5ZjM1ZjJmZTgyODhj
Li44MmRmNjRmZjU2MWQ3NjgwNmQzOGM0Zjg4ZTRjZmM3NmNhZTlhMzQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC03Mzgs
NiArNzM4LDcgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBib29sIGMKICAgICAgICAgICAgIHRzLmR1bXBQ
cm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1wb3NpdGlvbiIsIHJlcXVlc3RlZFNjcm9sbERhdGEu
c2Nyb2xsUG9zaXRpb24pOwogICAgICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQt
c2Nyb2xsLXBvc2l0aW9uLWlzLXByb2dyYW1hdGljIiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5zY3Jv
bGxUeXBlKTsKICAgICAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkLXNjcm9sbC1w
b3NpdGlvbi1jbGFtcGluZyIsIHJlcXVlc3RlZFNjcm9sbERhdGEuY2xhbXBpbmcpOworICAgICAg
ICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQtc2Nyb2xsLXBvc2l0aW9uLWFuaW1hdGVk
IiwgcmVxdWVzdGVkU2Nyb2xsRGF0YS5hbmltYXRlZCA9PSBTY3JvbGxJc0FuaW1hdGVkOjpZZXMp
OwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDlmMDVmNTEzYWIyZjE1NDcxY2UwOTVjYWZk
MTViOWMyNmVjNzM4NjMuLjkyMDQ0NDBiMDI4ZmQxNzVhZjZmMGZlYjFjNzgwZWE3Y2I5MzhkZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVk
c0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJiByZWdpb24pCiAjZW5kaWYKIH0KIAotdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVz
dFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmLCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGll
bnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBs
LmgKaW5kZXggNmJhYzk1MWM1MmNmZWE4ZGEzN2MzMGJjMjFkZWRjNjg3ZGVmM2YyNS4uNDJhNDQx
NzY0MGRkNjc3ODAwMDYwOWZjMTNjNzdkZTM1NmJjZThhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaApAQCAtNjIsNyArNjIsNyBAQCBw
cml2YXRlOgogICAgIC8vIFBhZ2VDbGllbnQKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0Fy
ZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2lu
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmln
aW4sIFdlYkNvcmU6OlNjcm9sbElzQW5pbWF0ZWQpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVxdWVz
dFNjcm9sbFRvUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG9yaWdpbikgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6Rmxv
YXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRT
aXplIHZpZXdTaXplKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdJT1MuaAppbmRleCA1Zjc0NGE2MzkwNjM5ODBiZWVjZmJjOGZjNDQxZTll
Y2U3ZmNlZDA3Li42ZmY4YmE2Y2MxYWZhZDg1ZGYwMzVkMDg0ZDhjMDhmZDQ0ODI5ZjkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKQEAgLTY3
LDcgKzY3LDcgQEAgZW51bSBjbGFzcyBUYXBIYW5kbGluZ1Jlc3VsdCA6IHVpbnQ4X3Q7CiAKIC0g
KFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3Q7CiAKLS0gKHZv
aWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNj
cm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Nyb2xsT3JpZ2lu
OworLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0
UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpJbnRQb2ludClzY3Jv
bGxPcmlnaW4gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQ7CiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6
KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IG9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2lu
dClvcmlnaW4gbWluaW11bVNjcm9sbERpc3RhbmNlOihmbG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFu
Y2U7CiAKIC0gKGRvdWJsZSlfaW5pdGlhbFNjYWxlRmFjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCBlMDY4ZjgzYmFhMGI4N2Fl
YjJlODk1MDQyZmRjZjM1NGI5ZWI1NDdlLi40MzBkMzMyZGYwNGMzYzg3YWE0NWIwMGM5ZWI3M2Q3
YjJlYmVhZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld0lPUy5tbQpAQCAtMTEzMyw3ICsxMTMzLDcgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9p
bnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYK
ICAgICByZXR1cm4gY29udGVudE9mZnNldC5jb25zdHJhaW5lZEJldHdlZW4oV2ViQ29yZTo6Rmxv
YXRQb2ludCgpLCBXZWJDb3JlOjpGbG9hdFBvaW50KG1heGltdW1Db250ZW50T2Zmc2V0KSk7CiB9
CiAKLS0gKHZvaWQpX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9h
dFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6SW50UG9pbnQpc2Ny
b2xsT3JpZ2luCistICh2b2lkKV9zY3JvbGxUb0NvbnRlbnRTY3JvbGxQb3NpdGlvbjooV2ViQ29y
ZTo6RmxvYXRQb2ludClzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkludFBv
aW50KXNjcm9sbE9yaWdpbiBhbmltYXRlZDooQk9PTClhbmltYXRlZAogewogICAgIGlmIChfY29t
bWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uIHx8IF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2Rl
ICE9IFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpCiAgICAg
ICAgIHJldHVybjsKQEAgLTExNTYsNyArMTE1Niw3IEBAIC0gKHZvaWQpX3Njcm9sbFRvQ29udGVu
dFNjcm9sbFBvc2l0aW9uOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbFBvc2l0aW9uIHNjcm9s
CiAgICAgW19zY3JvbGxWaWV3IF9zdG9wU2Nyb2xsaW5nQW5kWm9vbWluZ0FuaW1hdGlvbnNdOwog
CiAgICAgaWYgKCFDR1BvaW50RXF1YWxUb1BvaW50KGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdD
b29yZGluYXRlcywgW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdKSkKLSAgICAgICAgW19zY3Jv
bGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzXTsKKyAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNl
dEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzIGFuaW1hdGVkOmFuaW1hdGVkXTsKICAgICBlbHNlIHsK
ICAgICAgICAgLy8gSWYgd2UgaGF2ZW4ndCBjaGFuZ2VkIGFueXRoaW5nLCB0aGVyZSB3b3VsZCBu
b3QgYmUgYW55IFZpc2libGVDb250ZW50UmVjdCB1cGRhdGUgc2VudCB0byB0aGUgY29udGVudC4K
ICAgICAgICAgLy8gVGhlIFdlYlByb2Nlc3Mgd291bGQga2VlcCB0aGUgaW52YWxpZCBjb250ZW50
T2Zmc2V0IGFzIGl0cyBzY3JvbGwgcG9zaXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDQ0YTQyM2I5Nzc2OWE1ZThi
YzFmZDExYWFlM2I0MjgyODRmZTgyMGIuLjZjM2UxYzk1NTA0MjA1NWIzMDE2ZTA0ZTRiYzljNDAw
YzVhNWM5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFn
ZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFn
ZUNsaWVudEltcGwuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNl
dFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikKIHsKIH0KIAotdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNj
cm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
LCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggOGFiOGRiNzE1ZGI2NDYx
NmExNWEwNmJiMmI0NzYwYTQwYWQ1ZjI1NC4uY2EzMDAwMGUxYTA2Yjg1ODg2NzE2YzhkOTkxZWY0
ODU5NjNmZDYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9Q
YWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFn
ZUNsaWVudEltcGwuaApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIC8vIFBhZ2VDbGll
bnQKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0Fy
ZWFQcm94eShXZWJQcm9jZXNzUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZXdOZWVk
c0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1
ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpTY3JvbGxJc0Fu
aW1hdGVkKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3Np
dGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlk
ZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDdhMWEzODc2ZjFiNzcwODFmMWJkMjI4MTk1ZDY5OGZh
MGZmY2Q4MDQuLjdjOWRmYzUxMTY2YzI4OWQwNTdkZjY0ZDE4MDkwMmMzMzM2NDc1NGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTExMiw2ICsxMTIsNyBAQCBlbnVtIGNs
YXNzIFNjcm9sbGJhclN0eWxlIDogdWludDhfdDsKIGVudW0gY2xhc3MgVGV4dEluZGljYXRvckxp
ZmV0aW1lIDogdWludDhfdDsKIGVudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1h
dGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50
OF90OworZW51bSBjbGFzcyBTY3JvbGxJc0FuaW1hdGVkIDogdWludDhfdDsKIAogc3RydWN0IEFw
cEhpZ2hsaWdodDsKIHN0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsKQEAgLTIxMyw3ICsy
MTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29u
c3QgV2ViQ29yZTo6UmVnaW9uJikgPSAwOwogCiAgICAgLy8gVGVsbCB0aGUgdmlldyB0byBzY3Jv
bGwgdG8gdGhlIGdpdmVuIHBvc2l0aW9uLCBhbmQgd2hldGhlciB0aGlzIHdhcyBhIHByb2dyYW1t
YXRpYyBzY3JvbGwuCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBz
Y3JvbGxPcmlnaW4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHNjcm9sbE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsSXNBbmltYXRlZCkgPSAwOwogCiAgICAg
Ly8gUmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiAobm90IG5lY2Vzc2FyaWx5IHRo
ZSBzYW1lIGFzIHRoZSBXZWJDb3JlIHNjcm9sbCBwb3NpdGlvbiwgYmVjYXVzZSBvZiBzY2FsaW5n
LCBpbnNldHMgZXRjLikKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9s
bFBvc2l0aW9uKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbQppbmRleCAxYjA0MzkxYTA4MzhiOTJhZTQwMGI3OWQ5ZWU3ZDE0Y2UyYzk0NTgx
Li42YTE2ZDA4YjZjNGQ0MDEzNDA5MWQzMTU5ZWRlZGFjOTI5NGI4MzMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMjIyLDggKzIyMiw3
IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVl
KGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAgICAgfQogCiAjaWYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKLSAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpSZXF1ZXN0ZWRT
Y3JvbGxJbmZvIHJlcXVlc3RlZFNjcm9sbEluZm87Ci0gICAgbV93ZWJQYWdlUHJveHkuc2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eSgpLT5jb21taXRTY3JvbGxpbmdUcmVlU3RhdGUoc2Nyb2xsaW5n
VHJlZVRyYW5zYWN0aW9uLCByZXF1ZXN0ZWRTY3JvbGxJbmZvKTsKKyAgICBhdXRvIHJlcXVlc3Rl
ZFNjcm9sbCA9IG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKS0+Y29t
bWl0U2Nyb2xsaW5nVHJlZVN0YXRlKHNjcm9sbGluZ1RyZWVUcmFuc2FjdGlvbik7CiAjZW5kaWYK
IAogICAgIG1fd2ViUGFnZVByb3h5LmRpZENvbW1pdExheWVyVHJlZShsYXllclRyZWVUcmFuc2Fj
dGlvbik7CkBAIC0yMzYsOCArMjM1LDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Ojpjb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKIAogICAg
IC8vIEhhbmRsZSByZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMgZnJvbSB0aGUgc2Ny
b2xsaW5nIHRyZWUgdHJhbnNhY3Rpb24gYWZ0ZXIgZGlkQ29tbWl0TGF5ZXJUcmVlKCkKICAgICAv
LyBoYXMgdXBkYXRlZCB0aGUgdmlldyBzaXplIGJhc2VkIG9uIHRoZSBjb250ZW50IHNpemUuCi0g
ICAgaWYgKHJlcXVlc3RlZFNjcm9sbEluZm8ucmVxdWVzdHNTY3JvbGxQb3NpdGlvblVwZGF0ZSkK
LSAgICAgICAgbV93ZWJQYWdlUHJveHkucmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGxJbmZv
LnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uLCBsYXllclRyZWVUcmFuc2FjdGlvbi5zY3JvbGxPcmln
aW4oKSk7CisgICAgaWYgKHJlcXVlc3RlZFNjcm9sbCkKKyAgICAgICAgbV93ZWJQYWdlUHJveHku
cmVxdWVzdFNjcm9sbChyZXF1ZXN0ZWRTY3JvbGwtPnNjcm9sbFBvc2l0aW9uLCBsYXllclRyZWVU
cmFuc2FjdGlvbi5zY3JvbGxPcmlnaW4oKSwgcmVxdWVzdGVkU2Nyb2xsLT5hbmltYXRlZCk7CiAj
ZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIAogICAgIGlmIChtX2RlYnVnSW5kaWNh
dG9yTGF5ZXJUcmVlSG9zdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuY3BwCmluZGV4IGU1NjU3OGFhOGIxYzZjZmZlNTg5MjRmZjMyYWU0Y2E5YzZl
Yjk5ZDQuLjFkY2M3ZmRlOWZiZmEyZTRiNjEwY2RhYTBmZTgyZTZiZTQ0MGNhOWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTc2LDE2
ICs3NiwxNiBAQCBjb25zdCBSZW1vdGVMYXllclRyZWVIb3N0KiBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjpsYXllclRyZWVIb3N0KCkgY29ucwogICAgIHJldHVybiAmcmVtb3RlRHJh
d2luZ0FyZWEucmVtb3RlTGF5ZXJUcmVlSG9zdCgpOwogfQogCi12b2lkIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6OmNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgUmVxdWVzdGVkU2Ny
b2xsSW5mbyYgcmVxdWVzdGVkU2Nyb2xsSW5mbykKK3N0ZDo6b3B0aW9uYWw8UmVxdWVzdGVkU2Ny
b2xsRGF0YT4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y29tbWl0U2Nyb2xsaW5n
VHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24mIHRy
YW5zYWN0aW9uKQogewotICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbyA9ICZyZXF1ZXN0ZWRTY3Jv
bGxJbmZvOworICAgIG1fcmVxdWVzdGVkU2Nyb2xsID0geyB9OwogCiAgICAgYXV0byBzdGF0ZVRy
ZWUgPSBXVEZNb3ZlKGNvbnN0X2Nhc3Q8UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2Fj
dGlvbiY+KHRyYW5zYWN0aW9uKS5zY3JvbGxpbmdTdGF0ZVRyZWUoKSk7CiAKICAgICBhdXRvKiBs
YXllclRyZWVIb3N0ID0gdGhpcy0+bGF5ZXJUcmVlSG9zdCgpOwogICAgIGlmICghbGF5ZXJUcmVl
SG9zdCkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwor
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIGNvbm5lY3RTdGF0ZU5vZGVMYXllcnMo
KnN0YXRlVHJlZSwgKmxheWVyVHJlZUhvc3QpOwpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25z
dCBSZW1vdGVTY3JvbAogCiAgICAgZXN0YWJsaXNoTGF5ZXJUcmVlU2Nyb2xsaW5nUmVsYXRpb25z
KCpsYXllclRyZWVIb3N0KTsKIAotICAgIG1fcmVxdWVzdGVkU2Nyb2xsSW5mbyA9IG51bGxwdHI7
CisgICAgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9yZXF1ZXN0ZWRTY3JvbGwsIHsgfSk7CiB9CiAK
ICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTI0MSwxNiArMjQxLDEzIEBAIHZvaWQgUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTdG9wQW5p
bWF0ZWRTY3JvbGwoU2NyCiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OkFuaW1hdGVkU2Nyb2xsRGlkRW5kRm9yTm9kZShzY3JvbGxl
ZE5vZGVJRCkpOwogfQogCi1ib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGVkTm9k
ZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxU
eXBlLCBTY3JvbGxDbGFtcGluZykKK2Jvb2wgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xs
ZWROb2RlSUQsIGNvbnN0IFJlcXVlc3RlZFNjcm9sbERhdGEmIHJlcXVlc3QpCiB7Ci0gICAgaWYg
KHNjcm9sbGVkTm9kZUlEID09IHJvb3RTY3JvbGxpbmdOb2RlSUQoKSAmJiBtX3JlcXVlc3RlZFNj
cm9sbEluZm8pIHsKLSAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBhbmltYXRlZCBzY3JvbGxzLgot
ICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RzU2Nyb2xsUG9zaXRpb25VcGRh
dGUgPSB0cnVlOwotICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RJc1Byb2dy
YW1tYXRpY1Njcm9sbCA9IHNjcm9sbFR5cGUgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwot
ICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbEluZm8tPnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uID0g
c2Nyb2xsUG9zaXRpb247CisgICAgaWYgKHNjcm9sbGVkTm9kZUlEID09IHJvb3RTY3JvbGxpbmdO
b2RlSUQoKSkgeworICAgICAgICBtX3JlcXVlc3RlZFNjcm9sbCA9IHJlcXVlc3Q7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggYWMyNjEy
MTQ2ODk4M2RkM2E4YTc4N2UwZDBhODk5ZTI4MDFkMGFkNy4uMzVhYTMyNDUzM2ViNmI0YjViNDRi
MzRjZjliYmI5ODI5NTgwODRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEluZm9y
bSB0aGUgd2ViIHByb2Nlc3MgdGhhdCB0aGUgc2Nyb2xsIHBvc2l0aW9uIGNoYW5nZWQgKGNhbGxl
ZCBmcm9tIHRoZSBzY3JvbGxpbmcgdHJlZSkKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlk
U2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgbmV3U2Nyb2xsUG9zaXRpb24sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQ
b2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxpbmdMYXllclBvc2l0
aW9uQWN0aW9uKTsKLSAgICBib29sIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQ
b3NpdGlvbiwgV2ViQ29yZTo6U2Nyb2xsVHlwZSwgV2ViQ29yZTo6U2Nyb2xsQ2xhbXBpbmcpOwor
ICAgIGJvb2wgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxp
bmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OlJlcXVlc3RlZFNjcm9sbERhdGEmKTsKICAgICB2b2lk
IHNjcm9sbGluZ1RyZWVOb2RlRGlkU3RvcEFuaW1hdGVkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCk7CiAKICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVG
b3JQb2ludChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBj
b25zdDsKQEAgLTgwLDEyICs4MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW1vdGVMYXllclRy
ZWVIb3N0KiBsYXllclRyZWVIb3N0KCkgY29uc3Q7CiAgICAgV2ViUGFnZVByb3h5JiB3ZWJQYWdl
UHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VQcm94eTsgfQogCi0gICAgc3RydWN0IFJl
cXVlc3RlZFNjcm9sbEluZm8gewotICAgICAgICBib29sIHJlcXVlc3RzU2Nyb2xsUG9zaXRpb25V
cGRhdGUgeyB9OwotICAgICAgICBib29sIHJlcXVlc3RJc1Byb2dyYW1tYXRpY1Njcm9sbCB7IH07
Ci0gICAgICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247Ci0g
ICAgfTsKLSAgICB2b2lkIGNvbW1pdFNjcm9sbGluZ1RyZWVTdGF0ZShjb25zdCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uJiwgUmVxdWVzdGVkU2Nyb2xsSW5mbyYpOworICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVxdWVzdGVkU2Nyb2xsRGF0YT4gY29tbWl0U2Nyb2xs
aW5nVHJlZVN0YXRlKGNvbnN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24m
KTsKIAogICAgIHZvaWQgc2V0UHJvcGFnYXRlc01haW5GcmFtZVNjcm9sbHMoYm9vbCBwcm9wYWdh
dGVzTWFpbkZyYW1lU2Nyb2xscykgeyBtX3Byb3BhZ2F0ZXNNYWluRnJhbWVTY3JvbGxzID0gcHJv
cGFnYXRlc01haW5GcmFtZVNjcm9sbHM7IH0KICAgICBib29sIHByb3BhZ2F0ZXNNYWluRnJhbWVT
Y3JvbGxzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9wYWdhdGVzTWFpbkZyYW1lU2Nyb2xsczsgfQpA
QCAtMTI2LDcgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5JiBtX3dlYlBhZ2VQ
cm94eTsKICAgICBSZWZQdHI8UmVtb3RlU2Nyb2xsaW5nVHJlZT4gbV9zY3JvbGxpbmdUcmVlOwog
ICAgIEhhc2hNYXA8dW5zaWduZWQsIE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFjdGlvbj4+IG1f
dG91Y2hBY3Rpb25zQnlUb3VjaElkZW50aWZpZXI7Ci0gICAgUmVxdWVzdGVkU2Nyb2xsSW5mbyog
bV9yZXF1ZXN0ZWRTY3JvbGxJbmZvIHsgbnVsbHB0ciB9OworICAgIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6UmVxdWVzdGVkU2Nyb2xsRGF0YT4gbV9yZXF1ZXN0ZWRTY3JvbGw7CiAgICAgUmVtb3Rl
U2Nyb2xsaW5nVUlTdGF0ZSBtX3VpU3RhdGU7CiAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4g
bV9jdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4OwogICAgIHN0ZDo6b3B0aW9uYWw8dW5z
aWduZWQ+IG1fY3VycmVudFZlcnRpY2FsU25hcFBvaW50SW5kZXg7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHAKaW5kZXggMjk4NzBjNzU5NWM3ZWE4NmE2ZThiYzhiOGY1NDBmNDJjODg1MDBl
Mi4uN2RkYTMzNjNlMDViM2QwZjJjNDQ0Yjk5ZDFlMmM1MzQxY2RhM2IzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1Ry
ZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdUcmVlLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTdG9wQW5pbWF0ZWRTY3JvbGwoU2Nyb2xsaW5n
VHJlZVNjCiAKIGJvb2wgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1
ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBSZXF1ZXN0ZWRTY3JvbGxE
YXRhJiByZXF1ZXN0KQogewotICAgIHJldHVybiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHJlcXVlc3Quc2Nyb2xsUG9z
aXRpb24sIHJlcXVlc3Quc2Nyb2xsVHlwZSwgcmVxdWVzdC5jbGFtcGluZyk7CisgICAgcmV0dXJu
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKG5vZGVJRCwgcmVxdWVzdCk7CiB9CiAKIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3Rl
U2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUg
bm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MubW0KaW5k
ZXggMTlmYTQ5ZjU0YmEyNmRiYzFmMTE4Y2IxOGJlOGQ0MjQxNWY5MGYxNS4uZGQ5MTIyY2I0YTdj
MDliOTM2Y2M5ZDVkYzI2NmU3MDZhODc0N2E4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlUmVtb3RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5tbQpAQCAt
ODQsMTEgKzg0LDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZUlPUzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTCiAKIHZvaWQgU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVu
KGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewotICAgIFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihzdGF0ZU5vZGUp
OwotCiAgICAgY29uc3QgYXV0byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xs
aW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CiAgICAgaWYgKG1fc2Nyb2xs
aW5nTm9kZURlbGVnYXRlKQogICAgICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+Y29tbWl0
U3RhdGVBZnRlckNoaWxkcmVuKHNjcm9sbGluZ1N0YXRlTm9kZSk7CisKKyAgICBTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oc3RhdGVOb2Rl
KTsKIH0KIAogRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3Rl
SU9TOjptaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaAppbmRleCA4YjZl
OTFlMmY3MThjNzhhMjY3NTE5Nzc5ZDllZmZjYzNkNTY0ODllLi5kZjFiZTkyYWM5NDNjZTEzOWIy
MmM2ZjI0Y2RmOWQwMmY2YWMxMjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJ
T1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Nj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaApAQCAtMzUsNyArMzUsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUzsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUyA6
IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlIHsKK2Ns
YXNzIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MgZmluYWwgOiBwdWJsaWMg
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZSB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TPiBjcmVh
dGUoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CiAg
ICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUygpOwpAQCAt
NDUsMTAgKzQ1LDEzIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZUlPUyhXZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiwgV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlEKTsKIAotICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25z
dCBXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbW1p
dFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGUmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgV2ViQ29y
ZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgZmluYWw7CisgICAgdm9pZCBjb21taXRTdGF0ZUFmdGVy
Q2hpbGRyZW4oY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgZmluYWw7CiAgICAg
Ci0gICAgdm9pZCByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkgZmluYWw7CisKKyAgICBib29sIHN0YXJ0QW5p
bWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQpIGZpbmFsOworICAgIHZv
aWQgc3RvcEFuaW1hdGVkU2Nyb2xsKCkgZmluYWw7CiAKICAgICAvLyBUaGUgZGVsZWdhdGUgaXMg
bm9uLW51bGwgZm9yIHN1YmZyYW1lcy4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUz4gbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVJT1MubW0KaW5kZXggZmNhYzlmZGViYjA4ZDlhMTA4ZmEwNTIxMjU3ZDUwNmQyNTAyZGU5OS4u
MTQ4ZGViMWMzNTFhZWY4OTdkYzUyNDE2NzYxY2M0MGY2YjA1MDNkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5t
bQpAQCAtNjcsMTAgKzY3LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZUlPUzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBXZWJDCiAKIHZvaWQgU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxk
cmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewotICAgIFNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihzdGF0
ZU5vZGUpOwotCiAgICAgY29uc3QgYXV0byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpOwogICAgIG1fc2Nyb2xsaW5n
Tm9kZURlbGVnYXRlLT5jb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oc2Nyb2xsaW5nU3RhdGVOb2Rl
KTsKKworICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRl
QWZ0ZXJDaGlsZHJlbihzdGF0ZU5vZGUpOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKQpAQCAtNzgsNiAr
NzgsMTYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpyZXBv
c2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkKICAgICBtX3Njcm9sbGluZ05vZGVEZWxlZ2F0ZS0+cmVw
b3NpdGlvblNjcm9sbGluZ0xheWVycygpOwogfQogCitib29sIFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1M6OnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKEZsb2F0UG9p
bnQgZGVzdGluYXRpb25Qb3NpdGlvbikKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxpbmdOb2RlRGVs
ZWdhdGUtPnN0YXJ0QW5pbWF0ZWRTY3JvbGxUb1Bvc2l0aW9uKGRlc3RpbmF0aW9uUG9zaXRpb24p
OworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6OnN0b3BB
bmltYXRlZFNjcm9sbCgpCit7CisgICAgbV9zY3JvbGxpbmdOb2RlRGVsZWdhdGUtPnN0b3BBbmlt
YXRlZFNjcm9sbCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCmluZGV4IGEzYTI0Mjc4MmM2MDU2MWFj
YWU4M2JiNDk2M2Q4ZTIwOWY4Njk1YTAuLjk5ZDRmNDZhMWFiNDNiMjk3MzQwOGMzMzNhZmFhMDk4
ODk1ZDQ2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUyA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlIHsKK2NsYXNzIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUyhX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSYpOwpAQCAtNzgsMTAgKzc4LDEwIEBA
IHB1YmxpYzoKICAgICBVSVNjcm9sbFZpZXcgKmZpbmRBY3RpbmdTY3JvbGxQYXJlbnQoVUlTY3Jv
bGxWaWV3ICopOwogICAgIFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldygpIGNvbnN0OwogCi1wcml2
YXRlOgotICAgIGJvb2wgc3RhcnRBbmltYXRlZFNjcm9sbFRvUG9zaXRpb24oRmxvYXRQb2ludCkg
ZmluYWw7CisgICAgYm9vbCBzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihXZWJDb3JlOjpG
bG9hdFBvaW50KSBmaW5hbDsKICAgICB2b2lkIHN0b3BBbmltYXRlZFNjcm9sbCgpIGZpbmFsOwog
Citwcml2YXRlOgogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3Njcm9sbExheWVyOwogICAgIFJl
dGFpblB0cjxDQUxheWVyPiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsKICAgICBSZXRhaW5QdHI8
V0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlPiBtX3Njcm9sbFZpZXdEZWxlZ2F0ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUy5tbQppbmRleCAxM2E2MDQ2YzllNzcxNTc5ZWViNWIyOTA3NTMzZjgwYzU5MjFi
MmNmLi42YzM2N2Y0MjM5OTNiMjU4YTI1NmNkYmZkYTJlNDY4MDMxYzVmNjllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLm1tCkBAIC00NSw3ICs0NSw2IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9u
cy5oPgogI2ltcG9ydCA8d3RmL1NldEZvclNjb3BlLmg+CiAKLQogQGltcGxlbWVudGF0aW9uIFdL
U2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhTY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlOihXZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MqKWRlbGVnYXRlCkBAIC0yOTQsMTUgKzI5MywyMSBAQCB2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGls
ZHJlbihjb25zdCBTY3JvbAogICAgIH0KIH0KIAotYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlSU9TOjpzdGFydEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50
KQorYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzdGFydEFuaW1h
dGVkU2Nyb2xsVG9Qb3NpdGlvbihGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uKQogewotICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGF1dG8gc2Nyb2xsT2Zm
c2V0ID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3Np
dGlvbiwgdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2luKCkpKTsKKworICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUworICAgIFtzY3JvbGxWaWV3KCkgc2V0Q29udGVudE9mZnNldDpzY3JvbGxP
ZmZzZXQgYW5pbWF0ZWQ6WUVTXTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAg
cmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUzo6c3RvcEFuaW1hdGVkU2Nyb2xsKCkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50Lgor
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIFtzY3JvbGxWaWV3KCkgX3N0b3BT
Y3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogfQogCiAjaWYgSEFWRShVSVNDUk9MTFZJRVdfQVNZTkNIUk9OT1VTX1NDUk9MTF9FVkVO
VF9IQU5ETElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDYxYzA3ZjZkZmI5YjQ2MzY1ZDc2N2U0MTMzY2JkNjhkYTBkMzJhN2MuLmQ5ZDllN2FlYTRhZjU0
ZWJkNDU4Zjc0MGQyZjUwMjc3NjdhMjRmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtMjA2Nyw5ICsyMDY3LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNl
dFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUmVnaW9uJiByZWdpb24pCiAgICAgcGFnZUNsaWVudCgp
LnNldFZpZXdOZWVkc0Rpc3BsYXkocmVnaW9uKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNjcm9sbChjb25z
dCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdp
biwgU2Nyb2xsSXNBbmltYXRlZCBhbmltYXRlZCkKIHsKLSAgICBwYWdlQ2xpZW50KCkucmVxdWVz
dFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKTsKKyAgICBwYWdlQ2xpZW50KCku
cmVxdWVzdFNjcm9sbChzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luLCBhbmltYXRlZCk7CiB9
CiAKIFdlYkNvcmU6OkZsb2F0UG9pbnQgV2ViUGFnZVByb3h5Ojp2aWV3U2Nyb2xsUG9zaXRpb24o
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3NTFjYzQ3
OWVjOWZkNjljZDM3MzA3NzM3MjgwMTc1MGU3OWIyYzJkLi5jNWQ1NjMzYWJjODkyNDdlN2JjNDRl
ZGE0NmNhMjQ1YzA1Mjg1OTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtNzEyLDcgKzcxMiw3IEBAIHB1YmxpYzoKICAgICBQYWdlQ2xpZW50JiBwYWdlQ2xpZW50
KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6
UmVnaW9uJik7Ci0gICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2lu
KTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4sIFdlYkNv
cmU6OlNjcm9sbElzQW5pbWF0ZWQpOwogICAgIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmll
d1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggMGNlOGVmZjM0ZjdmNzIwZTY4MDgwYjUwNmUz
OTA0OTYzMzNjNjlmYi4uZWMzMGU3YmRiZGEwMDVmMWZkMGJkODM5ODdkYWQyNzEyOWQyYmIxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
QEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBQYWdlQ2xpZW50CiAgICAgc3RkOjp1
bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoV2ViUHJv
Y2Vzc1Byb3h5Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0
IFdlYkNvcmU6OlJlZ2lvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHNjcm9sbE9yaWdpbikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkKSBvdmVycmlk
ZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRl
OwogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29sIGlz
Vmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDljMzI0MzRiODAxM2I5ZmMzZmJhOGI5
NDY5ZDY2ODYyMzE5ZmEzY2MuLjdhMzlhY2E5OWMxOGQzNTk2ZDY1YjhiZDBhNWUyZDM0YTk5MWUw
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KQEAgLTEwNCw5ICsxMDQsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3TmVl
ZHNEaXNwbGF5KGNvbnN0IFJlZ2lvbiYpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
LXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBj
b25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBTY3JvbGxJc0FuaW1hdGVkIGFuaW1hdGVkKQog
ewotICAgIFttX3dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBv
c2l0aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW5dOworICAgIFttX3dlYlZpZXcgX3Njcm9s
bFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjpzY3Jv
bGxPcmlnaW4gYW5pbWF0ZWQ6YW5pbWF0ZWQgPT0gU2Nyb2xsSXNBbmltYXRlZDo6WWVzXTsKIH0K
IAogV2ViQ29yZTo6RmxvYXRQb2ludCBQYWdlQ2xpZW50SW1wbDo6dmlld1Njcm9sbFBvc2l0aW9u
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgK
aW5kZXggZWFmZGQ0N2EyOGZiYThjM2U5MDIwOGFmZDQyM2UyYjAxMjI3MjRkZC4uZTI2MTI3Y2Jm
MTc2ZmViYWRkNDY1NzViNjE0OTgxZGE3YTE5OTQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0
ZToKICAgICAvLyBQYWdlQ2xpZW50CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJv
eHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpIG92ZXJy
aWRlOwotICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikgb3Zl
cnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBX
ZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9hdFBv
aW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogCiAgICAgV2ViQ29yZTo6SW50U2l6
ZSB2aWV3U2l6ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDI2YTA5OGI5YWFlM2RhOTIyOTIyYWE4OWM5ODky
MzM5MDljNjExOTYuLjhmZWEzNWMxMGIyNDZkMDk3OTk5ZmE3NzQxYjM2MTdiMmQ3ODQzZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0K
QEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNw
bGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBTY3JvbGxJc0FuaW1hdGVkKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xp
ZW50SW1wbC5jcHAKaW5kZXggMzk0MWU5ZmIxODZmZTAyYzUxNmMyYzg5NDc5M2IyOGE0OTA1Mjdh
Zi4uYTkyN2E0OThkOGE3OTNkOTJhYjQzYzY2ZGE4MDQ4MjkwOWI1NTI1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmNw
cApAQCAtNDgsNyArNDgsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNw
bGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYgcmVnaW9uKQogICAgIG1fdmlldy5zZXRWaWV3TmVl
ZHNEaXNwbGF5KHJlZ2lvbik7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3Jv
bGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBzY3JvbGxPcmlnaW4pCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0
U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2luLCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVk
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlv
bi9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24v
UGFnZUNsaWVudEltcGwuaAppbmRleCA1ZDZhYjE0NTc4N2IzMThlMTQzNDk1ZGZhMTZjZGYyMjdl
MGEwYTk1Li42NGNiNzBmMTFkNzdmYmNhZTkzNDE0Y2ZmMjJmMTg4ZDA1OGYyYjZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBs
LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3Bs
YXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAKICAgICAvLyBUZWxsIHRoZSB2
aWV3IHRvIHNjcm9sbCB0byB0aGUgZ2l2ZW4gcG9zaXRpb24sIGFuZCB3aGV0aGVyIHRoaXMgd2Fz
IGEgcHJvZ3JhbW1hdGljIHNjcm9sbC4KLSAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBzY3JvbGxPcmlnaW4pIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHNjcm9sbE9yaWdpbiwgV2ViQ29yZTo6U2Nyb2xsSXNBbmltYXRlZCkgb3ZlcnJpZGU7CiAK
ICAgICAvLyBSZXR1cm4gdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIChub3QgbmVjZXNzYXJp
bHkgdGhlIHNhbWUgYXMgdGhlIFdlYkNvcmUgc2Nyb2xsIHBvc2l0aW9uLCBiZWNhdXNlIG9mIHNj
YWxpbmcsIGluc2V0cyBldGMuKQogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBv
c2l0aW9uKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93
aW4vUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VD
bGllbnRJbXBsLmNwcAppbmRleCBlZWNhODRiNDdhNjRmNGVjOWM2YmJiZTBiOGIyYmYwZmRmMDg1
NTIwLi4yMjA4OThjMTIyZmMzNjhmYzk2YzA0NjRkZTQwYjFlYzFiNWMwZDViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTU1LDcgKzU1
LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJD
b3JlOjpSZWdpb24mIHJlZ2lvbikKICAgICBtX3ZpZXcuc2V0Vmlld05lZWRzRGlzcGxheShyZWdp
b24pOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OlNjcm9sbElzQW5pbWF0ZWQpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dp
bi9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGll
bnRJbXBsLmgKaW5kZXggNWY0YTcyNGQ0NGY5NmRhMjNhYzcwM2IwMTUxMjRlOTAwYjAzOGFjNy4u
M2VhNDkzZGYxZTY2ODc2ZjUwOWRmNmMzYzA5MTcyNDBiNzY0Y2JhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHJp
dmF0ZToKICAgICAvLyBQYWdlQ2xpZW50CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVh
UHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpIG92
ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbE9yaWdpbikg
b3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT3JpZ2lu
LCBXZWJDb3JlOjpTY3JvbGxJc0FuaW1hdGVkKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpGbG9h
dFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNp
emUgdmlld1NpemUoKSBvdmVycmlkZTsKICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92
ZXJyaWRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>